From dcd89bcd72bfa320b0588401b9c8ec4734374dcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=91=A8=F0=9F=8F=BC=E2=80=8D=F0=9F=92=BB=20Romain=20M?= =?UTF-8?q?arcadier-Muller?= Date: Wed, 4 Jul 2018 16:48:25 +0200 Subject: [PATCH 1/6] [BREAKING] Move `@aws-cdk/resources` classes into L2 packages The `create_missing_libraries.sh` script was used to bootstrap L2 packages for all the namespaces that didn't have one already. Existing L2 packages were manually edited to: - Invoke `cfn2ts` to generate the L1 class library for the service/scope - Depend on `@aws-cdk/runtime` (which used to be blended in `@aws-cdk/resources`, and was extracted out) - Export the L1 library as expected The `@aws-cdk/assert` behavior was changed to rely on `@aws-cdk/cloudformation-resource-spec` to determine the `UpdateType` of attributes, rendering the `registry` mechanism that was introduced to `@aws-cdk/resources` a while ago redundant (hence it got dropped). --- build.sh | 6 +- create_missing_libraries.sh | 97 + examples/cdk-examples-java/README.md | 4 +- examples/cdk-examples-java/package.json | 2 +- examples/cdk-examples-typescript/README.md | 2 +- .../advanced-usage/index.ts | 19 +- .../chat-app/CognitoChatRoomPool.ts | 6 +- .../chat-app/DynamodbPostsTable.ts | 8 +- .../cloudformation/index.ts | 4 +- examples/cdk-examples-typescript/package.json | 6 +- .../cdk-examples-typescript/sns-sqs/index.ts | 13 +- install.sh | 7 + packages/@aws-cdk/acm/.gitignore | 2 + packages/@aws-cdk/acm/lib/certificate.ts | 2 +- packages/@aws-cdk/acm/lib/index.ts | 3 + packages/@aws-cdk/acm/package.json | 6 +- packages/@aws-cdk/apigateway/.gitignore | 8 + .../{resources => apigateway}/.npmignore | 0 packages/@aws-cdk/apigateway/lib/index.ts | 2 + packages/@aws-cdk/apigateway/package.json | 47 + .../apigateway/test/test.apigateway.ts | 8 + packages/@aws-cdk/applet-js/package.json | 2 +- .../applicationautoscaling/.gitignore | 8 + .../applicationautoscaling/.npmignore | 6 + .../applicationautoscaling/lib/index.ts | 2 + .../applicationautoscaling/package.json | 47 + .../test/test.applicationautoscaling.ts | 8 + packages/@aws-cdk/appsync/.gitignore | 8 + packages/@aws-cdk/appsync/.npmignore | 6 + packages/@aws-cdk/appsync/lib/index.ts | 2 + packages/@aws-cdk/appsync/package.json | 47 + .../@aws-cdk/appsync/test/test.appsync.ts | 8 + packages/@aws-cdk/assert/lib/integ-helpers.ts | 9 +- packages/@aws-cdk/assert/package.json | 2 +- packages/@aws-cdk/athena/.gitignore | 8 + packages/@aws-cdk/athena/.npmignore | 6 + packages/@aws-cdk/athena/lib/index.ts | 2 + packages/@aws-cdk/athena/package.json | 47 + packages/@aws-cdk/athena/test/test.athena.ts | 8 + packages/@aws-cdk/autoscaling/.gitignore | 5 + packages/@aws-cdk/autoscaling/.npmignore | 6 + packages/@aws-cdk/autoscaling/lib/index.ts | 2 + packages/@aws-cdk/autoscaling/package.json | 48 + .../autoscaling/test/test.autoscaling.ts | 8 + packages/@aws-cdk/autoscaling/tsconfig.json | 27 + packages/@aws-cdk/autoscaling/tslint.json | 38 + packages/@aws-cdk/autoscalingplans/.gitignore | 8 + packages/@aws-cdk/autoscalingplans/.npmignore | 6 + .../@aws-cdk/autoscalingplans/lib/index.ts | 2 + .../@aws-cdk/autoscalingplans/package.json | 47 + .../test/test.autoscalingplans.ts | 8 + packages/@aws-cdk/batch/.gitignore | 8 + packages/@aws-cdk/batch/.npmignore | 6 + packages/@aws-cdk/batch/lib/index.ts | 2 + packages/@aws-cdk/batch/package.json | 47 + packages/@aws-cdk/batch/test/test.batch.ts | 8 + packages/@aws-cdk/budgets/.gitignore | 8 + packages/@aws-cdk/budgets/.npmignore | 6 + packages/@aws-cdk/budgets/lib/index.ts | 2 + packages/@aws-cdk/budgets/package.json | 47 + .../@aws-cdk/budgets/test/test.budgets.ts | 8 + .../@aws-cdk/certificatemanager/.gitignore | 8 + .../@aws-cdk/certificatemanager/.npmignore | 6 + .../@aws-cdk/certificatemanager/lib/index.ts | 2 + .../@aws-cdk/certificatemanager/package.json | 47 + .../test/test.certificatemanager.ts | 8 + packages/@aws-cdk/cloud9/.gitignore | 8 + packages/@aws-cdk/cloud9/.npmignore | 6 + packages/@aws-cdk/cloud9/lib/index.ts | 2 + packages/@aws-cdk/cloud9/package.json | 47 + packages/@aws-cdk/cloud9/test/test.cloud9.ts | 8 + .../cloudformation-diff/lib/diff/index.ts | 11 +- .../@aws-cdk/cloudformation-diff/package.json | 4 +- .../cloudformation-resource-spec/package.json | 2 +- packages/@aws-cdk/cloudformation/.gitignore | 8 + packages/@aws-cdk/cloudformation/.npmignore | 6 + packages/@aws-cdk/cloudformation/lib/index.ts | 2 + packages/@aws-cdk/cloudformation/package.json | 47 + .../test/test.cloudformation.ts | 8 + packages/@aws-cdk/cloudfront/.gitignore | 1 + packages/@aws-cdk/cloudfront/.npmignore | 2 + packages/@aws-cdk/cloudfront/lib/index.ts | 5 +- .../cloudfront/lib/web_distribution.ts | 2 +- packages/@aws-cdk/cloudfront/package.json | 6 +- packages/@aws-cdk/cloudtrail/.gitignore | 1 + packages/@aws-cdk/cloudtrail/lib/index.ts | 8 +- packages/@aws-cdk/cloudtrail/package.json | 7 +- packages/@aws-cdk/cloudwatch/.gitignore | 1 + packages/@aws-cdk/cloudwatch/lib/alarm.ts | 10 +- packages/@aws-cdk/cloudwatch/lib/dashboard.ts | 2 +- packages/@aws-cdk/cloudwatch/lib/index.ts | 5 +- packages/@aws-cdk/cloudwatch/package.json | 8 +- .../test/integ.alarm-and-dashboard.ts | 16 +- packages/@aws-cdk/codebuild/.gitignore | 1 + packages/@aws-cdk/codebuild/lib/artifacts.ts | 2 +- packages/@aws-cdk/codebuild/lib/index.ts | 5 +- packages/@aws-cdk/codebuild/lib/project.ts | 2 +- packages/@aws-cdk/codebuild/lib/source.ts | 2 +- packages/@aws-cdk/codebuild/package.json | 6 +- packages/@aws-cdk/codecommit/.gitignore | 1 + .../@aws-cdk/codecommit/lib/codecommit.ts | 2 +- packages/@aws-cdk/codecommit/lib/index.ts | 3 + packages/@aws-cdk/codecommit/package.json | 6 +- packages/@aws-cdk/codedeploy/.gitignore | 8 + packages/@aws-cdk/codedeploy/.npmignore | 6 + packages/@aws-cdk/codedeploy/lib/index.ts | 2 + packages/@aws-cdk/codedeploy/package.json | 47 + .../codedeploy/test/test.codedeploy.ts | 8 + packages/@aws-cdk/codepipeline/.gitignore | 1 + packages/@aws-cdk/codepipeline/lib/actions.ts | 2 +- packages/@aws-cdk/codepipeline/lib/index.ts | 5 +- .../@aws-cdk/codepipeline/lib/pipeline.ts | 2 +- packages/@aws-cdk/codepipeline/lib/stage.ts | 2 +- packages/@aws-cdk/codepipeline/package.json | 6 +- packages/@aws-cdk/cognito/.gitignore | 8 + packages/@aws-cdk/cognito/.npmignore | 6 + packages/@aws-cdk/cognito/lib/index.ts | 2 + packages/@aws-cdk/cognito/package.json | 47 + .../@aws-cdk/cognito/test/test.cognito.ts | 8 + packages/@aws-cdk/config/.gitignore | 8 + packages/@aws-cdk/config/.npmignore | 6 + packages/@aws-cdk/config/lib/index.ts | 2 + packages/@aws-cdk/config/package.json | 47 + packages/@aws-cdk/config/test/test.config.ts | 8 + packages/@aws-cdk/core/package.json | 2 +- .../@aws-cdk/custom-resources/lib/resource.ts | 2 +- .../custom-resources/lib/singletonlambda.ts | 5 +- .../@aws-cdk/custom-resources/package.json | 6 +- packages/@aws-cdk/cx-api/package.json | 2 +- packages/@aws-cdk/datapipeline/.gitignore | 8 + packages/@aws-cdk/datapipeline/.npmignore | 6 + packages/@aws-cdk/datapipeline/lib/index.ts | 2 + packages/@aws-cdk/datapipeline/package.json | 47 + .../datapipeline/test/test.datapipeline.ts | 8 + packages/@aws-cdk/dax/.gitignore | 8 + packages/@aws-cdk/dax/.npmignore | 6 + packages/@aws-cdk/dax/lib/index.ts | 2 + packages/@aws-cdk/dax/package.json | 47 + packages/@aws-cdk/dax/test/test.dax.ts | 8 + packages/@aws-cdk/directoryservice/.gitignore | 8 + packages/@aws-cdk/directoryservice/.npmignore | 6 + .../@aws-cdk/directoryservice/lib/index.ts | 2 + .../@aws-cdk/directoryservice/package.json | 47 + .../test/test.directoryservice.ts | 8 + packages/@aws-cdk/dms/.gitignore | 8 + packages/@aws-cdk/dms/.npmignore | 6 + packages/@aws-cdk/dms/lib/index.ts | 2 + packages/@aws-cdk/dms/package.json | 47 + packages/@aws-cdk/dms/test/test.dms.ts | 8 + packages/@aws-cdk/dynamodb/.gitignore | 1 + packages/@aws-cdk/dynamodb/lib/index.ts | 5 +- packages/@aws-cdk/dynamodb/package.json | 6 +- packages/@aws-cdk/ec2/.gitignore | 1 + packages/@aws-cdk/ec2/lib/fleet.ts | 9 +- packages/@aws-cdk/ec2/lib/index.ts | 3 + packages/@aws-cdk/ec2/lib/load-balancer.ts | 2 +- packages/@aws-cdk/ec2/lib/security-group.ts | 2 +- packages/@aws-cdk/ec2/lib/vpc.ts | 2 +- packages/@aws-cdk/ec2/package.json | 9 +- packages/@aws-cdk/ecr/.gitignore | 8 + packages/@aws-cdk/ecr/.npmignore | 6 + packages/@aws-cdk/ecr/lib/index.ts | 2 + packages/@aws-cdk/ecr/package.json | 47 + packages/@aws-cdk/ecr/test/test.ecr.ts | 8 + packages/@aws-cdk/ecs/.gitignore | 8 + packages/@aws-cdk/ecs/.npmignore | 6 + packages/@aws-cdk/ecs/lib/index.ts | 2 + packages/@aws-cdk/ecs/package.json | 47 + packages/@aws-cdk/ecs/test/test.ecs.ts | 8 + packages/@aws-cdk/efs/.gitignore | 8 + packages/@aws-cdk/efs/.npmignore | 6 + packages/@aws-cdk/efs/lib/index.ts | 2 + packages/@aws-cdk/efs/package.json | 47 + packages/@aws-cdk/efs/test/test.efs.ts | 8 + packages/@aws-cdk/eks/.gitignore | 8 + packages/@aws-cdk/eks/.npmignore | 6 + packages/@aws-cdk/eks/lib/index.ts | 2 + packages/@aws-cdk/eks/package.json | 47 + packages/@aws-cdk/eks/test/test.eks.ts | 8 + packages/@aws-cdk/elasticache/.gitignore | 8 + packages/@aws-cdk/elasticache/.npmignore | 6 + packages/@aws-cdk/elasticache/lib/index.ts | 2 + packages/@aws-cdk/elasticache/package.json | 47 + .../elasticache/test/test.elasticache.ts | 8 + packages/@aws-cdk/elasticbeanstalk/.gitignore | 8 + packages/@aws-cdk/elasticbeanstalk/.npmignore | 6 + .../@aws-cdk/elasticbeanstalk/lib/index.ts | 2 + .../@aws-cdk/elasticbeanstalk/package.json | 47 + .../test/test.elasticbeanstalk.ts | 8 + .../@aws-cdk/elasticloadbalancing/.gitignore | 8 + .../@aws-cdk/elasticloadbalancing/.npmignore | 6 + .../elasticloadbalancing/lib/index.ts | 2 + .../elasticloadbalancing/package.json | 47 + .../test/test.elasticloadbalancing.ts | 8 + .../elasticloadbalancingv2/.gitignore | 8 + .../elasticloadbalancingv2/.npmignore | 6 + .../elasticloadbalancingv2/lib/index.ts | 2 + .../elasticloadbalancingv2/package.json | 47 + .../test/test.elasticloadbalancingv2.ts | 8 + packages/@aws-cdk/elasticsearch/.gitignore | 8 + packages/@aws-cdk/elasticsearch/.npmignore | 6 + packages/@aws-cdk/elasticsearch/lib/index.ts | 2 + packages/@aws-cdk/elasticsearch/package.json | 47 + .../elasticsearch/test/test.elasticsearch.ts | 8 + packages/@aws-cdk/emr/.gitignore | 8 + packages/@aws-cdk/emr/.npmignore | 6 + packages/@aws-cdk/emr/lib/index.ts | 2 + packages/@aws-cdk/emr/package.json | 47 + packages/@aws-cdk/emr/test/test.emr.ts | 8 + packages/@aws-cdk/events/.gitignore | 1 + packages/@aws-cdk/events/lib/index.ts | 5 +- packages/@aws-cdk/events/lib/rule-ref.ts | 2 +- packages/@aws-cdk/events/lib/rule.ts | 2 +- packages/@aws-cdk/events/lib/target.ts | 3 +- packages/@aws-cdk/events/package.json | 8 +- packages/@aws-cdk/events/test/test.rule.ts | 2 +- packages/@aws-cdk/gamelift/.gitignore | 8 + packages/@aws-cdk/gamelift/.npmignore | 6 + packages/@aws-cdk/gamelift/lib/index.ts | 2 + packages/@aws-cdk/gamelift/package.json | 47 + .../@aws-cdk/gamelift/test/test.gamelift.ts | 8 + packages/@aws-cdk/glue/.gitignore | 8 + packages/@aws-cdk/glue/.npmignore | 6 + packages/@aws-cdk/glue/lib/index.ts | 2 + packages/@aws-cdk/glue/package.json | 47 + packages/@aws-cdk/glue/test/test.glue.ts | 8 + packages/@aws-cdk/guardduty/.gitignore | 8 + packages/@aws-cdk/guardduty/.npmignore | 6 + packages/@aws-cdk/guardduty/lib/index.ts | 2 + packages/@aws-cdk/guardduty/package.json | 47 + .../@aws-cdk/guardduty/test/test.guardduty.ts | 8 + packages/@aws-cdk/iam/.gitignore | 1 + packages/@aws-cdk/iam/lib/group.ts | 2 +- packages/@aws-cdk/iam/lib/index.ts | 3 + packages/@aws-cdk/iam/lib/policy.ts | 2 +- packages/@aws-cdk/iam/lib/role.ts | 2 +- packages/@aws-cdk/iam/lib/user.ts | 2 +- packages/@aws-cdk/iam/package.json | 7 +- packages/@aws-cdk/inspector/.gitignore | 8 + packages/@aws-cdk/inspector/.npmignore | 6 + packages/@aws-cdk/inspector/lib/index.ts | 2 + packages/@aws-cdk/inspector/package.json | 47 + .../@aws-cdk/inspector/test/test.inspector.ts | 8 + packages/@aws-cdk/iot/.gitignore | 8 + packages/@aws-cdk/iot/.npmignore | 6 + packages/@aws-cdk/iot/lib/index.ts | 2 + packages/@aws-cdk/iot/package.json | 47 + packages/@aws-cdk/iot/test/test.iot.ts | 8 + packages/@aws-cdk/kinesis/.gitignore | 1 + packages/@aws-cdk/kinesis/lib/index.ts | 3 + packages/@aws-cdk/kinesis/lib/stream.ts | 2 +- packages/@aws-cdk/kinesis/package.json | 6 +- packages/@aws-cdk/kinesisanalytics/.gitignore | 8 + packages/@aws-cdk/kinesisanalytics/.npmignore | 6 + .../@aws-cdk/kinesisanalytics/lib/index.ts | 2 + .../@aws-cdk/kinesisanalytics/package.json | 47 + .../test/test.kinesisanalytics.ts | 8 + packages/@aws-cdk/kinesisfirehose/.gitignore | 8 + packages/@aws-cdk/kinesisfirehose/.npmignore | 6 + .../@aws-cdk/kinesisfirehose/lib/index.ts | 2 + .../@aws-cdk/kinesisfirehose/package.json | 47 + .../test/test.kinesisfirehose.ts | 8 + packages/@aws-cdk/kms/.gitignore | 1 + packages/@aws-cdk/kms/lib/alias.ts | 2 +- packages/@aws-cdk/kms/lib/index.ts | 5 +- packages/@aws-cdk/kms/lib/key.ts | 2 +- packages/@aws-cdk/kms/package.json | 6 +- packages/@aws-cdk/lambda/.gitignore | 1 + packages/@aws-cdk/lambda/lib/alias.ts | 8 +- packages/@aws-cdk/lambda/lib/code.ts | 2 +- packages/@aws-cdk/lambda/lib/index.ts | 5 +- packages/@aws-cdk/lambda/lib/lambda-ref.ts | 2 +- .../lib/{version.ts => lambda-version.ts} | 16 +- packages/@aws-cdk/lambda/lib/lambda.ts | 8 +- packages/@aws-cdk/lambda/package.json | 6 +- packages/@aws-cdk/logs/.gitignore | 8 + packages/@aws-cdk/logs/.npmignore | 6 + packages/@aws-cdk/logs/lib/index.ts | 2 + packages/@aws-cdk/logs/package.json | 47 + packages/@aws-cdk/logs/test/test.logs.ts | 8 + packages/@aws-cdk/neptune/lib/index.ts | 4 +- packages/@aws-cdk/neptune/package.json | 5 +- packages/@aws-cdk/opsworks/.gitignore | 8 + packages/@aws-cdk/opsworks/.npmignore | 6 + packages/@aws-cdk/opsworks/lib/index.ts | 2 + packages/@aws-cdk/opsworks/package.json | 47 + .../@aws-cdk/opsworks/test/test.opsworks.ts | 8 + packages/@aws-cdk/quickstarts/lib/database.ts | 6 +- packages/@aws-cdk/quickstarts/lib/rdgw.ts | 4 +- packages/@aws-cdk/quickstarts/package.json | 5 +- packages/@aws-cdk/rds/.gitignore | 1 + packages/@aws-cdk/rds/lib/cluster-ref.ts | 10 +- packages/@aws-cdk/rds/lib/cluster.ts | 10 +- packages/@aws-cdk/rds/lib/index.ts | 3 + packages/@aws-cdk/rds/package.json | 7 +- packages/@aws-cdk/redshift/.gitignore | 8 + packages/@aws-cdk/redshift/.npmignore | 6 + packages/@aws-cdk/redshift/lib/index.ts | 2 + packages/@aws-cdk/redshift/package.json | 47 + .../@aws-cdk/redshift/test/test.redshift.ts | 8 + ...0_CloudFormationResourceSpecification.json | 26794 ---------------- .../cloudformation-specs/000_sam.spec.json | 520 - ...ty_IdentityPoolRoleAttachment_patches.json | 14 - ...ess_Function_S3Location_Version_patch.json | 12 - .../500_SSM_AssociationName_patch.json | 12 - .../500_SSM_AssociationName_patch.md | 9 - .../510_ElasticSearch_Domain_patches.json | 12 - packages/@aws-cdk/resources/package-lock.json | 3344 -- .../resources/test/test.generated-code.ts | 318 - .../@aws-cdk/resources/test/test.specifics.ts | 22 - packages/@aws-cdk/resources/test/test.tag.ts | 58 - packages/@aws-cdk/resources/tslint.yaml | 3 - packages/@aws-cdk/route53/.gitignore | 1 + packages/@aws-cdk/route53/lib/hosted-zone.ts | 10 +- packages/@aws-cdk/route53/lib/index.ts | 5 +- packages/@aws-cdk/route53/lib/records/txt.ts | 2 +- .../route53/lib/records/zone-delegation.ts | 2 +- packages/@aws-cdk/route53/package.json | 7 +- packages/@aws-cdk/rtv/lib/rtv.ts | 4 +- packages/@aws-cdk/rtv/package.json | 9 +- packages/@aws-cdk/rtv/test/test.rtv.ts | 7 +- .../{resources => runtime}/.gitignore | 2 +- packages/@aws-cdk/runtime/.npmignore | 6 + packages/@aws-cdk/runtime/lib/index.ts | 364 + .../{resources => runtime}/package.json | 13 +- .../{resources => runtime}/test/test.dates.ts | 4 +- packages/@aws-cdk/s3/.gitignore | 1 + packages/@aws-cdk/s3/lib/bucket-policy.ts | 2 +- packages/@aws-cdk/s3/lib/bucket.ts | 2 +- packages/@aws-cdk/s3/lib/index.ts | 5 +- packages/@aws-cdk/s3/package.json | 6 +- packages/@aws-cdk/s3/test/test.bucket.ts | 2 +- packages/@aws-cdk/s3/test/test.util.ts | 2 +- packages/@aws-cdk/sdb/.gitignore | 8 + packages/@aws-cdk/sdb/.npmignore | 6 + packages/@aws-cdk/sdb/lib/index.ts | 2 + packages/@aws-cdk/sdb/package.json | 47 + packages/@aws-cdk/sdb/test/test.sdb.ts | 8 + packages/@aws-cdk/serverless/.gitignore | 8 + packages/@aws-cdk/serverless/.npmignore | 6 + packages/@aws-cdk/serverless/lib/index.ts | 2 + packages/@aws-cdk/serverless/package.json | 47 + .../serverless/test/test.serverless.ts | 8 + packages/@aws-cdk/servicecatalog/.gitignore | 8 + packages/@aws-cdk/servicecatalog/.npmignore | 6 + packages/@aws-cdk/servicecatalog/lib/index.ts | 2 + packages/@aws-cdk/servicecatalog/package.json | 47 + .../test/test.servicecatalog.ts | 8 + packages/@aws-cdk/servicediscovery/.gitignore | 8 + packages/@aws-cdk/servicediscovery/.npmignore | 6 + .../@aws-cdk/servicediscovery/lib/index.ts | 2 + .../@aws-cdk/servicediscovery/package.json | 47 + .../test/test.servicediscovery.ts | 8 + packages/@aws-cdk/ses/.gitignore | 8 + packages/@aws-cdk/ses/.npmignore | 6 + packages/@aws-cdk/ses/lib/index.ts | 2 + packages/@aws-cdk/ses/package.json | 47 + packages/@aws-cdk/ses/test/test.ses.ts | 8 + packages/@aws-cdk/sns/.gitignore | 1 + packages/@aws-cdk/sns/lib/index.ts | 5 +- packages/@aws-cdk/sns/lib/policy.ts | 2 +- packages/@aws-cdk/sns/lib/subscription.ts | 2 +- packages/@aws-cdk/sns/lib/topic-ref.ts | 14 +- packages/@aws-cdk/sns/lib/topic.ts | 6 +- packages/@aws-cdk/sns/package.json | 6 +- packages/@aws-cdk/sqs/.gitignore | 1 + packages/@aws-cdk/sqs/lib/index.ts | 3 + packages/@aws-cdk/sqs/lib/policy.ts | 2 +- packages/@aws-cdk/sqs/lib/queue-ref.ts | 2 +- packages/@aws-cdk/sqs/lib/queue.ts | 6 +- packages/@aws-cdk/sqs/package.json | 6 +- packages/@aws-cdk/ssm/.gitignore | 8 + packages/@aws-cdk/ssm/.npmignore | 6 + packages/@aws-cdk/ssm/lib/index.ts | 2 + packages/@aws-cdk/ssm/package.json | 47 + packages/@aws-cdk/ssm/test/test.ssm.ts | 8 + packages/@aws-cdk/stepfunctions/.gitignore | 8 + packages/@aws-cdk/stepfunctions/.npmignore | 6 + packages/@aws-cdk/stepfunctions/lib/index.ts | 2 + packages/@aws-cdk/stepfunctions/package.json | 47 + .../stepfunctions/test/test.stepfunctions.ts | 8 + packages/@aws-cdk/util/package.json | 4 +- packages/@aws-cdk/waf/.gitignore | 8 + packages/@aws-cdk/waf/.npmignore | 6 + packages/@aws-cdk/waf/lib/index.ts | 2 + packages/@aws-cdk/waf/package.json | 47 + packages/@aws-cdk/waf/test/test.waf.ts | 8 + packages/@aws-cdk/wafregional/.gitignore | 8 + packages/@aws-cdk/wafregional/.npmignore | 6 + packages/@aws-cdk/wafregional/lib/index.ts | 2 + packages/@aws-cdk/wafregional/package.json | 47 + .../wafregional/test/test.wafregional.ts | 8 + packages/@aws-cdk/workspaces/.gitignore | 8 + packages/@aws-cdk/workspaces/.npmignore | 6 + packages/@aws-cdk/workspaces/lib/index.ts | 2 + packages/@aws-cdk/workspaces/package.json | 47 + .../workspaces/test/test.workspaces.ts | 8 + packages/aws-cdk-all/package.json | 68 +- packages/aws-cdk-docs/package.json | 2 +- packages/aws-cdk-docs/src/examples.rst | 2 +- packages/aws-cdk-docs/src/tools.rst | 2 +- packages/aws-cdk-java/package.json | 2 +- packages/aws-cdk/lib/api/deploy-stack.ts | 4 +- .../aws-cdk/lib/api/util/toolkit-stack.ts | 4 +- .../init-templates/app/typescript/README.md | 2 +- .../init-templates/lib/typescript/README.md | 2 +- packages/aws-cdk/package.json | 5 +- packages/simple-resource-bundler/package.json | 2 +- tools/cfn2ts/bin/cfn2ts.ts | 30 +- tools/cfn2ts/lib/cfnspec.ts | 277 - tools/cfn2ts/lib/codegen.ts | 314 +- tools/cfn2ts/lib/genspec.ts | 53 +- tools/cfn2ts/lib/index.ts | 66 +- tools/cfn2ts/lib/merge-specs.ts | 94 - tools/cfn2ts/lib/spec-utils.ts | 121 + tools/cfn2ts/package.json | 3 +- tools/pkglint/lib/rules.ts | 30 +- tools/pkglint/package.json | 2 +- tools/pkgtools/package.json | 2 +- tools/y-npm/README.md | 2 +- tools/y-npm/package.json | 2 +- 421 files changed, 4712 insertions(+), 32047 deletions(-) create mode 100755 create_missing_libraries.sh create mode 100644 packages/@aws-cdk/apigateway/.gitignore rename packages/@aws-cdk/{resources => apigateway}/.npmignore (100%) create mode 100644 packages/@aws-cdk/apigateway/lib/index.ts create mode 100644 packages/@aws-cdk/apigateway/package.json create mode 100644 packages/@aws-cdk/apigateway/test/test.apigateway.ts create mode 100644 packages/@aws-cdk/applicationautoscaling/.gitignore create mode 100644 packages/@aws-cdk/applicationautoscaling/.npmignore create mode 100644 packages/@aws-cdk/applicationautoscaling/lib/index.ts create mode 100644 packages/@aws-cdk/applicationautoscaling/package.json create mode 100644 packages/@aws-cdk/applicationautoscaling/test/test.applicationautoscaling.ts create mode 100644 packages/@aws-cdk/appsync/.gitignore create mode 100644 packages/@aws-cdk/appsync/.npmignore create mode 100644 packages/@aws-cdk/appsync/lib/index.ts create mode 100644 packages/@aws-cdk/appsync/package.json create mode 100644 packages/@aws-cdk/appsync/test/test.appsync.ts create mode 100644 packages/@aws-cdk/athena/.gitignore create mode 100644 packages/@aws-cdk/athena/.npmignore create mode 100644 packages/@aws-cdk/athena/lib/index.ts create mode 100644 packages/@aws-cdk/athena/package.json create mode 100644 packages/@aws-cdk/athena/test/test.athena.ts create mode 100644 packages/@aws-cdk/autoscaling/.gitignore create mode 100644 packages/@aws-cdk/autoscaling/.npmignore create mode 100644 packages/@aws-cdk/autoscaling/lib/index.ts create mode 100644 packages/@aws-cdk/autoscaling/package.json create mode 100644 packages/@aws-cdk/autoscaling/test/test.autoscaling.ts create mode 100644 packages/@aws-cdk/autoscaling/tsconfig.json create mode 100644 packages/@aws-cdk/autoscaling/tslint.json create mode 100644 packages/@aws-cdk/autoscalingplans/.gitignore create mode 100644 packages/@aws-cdk/autoscalingplans/.npmignore create mode 100644 packages/@aws-cdk/autoscalingplans/lib/index.ts create mode 100644 packages/@aws-cdk/autoscalingplans/package.json create mode 100644 packages/@aws-cdk/autoscalingplans/test/test.autoscalingplans.ts create mode 100644 packages/@aws-cdk/batch/.gitignore create mode 100644 packages/@aws-cdk/batch/.npmignore create mode 100644 packages/@aws-cdk/batch/lib/index.ts create mode 100644 packages/@aws-cdk/batch/package.json create mode 100644 packages/@aws-cdk/batch/test/test.batch.ts create mode 100644 packages/@aws-cdk/budgets/.gitignore create mode 100644 packages/@aws-cdk/budgets/.npmignore create mode 100644 packages/@aws-cdk/budgets/lib/index.ts create mode 100644 packages/@aws-cdk/budgets/package.json create mode 100644 packages/@aws-cdk/budgets/test/test.budgets.ts create mode 100644 packages/@aws-cdk/certificatemanager/.gitignore create mode 100644 packages/@aws-cdk/certificatemanager/.npmignore create mode 100644 packages/@aws-cdk/certificatemanager/lib/index.ts create mode 100644 packages/@aws-cdk/certificatemanager/package.json create mode 100644 packages/@aws-cdk/certificatemanager/test/test.certificatemanager.ts create mode 100644 packages/@aws-cdk/cloud9/.gitignore create mode 100644 packages/@aws-cdk/cloud9/.npmignore create mode 100644 packages/@aws-cdk/cloud9/lib/index.ts create mode 100644 packages/@aws-cdk/cloud9/package.json create mode 100644 packages/@aws-cdk/cloud9/test/test.cloud9.ts create mode 100644 packages/@aws-cdk/cloudformation/.gitignore create mode 100644 packages/@aws-cdk/cloudformation/.npmignore create mode 100644 packages/@aws-cdk/cloudformation/lib/index.ts create mode 100644 packages/@aws-cdk/cloudformation/package.json create mode 100644 packages/@aws-cdk/cloudformation/test/test.cloudformation.ts create mode 100644 packages/@aws-cdk/codedeploy/.gitignore create mode 100644 packages/@aws-cdk/codedeploy/.npmignore create mode 100644 packages/@aws-cdk/codedeploy/lib/index.ts create mode 100644 packages/@aws-cdk/codedeploy/package.json create mode 100644 packages/@aws-cdk/codedeploy/test/test.codedeploy.ts create mode 100644 packages/@aws-cdk/cognito/.gitignore create mode 100644 packages/@aws-cdk/cognito/.npmignore create mode 100644 packages/@aws-cdk/cognito/lib/index.ts create mode 100644 packages/@aws-cdk/cognito/package.json create mode 100644 packages/@aws-cdk/cognito/test/test.cognito.ts create mode 100644 packages/@aws-cdk/config/.gitignore create mode 100644 packages/@aws-cdk/config/.npmignore create mode 100644 packages/@aws-cdk/config/lib/index.ts create mode 100644 packages/@aws-cdk/config/package.json create mode 100644 packages/@aws-cdk/config/test/test.config.ts create mode 100644 packages/@aws-cdk/datapipeline/.gitignore create mode 100644 packages/@aws-cdk/datapipeline/.npmignore create mode 100644 packages/@aws-cdk/datapipeline/lib/index.ts create mode 100644 packages/@aws-cdk/datapipeline/package.json create mode 100644 packages/@aws-cdk/datapipeline/test/test.datapipeline.ts create mode 100644 packages/@aws-cdk/dax/.gitignore create mode 100644 packages/@aws-cdk/dax/.npmignore create mode 100644 packages/@aws-cdk/dax/lib/index.ts create mode 100644 packages/@aws-cdk/dax/package.json create mode 100644 packages/@aws-cdk/dax/test/test.dax.ts create mode 100644 packages/@aws-cdk/directoryservice/.gitignore create mode 100644 packages/@aws-cdk/directoryservice/.npmignore create mode 100644 packages/@aws-cdk/directoryservice/lib/index.ts create mode 100644 packages/@aws-cdk/directoryservice/package.json create mode 100644 packages/@aws-cdk/directoryservice/test/test.directoryservice.ts create mode 100644 packages/@aws-cdk/dms/.gitignore create mode 100644 packages/@aws-cdk/dms/.npmignore create mode 100644 packages/@aws-cdk/dms/lib/index.ts create mode 100644 packages/@aws-cdk/dms/package.json create mode 100644 packages/@aws-cdk/dms/test/test.dms.ts create mode 100644 packages/@aws-cdk/ecr/.gitignore create mode 100644 packages/@aws-cdk/ecr/.npmignore create mode 100644 packages/@aws-cdk/ecr/lib/index.ts create mode 100644 packages/@aws-cdk/ecr/package.json create mode 100644 packages/@aws-cdk/ecr/test/test.ecr.ts create mode 100644 packages/@aws-cdk/ecs/.gitignore create mode 100644 packages/@aws-cdk/ecs/.npmignore create mode 100644 packages/@aws-cdk/ecs/lib/index.ts create mode 100644 packages/@aws-cdk/ecs/package.json create mode 100644 packages/@aws-cdk/ecs/test/test.ecs.ts create mode 100644 packages/@aws-cdk/efs/.gitignore create mode 100644 packages/@aws-cdk/efs/.npmignore create mode 100644 packages/@aws-cdk/efs/lib/index.ts create mode 100644 packages/@aws-cdk/efs/package.json create mode 100644 packages/@aws-cdk/efs/test/test.efs.ts create mode 100644 packages/@aws-cdk/eks/.gitignore create mode 100644 packages/@aws-cdk/eks/.npmignore create mode 100644 packages/@aws-cdk/eks/lib/index.ts create mode 100644 packages/@aws-cdk/eks/package.json create mode 100644 packages/@aws-cdk/eks/test/test.eks.ts create mode 100644 packages/@aws-cdk/elasticache/.gitignore create mode 100644 packages/@aws-cdk/elasticache/.npmignore create mode 100644 packages/@aws-cdk/elasticache/lib/index.ts create mode 100644 packages/@aws-cdk/elasticache/package.json create mode 100644 packages/@aws-cdk/elasticache/test/test.elasticache.ts create mode 100644 packages/@aws-cdk/elasticbeanstalk/.gitignore create mode 100644 packages/@aws-cdk/elasticbeanstalk/.npmignore create mode 100644 packages/@aws-cdk/elasticbeanstalk/lib/index.ts create mode 100644 packages/@aws-cdk/elasticbeanstalk/package.json create mode 100644 packages/@aws-cdk/elasticbeanstalk/test/test.elasticbeanstalk.ts create mode 100644 packages/@aws-cdk/elasticloadbalancing/.gitignore create mode 100644 packages/@aws-cdk/elasticloadbalancing/.npmignore create mode 100644 packages/@aws-cdk/elasticloadbalancing/lib/index.ts create mode 100644 packages/@aws-cdk/elasticloadbalancing/package.json create mode 100644 packages/@aws-cdk/elasticloadbalancing/test/test.elasticloadbalancing.ts create mode 100644 packages/@aws-cdk/elasticloadbalancingv2/.gitignore create mode 100644 packages/@aws-cdk/elasticloadbalancingv2/.npmignore create mode 100644 packages/@aws-cdk/elasticloadbalancingv2/lib/index.ts create mode 100644 packages/@aws-cdk/elasticloadbalancingv2/package.json create mode 100644 packages/@aws-cdk/elasticloadbalancingv2/test/test.elasticloadbalancingv2.ts create mode 100644 packages/@aws-cdk/elasticsearch/.gitignore create mode 100644 packages/@aws-cdk/elasticsearch/.npmignore create mode 100644 packages/@aws-cdk/elasticsearch/lib/index.ts create mode 100644 packages/@aws-cdk/elasticsearch/package.json create mode 100644 packages/@aws-cdk/elasticsearch/test/test.elasticsearch.ts create mode 100644 packages/@aws-cdk/emr/.gitignore create mode 100644 packages/@aws-cdk/emr/.npmignore create mode 100644 packages/@aws-cdk/emr/lib/index.ts create mode 100644 packages/@aws-cdk/emr/package.json create mode 100644 packages/@aws-cdk/emr/test/test.emr.ts create mode 100644 packages/@aws-cdk/gamelift/.gitignore create mode 100644 packages/@aws-cdk/gamelift/.npmignore create mode 100644 packages/@aws-cdk/gamelift/lib/index.ts create mode 100644 packages/@aws-cdk/gamelift/package.json create mode 100644 packages/@aws-cdk/gamelift/test/test.gamelift.ts create mode 100644 packages/@aws-cdk/glue/.gitignore create mode 100644 packages/@aws-cdk/glue/.npmignore create mode 100644 packages/@aws-cdk/glue/lib/index.ts create mode 100644 packages/@aws-cdk/glue/package.json create mode 100644 packages/@aws-cdk/glue/test/test.glue.ts create mode 100644 packages/@aws-cdk/guardduty/.gitignore create mode 100644 packages/@aws-cdk/guardduty/.npmignore create mode 100644 packages/@aws-cdk/guardduty/lib/index.ts create mode 100644 packages/@aws-cdk/guardduty/package.json create mode 100644 packages/@aws-cdk/guardduty/test/test.guardduty.ts create mode 100644 packages/@aws-cdk/inspector/.gitignore create mode 100644 packages/@aws-cdk/inspector/.npmignore create mode 100644 packages/@aws-cdk/inspector/lib/index.ts create mode 100644 packages/@aws-cdk/inspector/package.json create mode 100644 packages/@aws-cdk/inspector/test/test.inspector.ts create mode 100644 packages/@aws-cdk/iot/.gitignore create mode 100644 packages/@aws-cdk/iot/.npmignore create mode 100644 packages/@aws-cdk/iot/lib/index.ts create mode 100644 packages/@aws-cdk/iot/package.json create mode 100644 packages/@aws-cdk/iot/test/test.iot.ts create mode 100644 packages/@aws-cdk/kinesisanalytics/.gitignore create mode 100644 packages/@aws-cdk/kinesisanalytics/.npmignore create mode 100644 packages/@aws-cdk/kinesisanalytics/lib/index.ts create mode 100644 packages/@aws-cdk/kinesisanalytics/package.json create mode 100644 packages/@aws-cdk/kinesisanalytics/test/test.kinesisanalytics.ts create mode 100644 packages/@aws-cdk/kinesisfirehose/.gitignore create mode 100644 packages/@aws-cdk/kinesisfirehose/.npmignore create mode 100644 packages/@aws-cdk/kinesisfirehose/lib/index.ts create mode 100644 packages/@aws-cdk/kinesisfirehose/package.json create mode 100644 packages/@aws-cdk/kinesisfirehose/test/test.kinesisfirehose.ts rename packages/@aws-cdk/lambda/lib/{version.ts => lambda-version.ts} (83%) create mode 100644 packages/@aws-cdk/logs/.gitignore create mode 100644 packages/@aws-cdk/logs/.npmignore create mode 100644 packages/@aws-cdk/logs/lib/index.ts create mode 100644 packages/@aws-cdk/logs/package.json create mode 100644 packages/@aws-cdk/logs/test/test.logs.ts create mode 100644 packages/@aws-cdk/opsworks/.gitignore create mode 100644 packages/@aws-cdk/opsworks/.npmignore create mode 100644 packages/@aws-cdk/opsworks/lib/index.ts create mode 100644 packages/@aws-cdk/opsworks/package.json create mode 100644 packages/@aws-cdk/opsworks/test/test.opsworks.ts create mode 100644 packages/@aws-cdk/redshift/.gitignore create mode 100644 packages/@aws-cdk/redshift/.npmignore create mode 100644 packages/@aws-cdk/redshift/lib/index.ts create mode 100644 packages/@aws-cdk/redshift/package.json create mode 100644 packages/@aws-cdk/redshift/test/test.redshift.ts delete mode 100644 packages/@aws-cdk/resources/cloudformation-specs/000_CloudFormationResourceSpecification.json delete mode 100644 packages/@aws-cdk/resources/cloudformation-specs/000_sam.spec.json delete mode 100644 packages/@aws-cdk/resources/cloudformation-specs/500_Cognity_IdentityPoolRoleAttachment_patches.json delete mode 100644 packages/@aws-cdk/resources/cloudformation-specs/500_SAM_Serverless_Function_S3Location_Version_patch.json delete mode 100644 packages/@aws-cdk/resources/cloudformation-specs/500_SSM_AssociationName_patch.json delete mode 100644 packages/@aws-cdk/resources/cloudformation-specs/500_SSM_AssociationName_patch.md delete mode 100644 packages/@aws-cdk/resources/cloudformation-specs/510_ElasticSearch_Domain_patches.json delete mode 100644 packages/@aws-cdk/resources/package-lock.json delete mode 100644 packages/@aws-cdk/resources/test/test.generated-code.ts delete mode 100644 packages/@aws-cdk/resources/test/test.specifics.ts delete mode 100644 packages/@aws-cdk/resources/test/test.tag.ts delete mode 100644 packages/@aws-cdk/resources/tslint.yaml rename packages/@aws-cdk/{resources => runtime}/.gitignore (81%) create mode 100644 packages/@aws-cdk/runtime/.npmignore create mode 100644 packages/@aws-cdk/runtime/lib/index.ts rename packages/@aws-cdk/{resources => runtime}/package.json (66%) rename packages/@aws-cdk/{resources => runtime}/test/test.dates.ts (92%) create mode 100644 packages/@aws-cdk/sdb/.gitignore create mode 100644 packages/@aws-cdk/sdb/.npmignore create mode 100644 packages/@aws-cdk/sdb/lib/index.ts create mode 100644 packages/@aws-cdk/sdb/package.json create mode 100644 packages/@aws-cdk/sdb/test/test.sdb.ts create mode 100644 packages/@aws-cdk/serverless/.gitignore create mode 100644 packages/@aws-cdk/serverless/.npmignore create mode 100644 packages/@aws-cdk/serverless/lib/index.ts create mode 100644 packages/@aws-cdk/serverless/package.json create mode 100644 packages/@aws-cdk/serverless/test/test.serverless.ts create mode 100644 packages/@aws-cdk/servicecatalog/.gitignore create mode 100644 packages/@aws-cdk/servicecatalog/.npmignore create mode 100644 packages/@aws-cdk/servicecatalog/lib/index.ts create mode 100644 packages/@aws-cdk/servicecatalog/package.json create mode 100644 packages/@aws-cdk/servicecatalog/test/test.servicecatalog.ts create mode 100644 packages/@aws-cdk/servicediscovery/.gitignore create mode 100644 packages/@aws-cdk/servicediscovery/.npmignore create mode 100644 packages/@aws-cdk/servicediscovery/lib/index.ts create mode 100644 packages/@aws-cdk/servicediscovery/package.json create mode 100644 packages/@aws-cdk/servicediscovery/test/test.servicediscovery.ts create mode 100644 packages/@aws-cdk/ses/.gitignore create mode 100644 packages/@aws-cdk/ses/.npmignore create mode 100644 packages/@aws-cdk/ses/lib/index.ts create mode 100644 packages/@aws-cdk/ses/package.json create mode 100644 packages/@aws-cdk/ses/test/test.ses.ts create mode 100644 packages/@aws-cdk/ssm/.gitignore create mode 100644 packages/@aws-cdk/ssm/.npmignore create mode 100644 packages/@aws-cdk/ssm/lib/index.ts create mode 100644 packages/@aws-cdk/ssm/package.json create mode 100644 packages/@aws-cdk/ssm/test/test.ssm.ts create mode 100644 packages/@aws-cdk/stepfunctions/.gitignore create mode 100644 packages/@aws-cdk/stepfunctions/.npmignore create mode 100644 packages/@aws-cdk/stepfunctions/lib/index.ts create mode 100644 packages/@aws-cdk/stepfunctions/package.json create mode 100644 packages/@aws-cdk/stepfunctions/test/test.stepfunctions.ts create mode 100644 packages/@aws-cdk/waf/.gitignore create mode 100644 packages/@aws-cdk/waf/.npmignore create mode 100644 packages/@aws-cdk/waf/lib/index.ts create mode 100644 packages/@aws-cdk/waf/package.json create mode 100644 packages/@aws-cdk/waf/test/test.waf.ts create mode 100644 packages/@aws-cdk/wafregional/.gitignore create mode 100644 packages/@aws-cdk/wafregional/.npmignore create mode 100644 packages/@aws-cdk/wafregional/lib/index.ts create mode 100644 packages/@aws-cdk/wafregional/package.json create mode 100644 packages/@aws-cdk/wafregional/test/test.wafregional.ts create mode 100644 packages/@aws-cdk/workspaces/.gitignore create mode 100644 packages/@aws-cdk/workspaces/.npmignore create mode 100644 packages/@aws-cdk/workspaces/lib/index.ts create mode 100644 packages/@aws-cdk/workspaces/package.json create mode 100644 packages/@aws-cdk/workspaces/test/test.workspaces.ts delete mode 100644 tools/cfn2ts/lib/cfnspec.ts delete mode 100644 tools/cfn2ts/lib/merge-specs.ts create mode 100644 tools/cfn2ts/lib/spec-utils.ts diff --git a/build.sh b/build.sh index b99aa20457085..9499fb3e52b5e 100755 --- a/build.sh +++ b/build.sh @@ -11,12 +11,12 @@ rm -rf $BUILD_INDICATOR export PATH=node_modules/.bin:$PATH echo "=============================================================================================" -echo "boostrapping..." -lerna bootstrap --reject-cycles +echo "building..." +lerna exec --stream "npm run build" echo "=============================================================================================" echo "testing..." -lerna run test --stream +lerna run --stream test touch $BUILD_INDICATOR diff --git a/create_missing_libraries.sh b/create_missing_libraries.sh new file mode 100755 index 0000000000000..60af9a6cc3037 --- /dev/null +++ b/create_missing_libraries.sh @@ -0,0 +1,97 @@ +#!/bin/bash +set -euo pipefail + +VERSION=$(node -e 'console.log(require("./lerna.json").version);') + +for S in $(node -e 'console.log(require("./packages/@aws-cdk/cloudformation-resource-spec").namespaces.join("\n"));'); do + P=$(tr 'A-Z' 'a-z' <<< "${S/AWS::/@aws-cdk/}") + PB=$(basename ${P}) + if [ ! -d packages/${P} ]; then + echo "⏳ Creating package ${P} for scope ${S}..." + mkdir -p packages/${P}/test + mkdir -p packages/${P}/lib + echo '*.js' >> packages/${P}/.gitignore + echo '*.js.map' >> packages/${P}/.gitignore + echo '*.d.ts' >> packages/${P}/.gitignore + echo 'tsconfig.json' >> packages/${P}/.gitignore + echo 'tslint.json' >> packages/${P}/.gitignore + echo 'node_modules' >> packages/${P}/.gitignore + echo 'cfn' >> packages/${P}/.gitignore + echo 'dist' >> packages/${P}/.gitignore + + echo "# Don't include original .ts files when doing \`npm pack\`" >> packages/${P}/.npmignore + echo '*.ts' >> packages/${P}/.npmignore + echo '!*.d.ts' >> packages/${P}/.npmignore + echo 'coverage' >> packages/${P}/.npmignore + echo '.nyc_output' >> packages/${P}/.npmignore + echo '*.tgz' >> packages/${P}/.npmignore + + echo '{' >> packages/${P}/package.json + echo " \"name\": \"${P}\"," >> packages/${P}/package.json + echo " \"version\": \"${VERSION}\"," >> packages/${P}/package.json + echo " \"description\": \"The CDK Construct Library for ${S}\"," >> packages/${P}/package.json + echo " \"main\": \"lib/index.js\"," >> packages/${P}/package.json + echo " \"types\": \"lib/index.d.ts\"," >> packages/${P}/package.json + echo " \"jsii\": {" >> packages/${P}/package.json + echo " \"outdir\": \"dist\"," >> packages/${P}/package.json + echo " \"bundledDependencies\": []," >> packages/${P}/package.json + echo " \"names\": {" >> packages/${P}/package.json + echo " \"java\": \"com.amazonaws.cdk.${PB}\"," >> packages/${P}/package.json + echo " \"dotnet\": \"${S/AWS::/Aws.Cdk.}\"" >> packages/${P}/package.json + echo " }" >> packages/${P}/package.json + echo " }," >> packages/${P}/package.json + echo " \"repository\": {" >> packages/${P}/package.json + echo " \"type\": \"git\"," >> packages/${P}/package.json + echo " \"url\": \"git://github.com/awslabs/aws-cdk\"" >> packages/${P}/package.json + echo " }," >> packages/${P}/package.json + echo " \"scripts\": {" >> packages/${P}/package.json + echo " \"build\": \"cfn2ts --scope=${S} && jsii && tslint -p . && pkglint\"," >> packages/${P}/package.json + echo " \"watch\": \"jsii -w\"," >> packages/${P}/package.json + echo " \"lint\": \"jsii && tslint -p . --force\"," >> packages/${P}/package.json + echo " \"test\": \"nodeunit test/test.*.js && cdk-integ-assert\"," >> packages/${P}/package.json + echo " \"integ\": \"cdk-integ\"," >> packages/${P}/package.json + echo " \"pkglint\": \"pkglint -f\"" >> packages/${P}/package.json + echo " }," >> packages/${P}/package.json + echo " \"keywords\": [" >> packages/${P}/package.json + echo " \"aws\"," >> packages/${P}/package.json + echo " \"cdk\"," >> packages/${P}/package.json + echo " \"constructs\"," >> packages/${P}/package.json + echo " \"${PB}\"" >> packages/${P}/package.json + echo " ]," >> packages/${P}/package.json + echo " \"author\": {" >> packages/${P}/package.json + echo " \"name\": \"Amazon Web Services\"," >> packages/${P}/package.json + echo " \"url\": \"https://aws.amazon.com\"" >> packages/${P}/package.json + echo " }," >> packages/${P}/package.json + echo " \"license\": \"LicenseRef-LICENSE\"," >> packages/${P}/package.json + echo " \"devDependencies\": {" >> packages/${P}/package.json + echo " \"@aws-cdk/assert\": \"^${VERSION}\"," >> packages/${P}/package.json + echo " \"cfn2ts\": \"^${VERSION}\"," >> packages/${P}/package.json + echo " \"pkglint\": \"^${VERSION}\"" >> packages/${P}/package.json + echo " }," >> packages/${P}/package.json + echo " \"dependencies\": {" >> packages/${P}/package.json + echo " \"@aws-cdk/core\": \"^${VERSION}\"," >> packages/${P}/package.json + echo " \"@aws-cdk/runtime\": \"^${VERSION}\"" >> packages/${P}/package.json + echo " }" >> packages/${P}/package.json + echo '}' >> packages/${P}/package.json + + echo "// The L1 Library for ${S}:" >> packages/${P}/lib/index.ts + echo "export * from '../cfn/${PB}';" >> packages/${P}/lib/index.ts + + echo "import { Test, testCase } from 'nodeunit';" >> packages/${P}/test/test.${PB}.ts + echo "" >> packages/${P}/test/test.${PB}.ts + echo "exports = testCase({" >> packages/${P}/test/test.${PB}.ts + echo " notTested(test: Test) {" >> packages/${P}/test/test.${PB}.ts + echo " test.ok(true, 'No tests are specified for this package.');" >> packages/${P}/test/test.${PB}.ts + echo " test.done();" >> packages/${P}/test/test.${PB}.ts + echo " }" >> packages/${P}/test/test.${PB}.ts + echo "});" >> packages/${P}/test/test.${PB}.ts + + echo "⌛️ Bootstrapping & building ${P}" + lerna bootstrap --scope=${P} + lerna run build --scope=${P} + + git add packages/${P} + + echo "✅ Have fun with your new package ${P}" + fi +done diff --git a/examples/cdk-examples-java/README.md b/examples/cdk-examples-java/README.md index fac78b184efa4..a94c92470d8fb 100644 --- a/examples/cdk-examples-java/README.md +++ b/examples/cdk-examples-java/README.md @@ -11,7 +11,7 @@ This an example of a CDK program written in Java. ## Building -To build this app, run `npm run prepare`. This will: +To build this app, run `npm run build`. This will: 1. Generate `project/pom.xml` with correct references to jsii and CDK dependencies. @@ -48,4 +48,4 @@ $ cdk diff ``` If you make modifications, make sure to rebuild the app, either by callign `mvn -package` from `./project` or `npm run prepare` from the root. +package` from `./project` or `npm run build` from the root. diff --git a/examples/cdk-examples-java/package.json b/examples/cdk-examples-java/package.json index ec9aed2ef95d2..b98410a9c0542 100644 --- a/examples/cdk-examples-java/package.json +++ b/examples/cdk-examples-java/package.json @@ -11,7 +11,7 @@ "ignore": true }, "scripts": { - "prepare": "/bin/bash generate.sh && cd project && mvn package", + "build": "/bin/bash generate.sh && cd project && mvn package", "cdk": "cdk", "test": "echo ok" }, diff --git a/examples/cdk-examples-typescript/README.md b/examples/cdk-examples-typescript/README.md index cfdc35f593b9d..b7a9260e64e62 100644 --- a/examples/cdk-examples-typescript/README.md +++ b/examples/cdk-examples-typescript/README.md @@ -9,7 +9,7 @@ file at the root. To synthesize or deploy and example app, you will first need to build it: ```shell -npm run prepare +npm run build ``` Or you can watch: diff --git a/examples/cdk-examples-typescript/advanced-usage/index.ts b/examples/cdk-examples-typescript/advanced-usage/index.ts index 2aa1374fb0b35..b02ef847d7e9f 100644 --- a/examples/cdk-examples-typescript/advanced-usage/index.ts +++ b/examples/cdk-examples-typescript/advanced-usage/index.ts @@ -1,9 +1,12 @@ +import { StackResource } from '@aws-cdk/cloudformation'; import * as cdk from '@aws-cdk/core'; import { PolicyStatement, ServicePrincipal } from '@aws-cdk/core'; -import { WindowsImage, WindowsVersion } from '@aws-cdk/ec2'; +import { InstanceResource, WindowsImage, WindowsVersion } from '@aws-cdk/ec2'; +import { } from '@aws-cdk/ec2'; import { Role } from '@aws-cdk/iam'; -import { cloudformation, ec2, sns, sqs } from '@aws-cdk/resources'; import { Bucket } from '@aws-cdk/s3'; +import { SubscriptionResource, TopicResource } from '@aws-cdk/sns'; +import { QueueResource } from '@aws-cdk/sqs'; /** * This stack demonstrates the use of the IAM policy library shipped with the CDK. @@ -54,7 +57,7 @@ class EnvContextExample extends cdk.Stack { // render construct name based on it's availablity zone const constructName = `InstanceFor${az.replace(/-/g, '').toUpperCase()}`; - new ec2.InstanceResource(this, constructName, { + new InstanceResource(this, constructName, { imageId: ami.imageId, availabilityZone: az, }); @@ -89,7 +92,7 @@ class IncludeExample extends cdk.Stack { // add constructs (and resources) programmatically new EnvContextExample(parent, 'Example'); - new sqs.QueueResource(this, 'CDKQueue', {}); + new QueueResource(this, 'CDKQueue', {}); } } @@ -103,7 +106,7 @@ class NestedStackExample extends cdk.Stack { // add an "AWS::CloudFormation::Stack" resource which uses the MongoDB quickstart // https://aws.amazon.com/quickstart/architecture/mongodb/ // only non-default values are provided here. - new cloudformation.StackResource(this, 'NestedStack', { + new StackResource(this, 'NestedStack', { templateUrl: 'https://s3.amazonaws.com/quickstart-reference/mongodb/latest/templates/mongodb-master.template', parameters: { KeyPairName: 'my-key-pair', @@ -124,10 +127,10 @@ class ResourceReferencesExample extends cdk.Stack { constructor(parent: cdk.App, name: string, props?: cdk.StackProps) { super(parent, name, props); - const topic = new sns.TopicResource(this, 'Topic', {}); - const queue = new sqs.QueueResource(this, 'Queue', {}); + const topic = new TopicResource(this, 'Topic', {}); + const queue = new QueueResource(this, 'Queue', {}); - new sns.SubscriptionResource(this, 'Subscription', { + new SubscriptionResource(this, 'Subscription', { topicArn: topic.ref, // resolves to { Ref: } protocol: 'sqs', endpoint: queue.queueArn // resolves to { "Fn::GetAtt": [ , "Arn" ] } diff --git a/examples/cdk-examples-typescript/chat-app/CognitoChatRoomPool.ts b/examples/cdk-examples-typescript/chat-app/CognitoChatRoomPool.ts index b0eaacd2d961a..a63ef2e29c96b 100644 --- a/examples/cdk-examples-typescript/chat-app/CognitoChatRoomPool.ts +++ b/examples/cdk-examples-typescript/chat-app/CognitoChatRoomPool.ts @@ -1,12 +1,12 @@ +import { UserPoolClientResource, UserPoolResource } from '@aws-cdk/cognito'; import { Construct } from '@aws-cdk/core'; -import { cognito } from '@aws-cdk/resources'; export class CognitoChatRoomPool extends Construct { constructor(parent: Construct, name: string) { super(parent, name); // Create chat room user pool - const chatPool = new cognito.UserPoolResource(this, 'UserPool', { + const chatPool = new UserPoolResource(this, 'UserPool', { adminCreateUserConfig: { allowAdminCreateUserOnly: false }, @@ -26,7 +26,7 @@ export class CognitoChatRoomPool extends Construct { }); // Now for the client - new cognito.UserPoolClientResource(this, 'UserPoolClient', { + new UserPoolClientResource(this, 'UserPoolClient', { clientName: 'Chat-Room', explicitAuthFlows: [ 'ADMIN_NO_SRP_AUTH' ], refreshTokenValidity: 30, diff --git a/examples/cdk-examples-typescript/chat-app/DynamodbPostsTable.ts b/examples/cdk-examples-typescript/chat-app/DynamodbPostsTable.ts index fc27bf6eac763..0c1f671d0518e 100644 --- a/examples/cdk-examples-typescript/chat-app/DynamodbPostsTable.ts +++ b/examples/cdk-examples-typescript/chat-app/DynamodbPostsTable.ts @@ -1,15 +1,15 @@ import { Construct } from '@aws-cdk/core'; -import * as dynamodb from '@aws-cdk/dynamodb'; +import { KeyAttributeType, Table } from '@aws-cdk/dynamodb'; export class DynamoPostsTable extends Construct { constructor(parent: Construct, name: string) { super(parent, name); - const table = new dynamodb.Table(this, 'Table', { + const table = new Table(this, 'Table', { readCapacity: 5, writeCapacity: 5 }); - table.addPartitionKey('Alias', dynamodb.KeyAttributeType.String); - table.addSortKey('Timestamp', dynamodb.KeyAttributeType.String); + table.addPartitionKey('Alias', KeyAttributeType.String); + table.addSortKey('Timestamp', KeyAttributeType.String); } } diff --git a/examples/cdk-examples-typescript/cloudformation/index.ts b/examples/cdk-examples-typescript/cloudformation/index.ts index 2d84897082785..5148ac52343c5 100644 --- a/examples/cdk-examples-typescript/cloudformation/index.ts +++ b/examples/cdk-examples-typescript/cloudformation/index.ts @@ -1,11 +1,11 @@ import { App, Stack } from '@aws-cdk/core'; -import { sqs } from '@aws-cdk/resources'; +import { QueueResource } from '@aws-cdk/sqs'; class CloudFormationExample extends Stack { constructor(parent: App) { super(parent); - new sqs.QueueResource(this, 'MyQueue', { + new QueueResource(this, 'MyQueue', { visibilityTimeout: 300 }); } diff --git a/examples/cdk-examples-typescript/package.json b/examples/cdk-examples-typescript/package.json index e5f313c78d615..6489e5b7111be 100644 --- a/examples/cdk-examples-typescript/package.json +++ b/examples/cdk-examples-typescript/package.json @@ -4,7 +4,7 @@ "description": "A bunch of CDK examples", "private": true, "scripts": { - "prepare": "tsc && tslint -p . && pkglint", + "build": "tsc && tslint -p . && pkglint", "watch": "tsc -w", "lint": "tsc && tslint -p . --force", "test": "echo ok", @@ -21,6 +21,8 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { + "@aws-cdk/cloudformation": "^0.7.3-beta", + "@aws-cdk/cognito": "^0.7.3-beta", "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/dynamodb": "^0.7.3-beta", "@aws-cdk/ec2": "^0.7.3-beta", @@ -28,7 +30,7 @@ "@aws-cdk/lambda": "^0.7.3-beta", "@aws-cdk/neptune": "^0.7.3-beta", "@aws-cdk/rds": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta", "@aws-cdk/rtv": "^0.7.3-beta", "@aws-cdk/s3": "^0.7.3-beta", "@aws-cdk/sns": "^0.7.3-beta", diff --git a/examples/cdk-examples-typescript/sns-sqs/index.ts b/examples/cdk-examples-typescript/sns-sqs/index.ts index 848608d0f8a58..f833323e188c5 100644 --- a/examples/cdk-examples-typescript/sns-sqs/index.ts +++ b/examples/cdk-examples-typescript/sns-sqs/index.ts @@ -1,7 +1,6 @@ import { App, PolicyDocument, PolicyStatement, Stack } from "@aws-cdk/core"; -import { sns, sqs } from '@aws-cdk/resources'; -import { Topic } from '@aws-cdk/sns'; -import { Queue } from '@aws-cdk/sqs'; +import { SubscriptionResource, Topic, TopicResource } from '@aws-cdk/sns'; +import { Queue, QueuePolicyResource, QueueResource } from '@aws-cdk/sqs'; class ACL extends Stack { constructor(parent: App, name: string) { @@ -20,10 +19,10 @@ class CFN extends Stack { constructor(parent: App, name: string) { super(parent, name); - const topic = new sns.TopicResource(this, 'MyTopic'); - const queue = new sqs.QueueResource(this, 'MyQueue'); + const topic = new TopicResource(this, 'MyTopic'); + const queue = new QueueResource(this, 'MyQueue'); - new sns.SubscriptionResource(this, 'TopicToQueue', { + new SubscriptionResource(this, 'TopicToQueue', { topicArn: topic.ref, // ref == arn for topics endpoint: queue.queueName, protocol: 'sqs' @@ -36,7 +35,7 @@ class CFN extends Stack { .addServicePrincipal('sns.amazonaws.com') .setCondition('ArnEquals', { 'aws:SourceArn': topic.ref })); - new sqs.QueuePolicyResource(this, 'MyQueuePolicy', { + new QueuePolicyResource(this, 'MyQueuePolicy', { policyDocument, queues: [ queue.ref ] }); diff --git a/install.sh b/install.sh index f71160b09bce4..699c3502ffb15 100755 --- a/install.sh +++ b/install.sh @@ -4,3 +4,10 @@ set -euo pipefail echo "=============================================================================================" echo "installing repo-global dependencies..." npm i --no-package-lock --global-style + +# Now that we have lerna available... +export PATH=node_modules/.bin:$PATH + +echo "=============================================================================================" +echo "bootstrapping..." +lerna bootstrap --reject-cycles diff --git a/packages/@aws-cdk/acm/.gitignore b/packages/@aws-cdk/acm/.gitignore index 4e5b425f7cc3f..457fcbd4e186b 100644 --- a/packages/@aws-cdk/acm/.gitignore +++ b/packages/@aws-cdk/acm/.gitignore @@ -3,4 +3,6 @@ tsconfig.json tslint.json *.js.map *.d.ts +node_modules +cfn dist diff --git a/packages/@aws-cdk/acm/lib/certificate.ts b/packages/@aws-cdk/acm/lib/certificate.ts index e92c99022745d..cfb8f5a45a072 100644 --- a/packages/@aws-cdk/acm/lib/certificate.ts +++ b/packages/@aws-cdk/acm/lib/certificate.ts @@ -1,5 +1,5 @@ import { Construct } from '@aws-cdk/core'; -import { certificatemanager } from '@aws-cdk/resources'; +import * as certificatemanager from '../cfn/certificatemanager'; import { CertificateArn, CertificateRef } from './certificate-ref'; import { apexDomain } from './util'; diff --git a/packages/@aws-cdk/acm/lib/index.ts b/packages/@aws-cdk/acm/lib/index.ts index df908b1296609..bf641118ecc1f 100644 --- a/packages/@aws-cdk/acm/lib/index.ts +++ b/packages/@aws-cdk/acm/lib/index.ts @@ -1,2 +1,5 @@ export * from './certificate'; export * from './certificate-ref'; + +// The L1 library for AWS::CertificateManager: +export * from '../cfn/certificatemanager'; diff --git a/packages/@aws-cdk/acm/package.json b/packages/@aws-cdk/acm/package.json index 75c91364624f6..3401bdb07b270 100644 --- a/packages/@aws-cdk/acm/package.json +++ b/packages/@aws-cdk/acm/package.json @@ -17,7 +17,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "cfn2ts --scope=AWS::CertificateManager && jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "jsii && tslint -p . --force", "test": "nodeunit test/test.*.js", @@ -36,13 +36,13 @@ "license": "LicenseRef-LICENSE", "devDependencies": { "@aws-cdk/assert": "^0.7.3-beta", - "aws-cdk": "^0.7.3-beta", "aws-sdk": "^2.259.1", + "cfn2ts": "^0.7.3-beta", "pkglint": "^0.7.3-beta" }, "dependencies": { "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta" + "@aws-cdk/runtime": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/apigateway/.gitignore b/packages/@aws-cdk/apigateway/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/apigateway/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/resources/.npmignore b/packages/@aws-cdk/apigateway/.npmignore similarity index 100% rename from packages/@aws-cdk/resources/.npmignore rename to packages/@aws-cdk/apigateway/.npmignore diff --git a/packages/@aws-cdk/apigateway/lib/index.ts b/packages/@aws-cdk/apigateway/lib/index.ts new file mode 100644 index 0000000000000..50532244fddc0 --- /dev/null +++ b/packages/@aws-cdk/apigateway/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::ApiGateway: +export * from '../cfn/apigateway'; diff --git a/packages/@aws-cdk/apigateway/package.json b/packages/@aws-cdk/apigateway/package.json new file mode 100644 index 0000000000000..18dc7748bea37 --- /dev/null +++ b/packages/@aws-cdk/apigateway/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/apigateway", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::ApiGateway", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.apigateway", + "dotnet": "Aws.Cdk.ApiGateway" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::ApiGateway && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "apigateway" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/apigateway/test/test.apigateway.ts b/packages/@aws-cdk/apigateway/test/test.apigateway.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/apigateway/test/test.apigateway.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/applet-js/package.json b/packages/@aws-cdk/applet-js/package.json index e345cee06b625..514dce872eaf0 100644 --- a/packages/@aws-cdk/applet-js/package.json +++ b/packages/@aws-cdk/applet-js/package.json @@ -8,7 +8,7 @@ "cdk-applet-js": "bin/cdk-applet-js" }, "scripts": { - "prepare": "tslint -p . && tsc && chmod +x bin/cdk-applet-js && pkglint", + "build": "tslint -p . && tsc && chmod +x bin/cdk-applet-js && pkglint", "watch": "tsc -w", "lint": "tsc && tslint -p . --force", "test": "/bin/bash test/test-applet.sh", diff --git a/packages/@aws-cdk/applicationautoscaling/.gitignore b/packages/@aws-cdk/applicationautoscaling/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/applicationautoscaling/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/applicationautoscaling/.npmignore b/packages/@aws-cdk/applicationautoscaling/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/applicationautoscaling/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/applicationautoscaling/lib/index.ts b/packages/@aws-cdk/applicationautoscaling/lib/index.ts new file mode 100644 index 0000000000000..a972411744ec0 --- /dev/null +++ b/packages/@aws-cdk/applicationautoscaling/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::ApplicationAutoScaling: +export * from '../cfn/applicationautoscaling'; diff --git a/packages/@aws-cdk/applicationautoscaling/package.json b/packages/@aws-cdk/applicationautoscaling/package.json new file mode 100644 index 0000000000000..39db641e3dd03 --- /dev/null +++ b/packages/@aws-cdk/applicationautoscaling/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/applicationautoscaling", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::ApplicationAutoScaling", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.applicationautoscaling", + "dotnet": "Aws.Cdk.ApplicationAutoScaling" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::ApplicationAutoScaling && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "applicationautoscaling" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/applicationautoscaling/test/test.applicationautoscaling.ts b/packages/@aws-cdk/applicationautoscaling/test/test.applicationautoscaling.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/applicationautoscaling/test/test.applicationautoscaling.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/appsync/.gitignore b/packages/@aws-cdk/appsync/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/appsync/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/appsync/.npmignore b/packages/@aws-cdk/appsync/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/appsync/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/appsync/lib/index.ts b/packages/@aws-cdk/appsync/lib/index.ts new file mode 100644 index 0000000000000..06c2da66650b9 --- /dev/null +++ b/packages/@aws-cdk/appsync/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::AppSync: +export * from '../cfn/appsync'; diff --git a/packages/@aws-cdk/appsync/package.json b/packages/@aws-cdk/appsync/package.json new file mode 100644 index 0000000000000..1e8bb675e732c --- /dev/null +++ b/packages/@aws-cdk/appsync/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/appsync", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::AppSync", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.appsync", + "dotnet": "Aws.Cdk.AppSync" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::AppSync && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "appsync" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/appsync/test/test.appsync.ts b/packages/@aws-cdk/appsync/test/test.appsync.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/appsync/test/test.appsync.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/assert/lib/integ-helpers.ts b/packages/@aws-cdk/assert/lib/integ-helpers.ts index c30b337d80bf9..489342d345f6a 100644 --- a/packages/@aws-cdk/assert/lib/integ-helpers.ts +++ b/packages/@aws-cdk/assert/lib/integ-helpers.ts @@ -92,15 +92,18 @@ export const STATIC_TEST_CONTEXT = { */ function exec(commandLine: string[], cwd?: string, json?: boolean): any { const proc = spawnSync(commandLine[0], commandLine.slice(1), { - stdio: ['ignore', 'pipe', 'inherit'], + stdio: ['ignore', 'pipe', 'pipe'], cwd }); - if (proc.error) { - throw proc.error; + if (proc.error) { throw proc.error; } + if (proc.status !== 0) { + process.stderr.write(proc.stderr); + throw new Error(`Command exited with ${proc.status ? `status ${proc.status}` : `signal ${proc.signal}`}`); } const output = proc.stdout.toString('utf-8').trim(); + try { if (json) { if (output.length === 0) { return {}; } diff --git a/packages/@aws-cdk/assert/package.json b/packages/@aws-cdk/assert/package.json index 8c374f5da6f0b..58f77a8340971 100644 --- a/packages/@aws-cdk/assert/package.json +++ b/packages/@aws-cdk/assert/package.json @@ -5,7 +5,7 @@ "main": "lib/index.js", "types": "lib/index.d.ts", "scripts": { - "prepare": "tslint -p . && tsc && chmod +x bin/cdk-integ bin/cdk-integ-assert && pkglint", + "build": "tslint -p . && tsc && chmod +x bin/cdk-integ bin/cdk-integ-assert && pkglint", "watch": "tsc -w", "lint": "tslint -p . --force", "test": "nodeunit test/test.*.js", diff --git a/packages/@aws-cdk/athena/.gitignore b/packages/@aws-cdk/athena/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/athena/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/athena/.npmignore b/packages/@aws-cdk/athena/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/athena/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/athena/lib/index.ts b/packages/@aws-cdk/athena/lib/index.ts new file mode 100644 index 0000000000000..9a29c80834a36 --- /dev/null +++ b/packages/@aws-cdk/athena/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::Athena: +export * from '../cfn/athena'; diff --git a/packages/@aws-cdk/athena/package.json b/packages/@aws-cdk/athena/package.json new file mode 100644 index 0000000000000..20ac8cd0ff61f --- /dev/null +++ b/packages/@aws-cdk/athena/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/athena", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::Athena", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.athena", + "dotnet": "Aws.Cdk.Athena" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::Athena && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "athena" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/athena/test/test.athena.ts b/packages/@aws-cdk/athena/test/test.athena.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/athena/test/test.athena.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/autoscaling/.gitignore b/packages/@aws-cdk/autoscaling/.gitignore new file mode 100644 index 0000000000000..7a47c172b3599 --- /dev/null +++ b/packages/@aws-cdk/autoscaling/.gitignore @@ -0,0 +1,5 @@ +*.js +*.d.ts +node_modules +cfn +dist diff --git a/packages/@aws-cdk/autoscaling/.npmignore b/packages/@aws-cdk/autoscaling/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/autoscaling/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/autoscaling/lib/index.ts b/packages/@aws-cdk/autoscaling/lib/index.ts new file mode 100644 index 0000000000000..eb7e739c080c7 --- /dev/null +++ b/packages/@aws-cdk/autoscaling/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 library for AWS::AutoScaling: +export * from '../cfn/autoscaling'; diff --git a/packages/@aws-cdk/autoscaling/package.json b/packages/@aws-cdk/autoscaling/package.json new file mode 100644 index 0000000000000..5e5c103f087f9 --- /dev/null +++ b/packages/@aws-cdk/autoscaling/package.json @@ -0,0 +1,48 @@ +{ + "name": "@aws-cdk/autoscaling", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for Application AutoScaling", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.autoscaling", + "dotnet": "Aws.Cdk.AutoScaling" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::AutoScaling && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "tsc && tslint -p . --force", + "test": "nodeunit test/test.*.js", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "cloudlib", + "aws-cloudlib", + "aws-clib", + "autoscaling" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/autoscaling/test/test.autoscaling.ts b/packages/@aws-cdk/autoscaling/test/test.autoscaling.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/autoscaling/test/test.autoscaling.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/autoscaling/tsconfig.json b/packages/@aws-cdk/autoscaling/tsconfig.json new file mode 100644 index 0000000000000..5ae4f32b6ed34 --- /dev/null +++ b/packages/@aws-cdk/autoscaling/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "target": "es2018", + "lib": [ + "es2016", + "es2017.object", + "es2017.string" + ], + "module": "commonjs", + "declaration": true, + "strict": true, + "strictPropertyInitialization": true, + "noImplicitAny": true, + "strictNullChecks": true, + "noImplicitThis": true, + "alwaysStrict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "inlineSourceMap": true, + "experimentalDecorators": true, + "jsx": "react", + "jsxFactory": "jsx.create" + }, + "_generated_by_jsii_": "generated by jsii - you can delete, and ideally add to your .gitignore" +} diff --git a/packages/@aws-cdk/autoscaling/tslint.json b/packages/@aws-cdk/autoscaling/tslint.json new file mode 100644 index 0000000000000..ddd9bc8e0f437 --- /dev/null +++ b/packages/@aws-cdk/autoscaling/tslint.json @@ -0,0 +1,38 @@ +{ + "extends": "tslint:recommended", + "rules": { + "semicolon": [ + true, + "always", + "ignore-interfaces" + ], + "no-invalid-template-strings": false, + "quotemark": false, + "interface-name": false, + "max-classes-per-file": false, + "member-access": { + "severity": "warning" + }, + "interface-over-type-literal": false, + "eofline": false, + "arrow-parens": false, + "no-namespace": false, + "max-line-length": [ + true, + 150 + ], + "object-literal-sort-keys": false, + "trailing-comma": false, + "no-unused-expression": [ + true, + "allow-new" + ], + "variable-name": [ + true, + "ban-keywords", + "check-format", + "allow-leading-underscore", + "allow-pascal-case" + ] + } +} diff --git a/packages/@aws-cdk/autoscalingplans/.gitignore b/packages/@aws-cdk/autoscalingplans/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/autoscalingplans/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/autoscalingplans/.npmignore b/packages/@aws-cdk/autoscalingplans/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/autoscalingplans/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/autoscalingplans/lib/index.ts b/packages/@aws-cdk/autoscalingplans/lib/index.ts new file mode 100644 index 0000000000000..81854164913e2 --- /dev/null +++ b/packages/@aws-cdk/autoscalingplans/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::AutoScalingPlans: +export * from '../cfn/autoscalingplans'; diff --git a/packages/@aws-cdk/autoscalingplans/package.json b/packages/@aws-cdk/autoscalingplans/package.json new file mode 100644 index 0000000000000..3be762b11d100 --- /dev/null +++ b/packages/@aws-cdk/autoscalingplans/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/autoscalingplans", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::AutoScalingPlans", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.autoscalingplans", + "dotnet": "Aws.Cdk.AutoScalingPlans" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::AutoScalingPlans && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "autoscalingplans" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/autoscalingplans/test/test.autoscalingplans.ts b/packages/@aws-cdk/autoscalingplans/test/test.autoscalingplans.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/autoscalingplans/test/test.autoscalingplans.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/batch/.gitignore b/packages/@aws-cdk/batch/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/batch/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/batch/.npmignore b/packages/@aws-cdk/batch/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/batch/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/batch/lib/index.ts b/packages/@aws-cdk/batch/lib/index.ts new file mode 100644 index 0000000000000..9fbd6e696e4a3 --- /dev/null +++ b/packages/@aws-cdk/batch/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::Batch: +export * from '../cfn/batch'; diff --git a/packages/@aws-cdk/batch/package.json b/packages/@aws-cdk/batch/package.json new file mode 100644 index 0000000000000..35fb90b35bb73 --- /dev/null +++ b/packages/@aws-cdk/batch/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/batch", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::Batch", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.batch", + "dotnet": "Aws.Cdk.Batch" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::Batch && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "batch" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/batch/test/test.batch.ts b/packages/@aws-cdk/batch/test/test.batch.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/batch/test/test.batch.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/budgets/.gitignore b/packages/@aws-cdk/budgets/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/budgets/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/budgets/.npmignore b/packages/@aws-cdk/budgets/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/budgets/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/budgets/lib/index.ts b/packages/@aws-cdk/budgets/lib/index.ts new file mode 100644 index 0000000000000..fd2d6bcc01d46 --- /dev/null +++ b/packages/@aws-cdk/budgets/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::Budgets: +export * from '../cfn/budgets'; diff --git a/packages/@aws-cdk/budgets/package.json b/packages/@aws-cdk/budgets/package.json new file mode 100644 index 0000000000000..d6cb39484cb1f --- /dev/null +++ b/packages/@aws-cdk/budgets/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/budgets", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::Budgets", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.budgets", + "dotnet": "Aws.Cdk.Budgets" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::Budgets && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "budgets" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/budgets/test/test.budgets.ts b/packages/@aws-cdk/budgets/test/test.budgets.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/budgets/test/test.budgets.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/certificatemanager/.gitignore b/packages/@aws-cdk/certificatemanager/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/certificatemanager/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/certificatemanager/.npmignore b/packages/@aws-cdk/certificatemanager/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/certificatemanager/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/certificatemanager/lib/index.ts b/packages/@aws-cdk/certificatemanager/lib/index.ts new file mode 100644 index 0000000000000..cc9d9a163a300 --- /dev/null +++ b/packages/@aws-cdk/certificatemanager/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::CertificateManager: +export * from '../cfn/certificatemanager'; diff --git a/packages/@aws-cdk/certificatemanager/package.json b/packages/@aws-cdk/certificatemanager/package.json new file mode 100644 index 0000000000000..4fd27b071ab39 --- /dev/null +++ b/packages/@aws-cdk/certificatemanager/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/certificatemanager", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::CertificateManager", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.certificatemanager", + "dotnet": "Aws.Cdk.CertificateManager" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::CertificateManager && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "certificatemanager" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/certificatemanager/test/test.certificatemanager.ts b/packages/@aws-cdk/certificatemanager/test/test.certificatemanager.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/certificatemanager/test/test.certificatemanager.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/cloud9/.gitignore b/packages/@aws-cdk/cloud9/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/cloud9/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/cloud9/.npmignore b/packages/@aws-cdk/cloud9/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/cloud9/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/cloud9/lib/index.ts b/packages/@aws-cdk/cloud9/lib/index.ts new file mode 100644 index 0000000000000..c3513f9c47019 --- /dev/null +++ b/packages/@aws-cdk/cloud9/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::Cloud9: +export * from '../cfn/cloud9'; diff --git a/packages/@aws-cdk/cloud9/package.json b/packages/@aws-cdk/cloud9/package.json new file mode 100644 index 0000000000000..db7f40917feb7 --- /dev/null +++ b/packages/@aws-cdk/cloud9/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/cloud9", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::Cloud9", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.cloud9", + "dotnet": "Aws.Cdk.Cloud9" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::Cloud9 && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "cloud9" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/cloud9/test/test.cloud9.ts b/packages/@aws-cdk/cloud9/test/test.cloud9.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/cloud9/test/test.cloud9.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/cloudformation-diff/lib/diff/index.ts b/packages/@aws-cdk/cloudformation-diff/lib/diff/index.ts index 632f9567498b9..ddee58c03579f 100644 --- a/packages/@aws-cdk/cloudformation-diff/lib/diff/index.ts +++ b/packages/@aws-cdk/cloudformation-diff/lib/diff/index.ts @@ -1,4 +1,4 @@ -import { ResourceClass, resourceImplementationFor } from '@aws-cdk/resources'; +import { filteredSpecification, schema } from '@aws-cdk/cloudformation-resource-spec'; import * as types from './types'; import { diffKeyedEntities } from './util'; @@ -38,7 +38,8 @@ export function diffResource(oldValue: types.Resource, newValue: types.Resource) if (oldType !== newType) { resourceType = { oldType, newType }; } else { - const impl = resourceImplementationFor(oldType); + const typeSpec = filteredSpecification(oldType); + const impl = typeSpec.ResourceTypes[oldType]; propertyChanges = diffKeyedEntities(oldValue.Properties, newValue.Properties, (oldVal, newVal, key) => _diffProperty(oldVal, newVal, key, impl)); @@ -49,11 +50,11 @@ export function diffResource(oldValue: types.Resource, newValue: types.Resource) return new types.ResourceDifference(oldValue, newValue, { resourceType, propertyChanges, otherChanges }); - function _diffProperty(oldV: any, newV: any, key: string, resourceClass?: ResourceClass) { + function _diffProperty(oldV: any, newV: any, key: string, resourceSpec?: schema.ResourceType) { let changeImpact: types.ResourceImpact | undefined; - const spec = resourceClass && resourceClass.resourceProperties[key]; + const spec = resourceSpec && resourceSpec.Properties && resourceSpec.Properties[key]; if (spec) { - switch (spec.updateType) { + switch (spec.UpdateType) { case 'Immutable': changeImpact = types.ResourceImpact.WILL_REPLACE; break; diff --git a/packages/@aws-cdk/cloudformation-diff/package.json b/packages/@aws-cdk/cloudformation-diff/package.json index 5d5c00029e3df..8e50b830d562e 100644 --- a/packages/@aws-cdk/cloudformation-diff/package.json +++ b/packages/@aws-cdk/cloudformation-diff/package.json @@ -5,7 +5,7 @@ "main": "lib/index.js", "types": "lib/index.d.ts", "scripts": { - "prepare": "tslint -p . && tsc && pkglint", + "build": "tslint -p . && tsc && pkglint", "watch": "tsc -w", "lint": "tslint -p . --force", "test": "nodeunit test/test.*.js", @@ -20,7 +20,7 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/resources": "^0.7.3-beta", + "@aws-cdk/cloudformation-resource-spec": "^0.7.3-beta", "colors": "^1.2.1", "source-map-support": "^0.5.6" }, diff --git a/packages/@aws-cdk/cloudformation-resource-spec/package.json b/packages/@aws-cdk/cloudformation-resource-spec/package.json index a1e215c3ac1f5..5bfb9b9d25e82 100644 --- a/packages/@aws-cdk/cloudformation-resource-spec/package.json +++ b/packages/@aws-cdk/cloudformation-resource-spec/package.json @@ -4,7 +4,7 @@ "version": "0.7.3-beta", "scripts": { "update": "/bin/bash build-tools/update.sh", - "prepare": "tsc && tslint -p . && node build-tools/build", + "build": "tsc && tslint -p . && node build-tools/build", "test": "nodeunit test/test.*.js", "watch": "tsc -w", "lint": "tslint -p ." diff --git a/packages/@aws-cdk/cloudformation/.gitignore b/packages/@aws-cdk/cloudformation/.gitignore new file mode 100644 index 0000000000000..a725ff9821bb6 --- /dev/null +++ b/packages/@aws-cdk/cloudformation/.gitignore @@ -0,0 +1,8 @@ +*.js +tsconfig.json +tslint.json +*.js.map +*.d.ts +cfn +dist +lib/generated/resources.ts diff --git a/packages/@aws-cdk/cloudformation/.npmignore b/packages/@aws-cdk/cloudformation/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/cloudformation/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/cloudformation/lib/index.ts b/packages/@aws-cdk/cloudformation/lib/index.ts new file mode 100644 index 0000000000000..138144dffd6ba --- /dev/null +++ b/packages/@aws-cdk/cloudformation/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 library for AWS::CloudFormation: +export * from '../cfn/cloudformation'; diff --git a/packages/@aws-cdk/cloudformation/package.json b/packages/@aws-cdk/cloudformation/package.json new file mode 100644 index 0000000000000..a41a0e45a3da1 --- /dev/null +++ b/packages/@aws-cdk/cloudformation/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/cloudformation", + "version": "0.7.3-beta", + "description": "CDK Constructs for AWS CloudFormation", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.cloudformation", + "dotnet": "Aws.Cdk.CloudFormation" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::CloudFormation && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "tsc && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "cloudformation" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/cloudformation/test/test.cloudformation.ts b/packages/@aws-cdk/cloudformation/test/test.cloudformation.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/cloudformation/test/test.cloudformation.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/cloudfront/.gitignore b/packages/@aws-cdk/cloudfront/.gitignore index 44e182f4814d1..7c42563bade37 100644 --- a/packages/@aws-cdk/cloudfront/.gitignore +++ b/packages/@aws-cdk/cloudfront/.gitignore @@ -3,6 +3,7 @@ tsconfig.json tslint.json *.js.map +cfn dist coverage .nyc_output diff --git a/packages/@aws-cdk/cloudfront/.npmignore b/packages/@aws-cdk/cloudfront/.npmignore index 414172bb772ec..3dc266ce1c65b 100644 --- a/packages/@aws-cdk/cloudfront/.npmignore +++ b/packages/@aws-cdk/cloudfront/.npmignore @@ -1,6 +1,8 @@ # Don't include original .ts files when doing `npm pack` *.ts !*.d.ts +cfn +dist coverage .nyc_output *.tgz diff --git a/packages/@aws-cdk/cloudfront/lib/index.ts b/packages/@aws-cdk/cloudfront/lib/index.ts index 9329475c74d09..75e153b9d9fa7 100644 --- a/packages/@aws-cdk/cloudfront/lib/index.ts +++ b/packages/@aws-cdk/cloudfront/lib/index.ts @@ -1 +1,4 @@ -export * from './web_distribution'; \ No newline at end of file +export * from './web_distribution'; + +// The L1 library for AWS::CloudFront: +export * from '../cfn/cloudfront'; diff --git a/packages/@aws-cdk/cloudfront/lib/web_distribution.ts b/packages/@aws-cdk/cloudfront/lib/web_distribution.ts index 6f58b872cc865..d7f70e77bc62c 100644 --- a/packages/@aws-cdk/cloudfront/lib/web_distribution.ts +++ b/packages/@aws-cdk/cloudfront/lib/web_distribution.ts @@ -1,7 +1,7 @@ import { CertificateArn } from '@aws-cdk/acm'; import { Construct, FnConcat, } from '@aws-cdk/core'; -import { cloudfront } from '@aws-cdk/resources'; import { Bucket, BucketRef } from '@aws-cdk/s3'; +import * as cloudfront from '../cfn/cloudfront'; export enum HttpVersion { HTTP1_1 = "http1.1", diff --git a/packages/@aws-cdk/cloudfront/package.json b/packages/@aws-cdk/cloudfront/package.json index dc93eca3c95ac..8d8daf803d488 100644 --- a/packages/@aws-cdk/cloudfront/package.json +++ b/packages/@aws-cdk/cloudfront/package.json @@ -17,7 +17,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "cfn2ts --scope=AWS::CloudFront && jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "jsii && tslint -p . --force", "test": "nodeunit test/test.*.js", @@ -36,8 +36,8 @@ "license": "LicenseRef-LICENSE", "devDependencies": { "@aws-cdk/assert": "^0.7.3-beta", - "aws-cdk": "^0.7.3-beta", "aws-sdk": "^2.259.1", + "cfn2ts": "^0.7.3-beta", "pkglint": "^0.7.3-beta" }, "dependencies": { @@ -45,7 +45,7 @@ "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", "@aws-cdk/kms": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta", "@aws-cdk/s3": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/cloudtrail/.gitignore b/packages/@aws-cdk/cloudtrail/.gitignore index 4e5b425f7cc3f..bf0626570e337 100644 --- a/packages/@aws-cdk/cloudtrail/.gitignore +++ b/packages/@aws-cdk/cloudtrail/.gitignore @@ -3,4 +3,5 @@ tsconfig.json tslint.json *.js.map *.d.ts +cfn dist diff --git a/packages/@aws-cdk/cloudtrail/lib/index.ts b/packages/@aws-cdk/cloudtrail/lib/index.ts index b7bae96a2da02..efa0236f3d036 100644 --- a/packages/@aws-cdk/cloudtrail/lib/index.ts +++ b/packages/@aws-cdk/cloudtrail/lib/index.ts @@ -1,8 +1,12 @@ import { AwsAccountId, Construct, FnConcat, PolicyStatement, ServicePrincipal, Token } from '@aws-cdk/core'; import { Role } from '@aws-cdk/iam'; import { EncryptionKeyRef } from '@aws-cdk/kms'; -import { cloudtrail, logs } from '@aws-cdk/resources'; +import { LogGroupResource } from '@aws-cdk/logs'; import { Bucket, BucketEncryption } from '@aws-cdk/s3'; +import * as cloudtrail from '../cfn/cloudtrail'; + +// The L1 library for AWS::CloudTrail: +export * from '../cfn/cloudtrail'; export interface CloudTrailProps { /** @@ -140,7 +144,7 @@ export class CloudTrail extends Construct { .setCondition("StringEquals", {'s3:x-amz-acl': "bucket-owner-full-control"})); if (props.sendToCloudWatchLogs) { - const logGroup = new logs.LogGroupResource(this, "LogGroup", { + const logGroup = new LogGroupResource(this, "LogGroup", { retentionInDays: props.cloudWatchLogsRetentionTimeDays || LogRetention.OneYear }); this.cloudWatchLogsGroupArn = logGroup.ref; diff --git a/packages/@aws-cdk/cloudtrail/package.json b/packages/@aws-cdk/cloudtrail/package.json index d9cd05062c6e2..51b39b01236a9 100644 --- a/packages/@aws-cdk/cloudtrail/package.json +++ b/packages/@aws-cdk/cloudtrail/package.json @@ -17,7 +17,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "cfn2ts --scope=AWS::CloudTrail && jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "jsii && tslint -p . --force", "test": "nodeunit test/test.*.js", @@ -36,8 +36,8 @@ "license": "LicenseRef-LICENSE", "devDependencies": { "@aws-cdk/assert": "^0.7.3-beta", - "aws-cdk": "^0.7.3-beta", "aws-sdk": "^2.259.1", + "cfn2ts": "^0.7.3-beta", "colors": "^1.2.1", "pkglint": "^0.7.3-beta" }, @@ -45,7 +45,8 @@ "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", "@aws-cdk/kms": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta", + "@aws-cdk/logs": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta", "@aws-cdk/s3": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/cloudwatch/.gitignore b/packages/@aws-cdk/cloudwatch/.gitignore index 9178900e205b8..e415b9b6b0540 100644 --- a/packages/@aws-cdk/cloudwatch/.gitignore +++ b/packages/@aws-cdk/cloudwatch/.gitignore @@ -3,6 +3,7 @@ tsconfig.json tslint.json *.js.map *.d.ts +cfn dist lib/generated/resources.ts *.tgz diff --git a/packages/@aws-cdk/cloudwatch/lib/alarm.ts b/packages/@aws-cdk/cloudwatch/lib/alarm.ts index 01b104b1b5d69..41b7e5f08afa2 100644 --- a/packages/@aws-cdk/cloudwatch/lib/alarm.ts +++ b/packages/@aws-cdk/cloudwatch/lib/alarm.ts @@ -1,5 +1,5 @@ import { Arn, Construct, Token } from '@aws-cdk/core'; -import { cloudwatch } from '@aws-cdk/resources'; +import * as cloudwatch from '../cfn/cloudwatch'; import { HorizontalAnnotation } from './graph'; import { Dimension, Metric, Statistic, Unit } from './metric'; import { parseStatistic } from './util.statistic'; @@ -119,7 +119,7 @@ export class Alarm extends Construct { /** * ARN of this alarm */ - public readonly alarmArn: AlarmArn; + public readonly alarmArn: cloudwatch.AlarmArn; /** * The metric object this alarm was based on @@ -243,12 +243,6 @@ function describePeriod(seconds: number) { return seconds + ' seconds'; } -/** - * The ARN of an Alarm - */ -export class AlarmArn extends Arn { -} - /** * Interface for objects that can be the targets of CloudWatch alarm actions */ diff --git a/packages/@aws-cdk/cloudwatch/lib/dashboard.ts b/packages/@aws-cdk/cloudwatch/lib/dashboard.ts index a2e792e46726e..f6a0224b51e7c 100644 --- a/packages/@aws-cdk/cloudwatch/lib/dashboard.ts +++ b/packages/@aws-cdk/cloudwatch/lib/dashboard.ts @@ -1,5 +1,5 @@ import { Construct, Stack, Token, tokenAwareJsonify } from "@aws-cdk/core"; -import { cloudwatch } from "@aws-cdk/resources"; +import * as cloudwatch from '../cfn/cloudwatch'; import { Column, Row } from "./layout"; import { IWidget } from "./widget"; diff --git a/packages/@aws-cdk/cloudwatch/lib/index.ts b/packages/@aws-cdk/cloudwatch/lib/index.ts index 10806264b3394..019474f07c432 100644 --- a/packages/@aws-cdk/cloudwatch/lib/index.ts +++ b/packages/@aws-cdk/cloudwatch/lib/index.ts @@ -4,4 +4,7 @@ export * from './graph'; export * from './layout'; export * from './metric'; export * from './text'; -export * from './widget'; \ No newline at end of file +export * from './widget'; + +// The L1 library for AWS::CloudWatch: +export * from '../cfn/cloudwatch'; diff --git a/packages/@aws-cdk/cloudwatch/package.json b/packages/@aws-cdk/cloudwatch/package.json index 389acc7b1c8ba..1ca4b690ca8b2 100644 --- a/packages/@aws-cdk/cloudwatch/package.json +++ b/packages/@aws-cdk/cloudwatch/package.json @@ -17,7 +17,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "cfn2ts --scope=AWS::CloudWatch && jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "tsc && tslint -p . --force", "test": "nodeunit test/test.*.js && cdk-integ-assert", @@ -37,12 +37,12 @@ "license": "LicenseRef-LICENSE", "devDependencies": { "@aws-cdk/assert": "^0.7.3-beta", - "aws-cdk": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", "pkglint": "^0.7.3-beta" }, "dependencies": { "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta", - "@aws-cdk/iam": "^0.7.3-beta" + "@aws-cdk/iam": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/cloudwatch/test/integ.alarm-and-dashboard.ts b/packages/@aws-cdk/cloudwatch/test/integ.alarm-and-dashboard.ts index eef5c46614148..65a407d8d72f1 100644 --- a/packages/@aws-cdk/cloudwatch/test/integ.alarm-and-dashboard.ts +++ b/packages/@aws-cdk/cloudwatch/test/integ.alarm-and-dashboard.ts @@ -5,7 +5,7 @@ // library support. import { App, Resource, Stack } from '@aws-cdk/core'; -import { AlarmWidget, Dashboard, GraphWidget, Metric, SingleValueWidget, TextWidget } from '../lib'; +import * as cloudwatch from '../lib'; const app = new App(process.argv); @@ -13,7 +13,7 @@ const stack = new Stack(app, `aws-cdk-cloudwatch`); const queue = new Resource(stack, 'queue', { type: 'AWS::SQS::Queue' }); -const metric = new Metric({ +const metric = new cloudwatch.Metric({ namespace: 'AWS/SQS', metricName: 'ApproximateNumberOfMessagesVisible', dimensions: { QueueName: queue.getAtt('QueueName') } @@ -24,21 +24,21 @@ const alarm = metric.newAlarm(stack, 'Alarm', { evaluationPeriods: 3 }); -const dashboard = new Dashboard(stack, 'Dash'); +const dashboard = new cloudwatch.Dashboard(stack, 'Dash'); dashboard.add( - new TextWidget({ markdown: '# This is my dashboard' }), - new TextWidget({ markdown: 'you like?' }), + new cloudwatch.TextWidget({ markdown: '# This is my dashboard' }), + new cloudwatch.TextWidget({ markdown: 'you like?' }), ); -dashboard.add(new AlarmWidget({ +dashboard.add(new cloudwatch.AlarmWidget({ title: 'Messages in queue', alarm, })); -dashboard.add(new GraphWidget({ +dashboard.add(new cloudwatch.GraphWidget({ title: 'More messages in queue with alarm annotation', left: [metric], leftAnnotations: [alarm.toAnnotation()] })); -dashboard.add(new SingleValueWidget({ +dashboard.add(new cloudwatch.SingleValueWidget({ title: 'Current messages in queue', metrics: [metric] })); diff --git a/packages/@aws-cdk/codebuild/.gitignore b/packages/@aws-cdk/codebuild/.gitignore index 541a7635fd070..a725ff9821bb6 100644 --- a/packages/@aws-cdk/codebuild/.gitignore +++ b/packages/@aws-cdk/codebuild/.gitignore @@ -3,5 +3,6 @@ tsconfig.json tslint.json *.js.map *.d.ts +cfn dist lib/generated/resources.ts diff --git a/packages/@aws-cdk/codebuild/lib/artifacts.ts b/packages/@aws-cdk/codebuild/lib/artifacts.ts index ee40f30f5c7bc..5c26a6c1bae99 100644 --- a/packages/@aws-cdk/codebuild/lib/artifacts.ts +++ b/packages/@aws-cdk/codebuild/lib/artifacts.ts @@ -1,5 +1,5 @@ -import { codebuild } from '@aws-cdk/resources'; import { BucketRef } from '@aws-cdk/s3'; +import * as codebuild from '../cfn/codebuild'; import { BuildProject } from './project'; export abstract class BuildArtifacts { diff --git a/packages/@aws-cdk/codebuild/lib/index.ts b/packages/@aws-cdk/codebuild/lib/index.ts index ce977652698b4..3f6cc1afb4958 100644 --- a/packages/@aws-cdk/codebuild/lib/index.ts +++ b/packages/@aws-cdk/codebuild/lib/index.ts @@ -1,3 +1,6 @@ export * from './project'; export * from './source'; -export * from './artifacts'; \ No newline at end of file +export * from './artifacts'; + +// The L1 library for AWS::CodeBuild: +export * from '../cfn/codebuild'; diff --git a/packages/@aws-cdk/codebuild/lib/project.ts b/packages/@aws-cdk/codebuild/lib/project.ts index ff1820d296d7c..3b9903f45656c 100644 --- a/packages/@aws-cdk/codebuild/lib/project.ts +++ b/packages/@aws-cdk/codebuild/lib/project.ts @@ -3,8 +3,8 @@ import { EventRule, EventRuleProps, EventRuleTarget } from '@aws-cdk/events'; import { IEventRuleTarget } from '@aws-cdk/events'; import { Role } from '@aws-cdk/iam'; import { EncryptionKeyRef } from '@aws-cdk/kms'; -import { codebuild } from '@aws-cdk/resources'; import { BucketRef } from '@aws-cdk/s3'; +import * as codebuild from '../cfn/codebuild'; import { BuildArtifacts, CodePipelineBuildArtifacts, NoBuildArtifacts } from './artifacts'; import { BuildSource } from './source'; diff --git a/packages/@aws-cdk/codebuild/lib/source.ts b/packages/@aws-cdk/codebuild/lib/source.ts index 93683f63ffb0e..c195958394203 100644 --- a/packages/@aws-cdk/codebuild/lib/source.ts +++ b/packages/@aws-cdk/codebuild/lib/source.ts @@ -1,7 +1,7 @@ import { Repository } from '@aws-cdk/codecommit'; import { FnConcat, PolicyStatement } from '@aws-cdk/core'; -import { codebuild } from '@aws-cdk/resources'; import { BucketRef } from '@aws-cdk/s3'; +import * as codebuild from '../cfn/codebuild'; import { BuildProject } from './project'; /** diff --git a/packages/@aws-cdk/codebuild/package.json b/packages/@aws-cdk/codebuild/package.json index bade49e42ba4b..44bf6e724e3ab 100644 --- a/packages/@aws-cdk/codebuild/package.json +++ b/packages/@aws-cdk/codebuild/package.json @@ -17,7 +17,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "cfn2ts --scope=AWS::CodeBuild && jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "jsii && tslint -p . --force", "test": "nodeunit test/test.*.js && cdk-integ-assert", @@ -38,8 +38,8 @@ "devDependencies": { "@aws-cdk/assert": "^0.7.3-beta", "@aws-cdk/sns": "^0.7.3-beta", - "aws-cdk": "^0.7.3-beta", "aws-sdk": "^2.259.1", + "cfn2ts": "^0.7.3-beta", "pkglint": "^0.7.3-beta" }, "dependencies": { @@ -48,7 +48,7 @@ "@aws-cdk/events": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", "@aws-cdk/kms": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta", "@aws-cdk/s3": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/codecommit/.gitignore b/packages/@aws-cdk/codecommit/.gitignore index 026a6f10e3d47..2df4d42e01e23 100644 --- a/packages/@aws-cdk/codecommit/.gitignore +++ b/packages/@aws-cdk/codecommit/.gitignore @@ -2,6 +2,7 @@ *.js.map *.d.ts node_modules +cfn dist tsconfig.json tslint.json diff --git a/packages/@aws-cdk/codecommit/lib/codecommit.ts b/packages/@aws-cdk/codecommit/lib/codecommit.ts index 4e5772bd2b1bc..a1b8b04aeedda 100644 --- a/packages/@aws-cdk/codecommit/lib/codecommit.ts +++ b/packages/@aws-cdk/codecommit/lib/codecommit.ts @@ -1,6 +1,6 @@ import { Arn, Construct, Output } from '@aws-cdk/core'; import { EventRule, EventRuleProps, IEventRuleTarget } from '@aws-cdk/events'; -import { codecommit } from '@aws-cdk/resources'; +import * as codecommit from '../cfn/codecommit'; /** * Properties for the {@link RepositoryRef.import} method. diff --git a/packages/@aws-cdk/codecommit/lib/index.ts b/packages/@aws-cdk/codecommit/lib/index.ts index d1bae04d5dcd9..8ff610a80880b 100644 --- a/packages/@aws-cdk/codecommit/lib/index.ts +++ b/packages/@aws-cdk/codecommit/lib/index.ts @@ -1 +1,4 @@ export * from './codecommit'; + +// The L1 library for AWS::CodeCommit: +export * from '../cfn/codecommit'; diff --git a/packages/@aws-cdk/codecommit/package.json b/packages/@aws-cdk/codecommit/package.json index 06463838c3dcd..464d518d879bb 100644 --- a/packages/@aws-cdk/codecommit/package.json +++ b/packages/@aws-cdk/codecommit/package.json @@ -17,7 +17,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "cfn2ts --scope=AWS::CodeCommit && jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "jsii && tslint -p . --force", "test": "nodeunit test/test.*.js && cdk-integ-assert", @@ -38,14 +38,14 @@ "devDependencies": { "@aws-cdk/assert": "^0.7.3-beta", "@aws-cdk/sns": "^0.7.3-beta", - "aws-cdk": "^0.7.3-beta", "aws-sdk": "^2.259.1", + "cfn2ts": "^0.7.3-beta", "pkglint": "^0.7.3-beta" }, "dependencies": { "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/events": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta" + "@aws-cdk/runtime": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/codedeploy/.gitignore b/packages/@aws-cdk/codedeploy/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/codedeploy/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/codedeploy/.npmignore b/packages/@aws-cdk/codedeploy/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/codedeploy/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/codedeploy/lib/index.ts b/packages/@aws-cdk/codedeploy/lib/index.ts new file mode 100644 index 0000000000000..3462bc90e1d26 --- /dev/null +++ b/packages/@aws-cdk/codedeploy/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::CodeDeploy: +export * from '../cfn/codedeploy'; diff --git a/packages/@aws-cdk/codedeploy/package.json b/packages/@aws-cdk/codedeploy/package.json new file mode 100644 index 0000000000000..73dbe6219d0fd --- /dev/null +++ b/packages/@aws-cdk/codedeploy/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/codedeploy", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::CodeDeploy", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.codedeploy", + "dotnet": "Aws.Cdk.CodeDeploy" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::CodeDeploy && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "codedeploy" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/codedeploy/test/test.codedeploy.ts b/packages/@aws-cdk/codedeploy/test/test.codedeploy.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/codedeploy/test/test.codedeploy.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/codepipeline/.gitignore b/packages/@aws-cdk/codepipeline/.gitignore index 9178900e205b8..e415b9b6b0540 100644 --- a/packages/@aws-cdk/codepipeline/.gitignore +++ b/packages/@aws-cdk/codepipeline/.gitignore @@ -3,6 +3,7 @@ tsconfig.json tslint.json *.js.map *.d.ts +cfn dist lib/generated/resources.ts *.tgz diff --git a/packages/@aws-cdk/codepipeline/lib/actions.ts b/packages/@aws-cdk/codepipeline/lib/actions.ts index 907977dda819b..8bc317317b796 100644 --- a/packages/@aws-cdk/codepipeline/lib/actions.ts +++ b/packages/@aws-cdk/codepipeline/lib/actions.ts @@ -3,8 +3,8 @@ import { RepositoryRef } from '@aws-cdk/codecommit'; import { Construct, PolicyStatement, Secret } from '@aws-cdk/core'; import { EventRule, EventRuleProps, IEventRuleTarget } from '@aws-cdk/events'; import { LambdaRef } from '@aws-cdk/lambda'; -import { codepipeline } from '@aws-cdk/resources'; import { BucketRef } from '@aws-cdk/s3'; +import * as codepipeline from '../cfn/codepipeline'; import { Artifact } from './artifact'; import { Stage } from './stage'; import * as validation from './validation'; diff --git a/packages/@aws-cdk/codepipeline/lib/index.ts b/packages/@aws-cdk/codepipeline/lib/index.ts index 0255b14faf844..5c9ccfe4797c9 100644 --- a/packages/@aws-cdk/codepipeline/lib/index.ts +++ b/packages/@aws-cdk/codepipeline/lib/index.ts @@ -1,4 +1,7 @@ export * from './actions'; export * from './artifact'; export * from './pipeline'; -export * from './stage'; \ No newline at end of file +export * from './stage'; + +// The L1 library for AWS::CodePipeline: +export * from '../cfn/codepipeline'; diff --git a/packages/@aws-cdk/codepipeline/lib/pipeline.ts b/packages/@aws-cdk/codepipeline/lib/pipeline.ts index b43c956062d6c..97035dbf54166 100644 --- a/packages/@aws-cdk/codepipeline/lib/pipeline.ts +++ b/packages/@aws-cdk/codepipeline/lib/pipeline.ts @@ -2,9 +2,9 @@ import { Arn, Construct, PolicyStatement, RemovalPolicy, ServicePrincipal, Token import { EventRule, EventRuleProps, EventRuleTarget, IEventRuleTarget } from '@aws-cdk/events'; import * as iam from '@aws-cdk/iam'; import { Role } from '@aws-cdk/iam'; -import { codepipeline } from '@aws-cdk/resources'; import { Bucket, BucketRef } from '@aws-cdk/s3'; import { flatMap, flatten } from '@aws-cdk/util'; +import * as codepipeline from '../cfn/codepipeline'; import { Stage } from './stage'; import * as validation from './validation'; diff --git a/packages/@aws-cdk/codepipeline/lib/stage.ts b/packages/@aws-cdk/codepipeline/lib/stage.ts index d3b29938110cc..1c28b088e8297 100644 --- a/packages/@aws-cdk/codepipeline/lib/stage.ts +++ b/packages/@aws-cdk/codepipeline/lib/stage.ts @@ -1,6 +1,6 @@ import { Construct } from '@aws-cdk/core'; import { EventRule, EventRuleProps, IEventRuleTarget } from '@aws-cdk/events'; -import { codepipeline } from '@aws-cdk/resources'; +import * as codepipeline from '../cfn/codepipeline'; import { Action } from './actions'; import { Pipeline } from './pipeline'; import * as validation from './validation'; diff --git a/packages/@aws-cdk/codepipeline/package.json b/packages/@aws-cdk/codepipeline/package.json index f6e52885ff0fd..d257ce32b6427 100644 --- a/packages/@aws-cdk/codepipeline/package.json +++ b/packages/@aws-cdk/codepipeline/package.json @@ -19,7 +19,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "cfn2ts --scope=AWS::CodePipeline && jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "tsc && tslint -p . --force", "test": "nodeunit test/test.*.js && cdk-integ-assert", @@ -41,7 +41,7 @@ "devDependencies": { "@aws-cdk/assert": "^0.7.3-beta", "@aws-cdk/sns": "^0.7.3-beta", - "aws-cdk": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", "pkglint": "^0.7.3-beta" }, "dependencies": { @@ -51,7 +51,7 @@ "@aws-cdk/events": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", "@aws-cdk/lambda": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta", "@aws-cdk/s3": "^0.7.3-beta", "@aws-cdk/util": "^0.7.3-beta" } diff --git a/packages/@aws-cdk/cognito/.gitignore b/packages/@aws-cdk/cognito/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/cognito/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/cognito/.npmignore b/packages/@aws-cdk/cognito/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/cognito/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/cognito/lib/index.ts b/packages/@aws-cdk/cognito/lib/index.ts new file mode 100644 index 0000000000000..06a7a2443e421 --- /dev/null +++ b/packages/@aws-cdk/cognito/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::Cognito: +export * from '../cfn/cognito'; diff --git a/packages/@aws-cdk/cognito/package.json b/packages/@aws-cdk/cognito/package.json new file mode 100644 index 0000000000000..38584b43734c0 --- /dev/null +++ b/packages/@aws-cdk/cognito/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/cognito", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::Cognito", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.cognito", + "dotnet": "Aws.Cdk.Cognito" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::Cognito && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "cognito" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/cognito/test/test.cognito.ts b/packages/@aws-cdk/cognito/test/test.cognito.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/cognito/test/test.cognito.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/config/.gitignore b/packages/@aws-cdk/config/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/config/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/config/.npmignore b/packages/@aws-cdk/config/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/config/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/config/lib/index.ts b/packages/@aws-cdk/config/lib/index.ts new file mode 100644 index 0000000000000..ef22f02b48a4b --- /dev/null +++ b/packages/@aws-cdk/config/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::Config: +export * from '../cfn/config'; diff --git a/packages/@aws-cdk/config/package.json b/packages/@aws-cdk/config/package.json new file mode 100644 index 0000000000000..9ee5782e28891 --- /dev/null +++ b/packages/@aws-cdk/config/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/config", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::Config", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.config", + "dotnet": "Aws.Cdk.Config" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::Config && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "config" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/config/test/test.config.ts b/packages/@aws-cdk/config/test/test.config.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/config/test/test.config.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/core/package.json b/packages/@aws-cdk/core/package.json index aeb26d595c4e4..9725797e745cc 100644 --- a/packages/@aws-cdk/core/package.json +++ b/packages/@aws-cdk/core/package.json @@ -20,7 +20,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "tsc && tslint -p . --force", "test": "nyc --reporter html --reporter text nodeunit --output junit test/**/test.*.js test/test.*.js", diff --git a/packages/@aws-cdk/custom-resources/lib/resource.ts b/packages/@aws-cdk/custom-resources/lib/resource.ts index 04b3994310e69..085c54c8272fc 100644 --- a/packages/@aws-cdk/custom-resources/lib/resource.ts +++ b/packages/@aws-cdk/custom-resources/lib/resource.ts @@ -1,6 +1,6 @@ +import * as cloudformation from '@aws-cdk/cloudformation'; import { Construct } from '@aws-cdk/core'; import { LambdaRef } from '@aws-cdk/lambda'; -import { cloudformation } from '@aws-cdk/resources'; import { TopicRef } from '@aws-cdk/sns'; /** diff --git a/packages/@aws-cdk/custom-resources/lib/singletonlambda.ts b/packages/@aws-cdk/custom-resources/lib/singletonlambda.ts index b46c7b58f66cf..11cda5302aacb 100644 --- a/packages/@aws-cdk/custom-resources/lib/singletonlambda.ts +++ b/packages/@aws-cdk/custom-resources/lib/singletonlambda.ts @@ -1,7 +1,6 @@ import { Construct, Stack } from "@aws-cdk/core"; import { Role } from "@aws-cdk/iam"; -import { FunctionName, Lambda, LambdaPermission, LambdaProps, LambdaRef } from "@aws-cdk/lambda"; -import { lambda } from "@aws-cdk/resources"; +import { FunctionArn, FunctionName, Lambda, LambdaPermission, LambdaProps, LambdaRef } from "@aws-cdk/lambda"; /** * Properties for a newly created singleton Lambda @@ -24,7 +23,7 @@ export interface SingletonLambdaProps extends LambdaProps { */ export class SingletonLambda extends LambdaRef { public functionName: FunctionName; - public functionArn: lambda.FunctionArn; + public functionArn: FunctionArn; public role?: Role | undefined; protected canCreatePermissions: boolean; private lambdaFunction: LambdaRef; diff --git a/packages/@aws-cdk/custom-resources/package.json b/packages/@aws-cdk/custom-resources/package.json index 1540fb2687f58..d9f63adff9f57 100644 --- a/packages/@aws-cdk/custom-resources/package.json +++ b/packages/@aws-cdk/custom-resources/package.json @@ -17,7 +17,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "tsc && tslint -p . --force", "test": "nodeunit test/test.*.js && cdk-integ-assert", @@ -37,14 +37,14 @@ "license": "LicenseRef-LICENSE", "devDependencies": { "@aws-cdk/assert": "^0.7.3-beta", - "aws-cdk": "^0.7.3-beta", "pkglint": "^0.7.3-beta" }, "dependencies": { + "@aws-cdk/cloudformation": "^0.7.3-beta", "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", "@aws-cdk/lambda": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta", "@aws-cdk/sns": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/cx-api/package.json b/packages/@aws-cdk/cx-api/package.json index bf9087eb5ac25..0bea4e5664263 100644 --- a/packages/@aws-cdk/cx-api/package.json +++ b/packages/@aws-cdk/cx-api/package.json @@ -12,7 +12,7 @@ } }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "tsc && tslint -p . --force", "test": "echo ok", diff --git a/packages/@aws-cdk/datapipeline/.gitignore b/packages/@aws-cdk/datapipeline/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/datapipeline/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/datapipeline/.npmignore b/packages/@aws-cdk/datapipeline/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/datapipeline/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/datapipeline/lib/index.ts b/packages/@aws-cdk/datapipeline/lib/index.ts new file mode 100644 index 0000000000000..d1b97f0108366 --- /dev/null +++ b/packages/@aws-cdk/datapipeline/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::DataPipeline: +export * from '../cfn/datapipeline'; diff --git a/packages/@aws-cdk/datapipeline/package.json b/packages/@aws-cdk/datapipeline/package.json new file mode 100644 index 0000000000000..ea972c3eeebe8 --- /dev/null +++ b/packages/@aws-cdk/datapipeline/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/datapipeline", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::DataPipeline", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.datapipeline", + "dotnet": "Aws.Cdk.DataPipeline" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::DataPipeline && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "datapipeline" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/datapipeline/test/test.datapipeline.ts b/packages/@aws-cdk/datapipeline/test/test.datapipeline.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/datapipeline/test/test.datapipeline.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/dax/.gitignore b/packages/@aws-cdk/dax/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/dax/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/dax/.npmignore b/packages/@aws-cdk/dax/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/dax/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/dax/lib/index.ts b/packages/@aws-cdk/dax/lib/index.ts new file mode 100644 index 0000000000000..75afc83d0f018 --- /dev/null +++ b/packages/@aws-cdk/dax/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::DAX: +export * from '../cfn/dax'; diff --git a/packages/@aws-cdk/dax/package.json b/packages/@aws-cdk/dax/package.json new file mode 100644 index 0000000000000..9e936b4c80876 --- /dev/null +++ b/packages/@aws-cdk/dax/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/dax", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::DAX", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.dax", + "dotnet": "Aws.Cdk.DAX" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::DAX && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "dax" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/dax/test/test.dax.ts b/packages/@aws-cdk/dax/test/test.dax.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/dax/test/test.dax.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/directoryservice/.gitignore b/packages/@aws-cdk/directoryservice/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/directoryservice/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/directoryservice/.npmignore b/packages/@aws-cdk/directoryservice/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/directoryservice/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/directoryservice/lib/index.ts b/packages/@aws-cdk/directoryservice/lib/index.ts new file mode 100644 index 0000000000000..efcd730dd8bab --- /dev/null +++ b/packages/@aws-cdk/directoryservice/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::DirectoryService: +export * from '../cfn/directoryservice'; diff --git a/packages/@aws-cdk/directoryservice/package.json b/packages/@aws-cdk/directoryservice/package.json new file mode 100644 index 0000000000000..d471e5a313188 --- /dev/null +++ b/packages/@aws-cdk/directoryservice/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/directoryservice", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::DirectoryService", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.directoryservice", + "dotnet": "Aws.Cdk.DirectoryService" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::DirectoryService && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "directoryservice" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/directoryservice/test/test.directoryservice.ts b/packages/@aws-cdk/directoryservice/test/test.directoryservice.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/directoryservice/test/test.directoryservice.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/dms/.gitignore b/packages/@aws-cdk/dms/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/dms/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/dms/.npmignore b/packages/@aws-cdk/dms/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/dms/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/dms/lib/index.ts b/packages/@aws-cdk/dms/lib/index.ts new file mode 100644 index 0000000000000..5f56821316dac --- /dev/null +++ b/packages/@aws-cdk/dms/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::DMS: +export * from '../cfn/dms'; diff --git a/packages/@aws-cdk/dms/package.json b/packages/@aws-cdk/dms/package.json new file mode 100644 index 0000000000000..6697ffd6d14ca --- /dev/null +++ b/packages/@aws-cdk/dms/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/dms", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::DMS", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.dms", + "dotnet": "Aws.Cdk.DMS" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::DMS && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "dms" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/dms/test/test.dms.ts b/packages/@aws-cdk/dms/test/test.dms.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/dms/test/test.dms.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/dynamodb/.gitignore b/packages/@aws-cdk/dynamodb/.gitignore index 8ad82bc245b78..8634a5e37938c 100644 --- a/packages/@aws-cdk/dynamodb/.gitignore +++ b/packages/@aws-cdk/dynamodb/.gitignore @@ -2,6 +2,7 @@ *.js.map *.d.ts node_modules +cfn dist tsconfig.json tslint.json diff --git a/packages/@aws-cdk/dynamodb/lib/index.ts b/packages/@aws-cdk/dynamodb/lib/index.ts index 8632baaa379cd..a4397d5dc6416 100644 --- a/packages/@aws-cdk/dynamodb/lib/index.ts +++ b/packages/@aws-cdk/dynamodb/lib/index.ts @@ -1,5 +1,8 @@ import { Construct, Token } from '@aws-cdk/core'; -import { dynamodb } from '@aws-cdk/resources'; +import * as dynamodb from '../cfn/dynamodb'; + +// The L1 library for AWS::DynamoDB: +export * from '../cfn/dynamodb'; const HASH_KEY_TYPE = 'HASH'; const RANGE_KEY_TYPE = 'RANGE'; diff --git a/packages/@aws-cdk/dynamodb/package.json b/packages/@aws-cdk/dynamodb/package.json index 87c09cf7b16fb..fd054c4b3df3f 100644 --- a/packages/@aws-cdk/dynamodb/package.json +++ b/packages/@aws-cdk/dynamodb/package.json @@ -17,7 +17,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "cfn2ts --scope=AWS::DynamoDB && jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "jsii && tslint -p . --force", "test": "nodeunit test/test.*.js && cdk-integ-assert", @@ -37,12 +37,12 @@ "license": "LicenseRef-LICENSE", "devDependencies": { "@aws-cdk/assert": "^0.7.3-beta", - "aws-cdk": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", "pkglint": "^0.7.3-beta" }, "dependencies": { "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta" + "@aws-cdk/runtime": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/ec2/.gitignore b/packages/@aws-cdk/ec2/.gitignore index 00eafcfae55bb..32fa52d170b5c 100644 --- a/packages/@aws-cdk/ec2/.gitignore +++ b/packages/@aws-cdk/ec2/.gitignore @@ -3,5 +3,6 @@ tsconfig.json tslint.json *.js.map *.d.ts +cfn dist test/cdk.json diff --git a/packages/@aws-cdk/ec2/lib/fleet.ts b/packages/@aws-cdk/ec2/lib/fleet.ts index e66bbdc2138ee..ebeef5d049503 100644 --- a/packages/@aws-cdk/ec2/lib/fleet.ts +++ b/packages/@aws-cdk/ec2/lib/fleet.ts @@ -1,6 +1,7 @@ +import * as autoscaling from '@aws-cdk/autoscaling'; import { Construct, FnBase64, PolicyStatement, ServicePrincipal, Token } from '@aws-cdk/core'; -import { Role } from '@aws-cdk/iam'; -import { autoscaling, iam, sns } from '@aws-cdk/resources'; +import * as iam from '@aws-cdk/iam'; +import * as sns from '@aws-cdk/sns'; import { AllConnections, AnyIPv4, IConnectionPeer } from './connection'; import { Connections } from './connections'; import { InstanceType } from './instance-types'; @@ -98,7 +99,7 @@ export class Fleet extends Construct implements IClassicLoadBalancerTarget { /** * The IAM role assumed by instances of this fleet. */ - public readonly role: Role; + public readonly role: iam.Role; private readonly userDataLines = new Array(); private readonly autoScalingGroup: autoscaling.AutoScalingGroupResource; @@ -116,7 +117,7 @@ export class Fleet extends Construct implements IClassicLoadBalancerTarget { this.connections.allowTo(new AnyIPv4(), new AllConnections(), 'Outbound traffic allowed by default'); } - this.role = new Role(this, 'InstanceRole', { + this.role = new iam.Role(this, 'InstanceRole', { assumedBy: new ServicePrincipal('ec2.amazonaws.com') }); diff --git a/packages/@aws-cdk/ec2/lib/index.ts b/packages/@aws-cdk/ec2/lib/index.ts index efda2fcff5187..45360591e9aee 100644 --- a/packages/@aws-cdk/ec2/lib/index.ts +++ b/packages/@aws-cdk/ec2/lib/index.ts @@ -7,3 +7,6 @@ export * from './machine-image'; export * from './security-group'; export * from './vpc'; export * from './vpc-ref'; + +// The L1 library for AWS::EC2: +export * from '../cfn/ec2'; diff --git a/packages/@aws-cdk/ec2/lib/load-balancer.ts b/packages/@aws-cdk/ec2/lib/load-balancer.ts index 41495185d131a..bcca8412c99dc 100644 --- a/packages/@aws-cdk/ec2/lib/load-balancer.ts +++ b/packages/@aws-cdk/ec2/lib/load-balancer.ts @@ -1,5 +1,5 @@ import { Arn, Construct, Token } from '@aws-cdk/core'; -import { elasticloadbalancing } from '@aws-cdk/resources'; +import * as elasticloadbalancing from '@aws-cdk/elasticloadbalancing'; import { AnyIPv4, IConnectionPeer, IPortRange, TcpPort } from './connection'; import { Connections, DefaultConnections, IConnectable, IDefaultConnectable } from './connections'; import { ISecurityGroup, SecurityGroup } from './security-group'; diff --git a/packages/@aws-cdk/ec2/lib/security-group.ts b/packages/@aws-cdk/ec2/lib/security-group.ts index 0e3ab893267c5..c0d8104bd06c2 100644 --- a/packages/@aws-cdk/ec2/lib/security-group.ts +++ b/packages/@aws-cdk/ec2/lib/security-group.ts @@ -1,5 +1,5 @@ import { Construct, Token } from '@aws-cdk/core'; -import { ec2 } from '@aws-cdk/resources'; +import * as ec2 from '../cfn/ec2'; import { IConnectionPeer, IPortRange } from './connection'; import { slugify } from './util'; import { VpcNetworkRef } from './vpc-ref'; diff --git a/packages/@aws-cdk/ec2/lib/vpc.ts b/packages/@aws-cdk/ec2/lib/vpc.ts index 4bd60087aa0de..ab3a1f4160e24 100644 --- a/packages/@aws-cdk/ec2/lib/vpc.ts +++ b/packages/@aws-cdk/ec2/lib/vpc.ts @@ -1,5 +1,5 @@ import { AvailabilityZoneProvider, Construct, Tag, Token } from '@aws-cdk/core'; -import { ec2 } from '@aws-cdk/resources'; +import * as ec2 from '../cfn/ec2'; import { NetworkUtils } from './network-util'; import { VpcNetworkId, VpcNetworkRef, VpcSubnetId, VpcSubnetRef } from './vpc-ref'; /** diff --git a/packages/@aws-cdk/ec2/package.json b/packages/@aws-cdk/ec2/package.json index 6d09cec522aeb..20224b0005dbd 100644 --- a/packages/@aws-cdk/ec2/package.json +++ b/packages/@aws-cdk/ec2/package.json @@ -19,7 +19,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "cfn2ts --scope=AWS::EC2 && jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "tsc && tslint -p . --force", "test": "nodeunit test/test.*.js && cdk-integ-assert", @@ -39,13 +39,16 @@ "license": "LicenseRef-LICENSE", "devDependencies": { "@aws-cdk/assert": "^0.7.3-beta", - "aws-cdk": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", "pkglint": "^0.7.3-beta" }, "dependencies": { + "@aws-cdk/autoscaling": "^0.7.3-beta", "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/elasticloadbalancing": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta", + "@aws-cdk/sns": "^0.7.3-beta", "@aws-cdk/util": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/ecr/.gitignore b/packages/@aws-cdk/ecr/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/ecr/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/ecr/.npmignore b/packages/@aws-cdk/ecr/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/ecr/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/ecr/lib/index.ts b/packages/@aws-cdk/ecr/lib/index.ts new file mode 100644 index 0000000000000..a11477710e789 --- /dev/null +++ b/packages/@aws-cdk/ecr/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::ECR: +export * from '../cfn/ecr'; diff --git a/packages/@aws-cdk/ecr/package.json b/packages/@aws-cdk/ecr/package.json new file mode 100644 index 0000000000000..e6257b52098da --- /dev/null +++ b/packages/@aws-cdk/ecr/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/ecr", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::ECR", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.ecr", + "dotnet": "Aws.Cdk.ECR" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::ECR && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "ecr" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/ecr/test/test.ecr.ts b/packages/@aws-cdk/ecr/test/test.ecr.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/ecr/test/test.ecr.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/ecs/.gitignore b/packages/@aws-cdk/ecs/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/ecs/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/ecs/.npmignore b/packages/@aws-cdk/ecs/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/ecs/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/ecs/lib/index.ts b/packages/@aws-cdk/ecs/lib/index.ts new file mode 100644 index 0000000000000..f07e4d281ab64 --- /dev/null +++ b/packages/@aws-cdk/ecs/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::ECS: +export * from '../cfn/ecs'; diff --git a/packages/@aws-cdk/ecs/package.json b/packages/@aws-cdk/ecs/package.json new file mode 100644 index 0000000000000..ad2e5a13f1bb8 --- /dev/null +++ b/packages/@aws-cdk/ecs/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/ecs", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::ECS", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.ecs", + "dotnet": "Aws.Cdk.ECS" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::ECS && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "ecs" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/ecs/test/test.ecs.ts b/packages/@aws-cdk/ecs/test/test.ecs.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/ecs/test/test.ecs.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/efs/.gitignore b/packages/@aws-cdk/efs/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/efs/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/efs/.npmignore b/packages/@aws-cdk/efs/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/efs/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/efs/lib/index.ts b/packages/@aws-cdk/efs/lib/index.ts new file mode 100644 index 0000000000000..74142ed375ab2 --- /dev/null +++ b/packages/@aws-cdk/efs/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::EFS: +export * from '../cfn/efs'; diff --git a/packages/@aws-cdk/efs/package.json b/packages/@aws-cdk/efs/package.json new file mode 100644 index 0000000000000..1878c76fdab3f --- /dev/null +++ b/packages/@aws-cdk/efs/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/efs", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::EFS", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.efs", + "dotnet": "Aws.Cdk.EFS" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::EFS && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "efs" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/efs/test/test.efs.ts b/packages/@aws-cdk/efs/test/test.efs.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/efs/test/test.efs.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/eks/.gitignore b/packages/@aws-cdk/eks/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/eks/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/eks/.npmignore b/packages/@aws-cdk/eks/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/eks/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/eks/lib/index.ts b/packages/@aws-cdk/eks/lib/index.ts new file mode 100644 index 0000000000000..2f83ec98a4654 --- /dev/null +++ b/packages/@aws-cdk/eks/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::EKS: +export * from '../cfn/eks'; diff --git a/packages/@aws-cdk/eks/package.json b/packages/@aws-cdk/eks/package.json new file mode 100644 index 0000000000000..90917b1dcf333 --- /dev/null +++ b/packages/@aws-cdk/eks/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/eks", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::EKS", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.eks", + "dotnet": "Aws.Cdk.EKS" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::EKS && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "eks" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/eks/test/test.eks.ts b/packages/@aws-cdk/eks/test/test.eks.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/eks/test/test.eks.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/elasticache/.gitignore b/packages/@aws-cdk/elasticache/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/elasticache/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/elasticache/.npmignore b/packages/@aws-cdk/elasticache/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/elasticache/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/elasticache/lib/index.ts b/packages/@aws-cdk/elasticache/lib/index.ts new file mode 100644 index 0000000000000..34fc2399d73fa --- /dev/null +++ b/packages/@aws-cdk/elasticache/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::ElastiCache: +export * from '../cfn/elasticache'; diff --git a/packages/@aws-cdk/elasticache/package.json b/packages/@aws-cdk/elasticache/package.json new file mode 100644 index 0000000000000..16d208bcbfd0f --- /dev/null +++ b/packages/@aws-cdk/elasticache/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/elasticache", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::ElastiCache", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.elasticache", + "dotnet": "Aws.Cdk.ElastiCache" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::ElastiCache && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "elasticache" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/elasticache/test/test.elasticache.ts b/packages/@aws-cdk/elasticache/test/test.elasticache.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/elasticache/test/test.elasticache.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/elasticbeanstalk/.gitignore b/packages/@aws-cdk/elasticbeanstalk/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/elasticbeanstalk/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/elasticbeanstalk/.npmignore b/packages/@aws-cdk/elasticbeanstalk/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/elasticbeanstalk/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/elasticbeanstalk/lib/index.ts b/packages/@aws-cdk/elasticbeanstalk/lib/index.ts new file mode 100644 index 0000000000000..71213bfcfa6de --- /dev/null +++ b/packages/@aws-cdk/elasticbeanstalk/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::ElasticBeanstalk: +export * from '../cfn/elasticbeanstalk'; diff --git a/packages/@aws-cdk/elasticbeanstalk/package.json b/packages/@aws-cdk/elasticbeanstalk/package.json new file mode 100644 index 0000000000000..9e2ba2faeec5f --- /dev/null +++ b/packages/@aws-cdk/elasticbeanstalk/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/elasticbeanstalk", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::ElasticBeanstalk", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.elasticbeanstalk", + "dotnet": "Aws.Cdk.ElasticBeanstalk" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::ElasticBeanstalk && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "elasticbeanstalk" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/elasticbeanstalk/test/test.elasticbeanstalk.ts b/packages/@aws-cdk/elasticbeanstalk/test/test.elasticbeanstalk.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/elasticbeanstalk/test/test.elasticbeanstalk.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/elasticloadbalancing/.gitignore b/packages/@aws-cdk/elasticloadbalancing/.gitignore new file mode 100644 index 0000000000000..a725ff9821bb6 --- /dev/null +++ b/packages/@aws-cdk/elasticloadbalancing/.gitignore @@ -0,0 +1,8 @@ +*.js +tsconfig.json +tslint.json +*.js.map +*.d.ts +cfn +dist +lib/generated/resources.ts diff --git a/packages/@aws-cdk/elasticloadbalancing/.npmignore b/packages/@aws-cdk/elasticloadbalancing/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/elasticloadbalancing/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/elasticloadbalancing/lib/index.ts b/packages/@aws-cdk/elasticloadbalancing/lib/index.ts new file mode 100644 index 0000000000000..3e712965b5fbe --- /dev/null +++ b/packages/@aws-cdk/elasticloadbalancing/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 library for AWS::ElasticLoadBalancing: +export * from '../cfn/elasticloadbalancing'; diff --git a/packages/@aws-cdk/elasticloadbalancing/package.json b/packages/@aws-cdk/elasticloadbalancing/package.json new file mode 100644 index 0000000000000..06cbc4f75fa8e --- /dev/null +++ b/packages/@aws-cdk/elasticloadbalancing/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/elasticloadbalancing", + "version": "0.7.3-beta", + "description": "CDK Constructs for AWS ElasticLoadBalancing", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.elasticloadbalancing", + "dotnet": "Aws.Cdk.ElasticLoadBalancing" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::ElasticLoadBalancing && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "tsc && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "elasticloadbalancing" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/elasticloadbalancing/test/test.elasticloadbalancing.ts b/packages/@aws-cdk/elasticloadbalancing/test/test.elasticloadbalancing.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/elasticloadbalancing/test/test.elasticloadbalancing.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/elasticloadbalancingv2/.gitignore b/packages/@aws-cdk/elasticloadbalancingv2/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/elasticloadbalancingv2/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/elasticloadbalancingv2/.npmignore b/packages/@aws-cdk/elasticloadbalancingv2/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/elasticloadbalancingv2/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/elasticloadbalancingv2/lib/index.ts b/packages/@aws-cdk/elasticloadbalancingv2/lib/index.ts new file mode 100644 index 0000000000000..6f16d7fea7e15 --- /dev/null +++ b/packages/@aws-cdk/elasticloadbalancingv2/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::ElasticLoadBalancingV2: +export * from '../cfn/elasticloadbalancingv2'; diff --git a/packages/@aws-cdk/elasticloadbalancingv2/package.json b/packages/@aws-cdk/elasticloadbalancingv2/package.json new file mode 100644 index 0000000000000..e4a8a352cb176 --- /dev/null +++ b/packages/@aws-cdk/elasticloadbalancingv2/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/elasticloadbalancingv2", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::ElasticLoadBalancingV2", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.elasticloadbalancingv2", + "dotnet": "Aws.Cdk.ElasticLoadBalancingV2" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::ElasticLoadBalancingV2 && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "elasticloadbalancingv2" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/elasticloadbalancingv2/test/test.elasticloadbalancingv2.ts b/packages/@aws-cdk/elasticloadbalancingv2/test/test.elasticloadbalancingv2.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/elasticloadbalancingv2/test/test.elasticloadbalancingv2.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/elasticsearch/.gitignore b/packages/@aws-cdk/elasticsearch/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/elasticsearch/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/elasticsearch/.npmignore b/packages/@aws-cdk/elasticsearch/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/elasticsearch/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/elasticsearch/lib/index.ts b/packages/@aws-cdk/elasticsearch/lib/index.ts new file mode 100644 index 0000000000000..988157e6aa36f --- /dev/null +++ b/packages/@aws-cdk/elasticsearch/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::Elasticsearch: +export * from '../cfn/elasticsearch'; diff --git a/packages/@aws-cdk/elasticsearch/package.json b/packages/@aws-cdk/elasticsearch/package.json new file mode 100644 index 0000000000000..32813d63ecd8d --- /dev/null +++ b/packages/@aws-cdk/elasticsearch/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/elasticsearch", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::Elasticsearch", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.elasticsearch", + "dotnet": "Aws.Cdk.Elasticsearch" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::Elasticsearch && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "elasticsearch" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/elasticsearch/test/test.elasticsearch.ts b/packages/@aws-cdk/elasticsearch/test/test.elasticsearch.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/elasticsearch/test/test.elasticsearch.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/emr/.gitignore b/packages/@aws-cdk/emr/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/emr/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/emr/.npmignore b/packages/@aws-cdk/emr/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/emr/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/emr/lib/index.ts b/packages/@aws-cdk/emr/lib/index.ts new file mode 100644 index 0000000000000..51e0160945820 --- /dev/null +++ b/packages/@aws-cdk/emr/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::EMR: +export * from '../cfn/emr'; diff --git a/packages/@aws-cdk/emr/package.json b/packages/@aws-cdk/emr/package.json new file mode 100644 index 0000000000000..097cd90064fed --- /dev/null +++ b/packages/@aws-cdk/emr/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/emr", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::EMR", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.emr", + "dotnet": "Aws.Cdk.EMR" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::EMR && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "emr" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/emr/test/test.emr.ts b/packages/@aws-cdk/emr/test/test.emr.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/emr/test/test.emr.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/events/.gitignore b/packages/@aws-cdk/events/.gitignore index 541a7635fd070..a725ff9821bb6 100644 --- a/packages/@aws-cdk/events/.gitignore +++ b/packages/@aws-cdk/events/.gitignore @@ -3,5 +3,6 @@ tsconfig.json tslint.json *.js.map *.d.ts +cfn dist lib/generated/resources.ts diff --git a/packages/@aws-cdk/events/lib/index.ts b/packages/@aws-cdk/events/lib/index.ts index 1995e46464990..fb0ab8bb9cdfe 100644 --- a/packages/@aws-cdk/events/lib/index.ts +++ b/packages/@aws-cdk/events/lib/index.ts @@ -2,4 +2,7 @@ export * from './rule'; export * from './rule-ref'; export * from './target'; export * from './event-pattern'; -export * from './input-options'; \ No newline at end of file +export * from './input-options'; + +// The L1 library for AWS::Events: +export * from '../cfn/events'; diff --git a/packages/@aws-cdk/events/lib/rule-ref.ts b/packages/@aws-cdk/events/lib/rule-ref.ts index 9bb5dbf61a58c..113e6a142cea1 100644 --- a/packages/@aws-cdk/events/lib/rule-ref.ts +++ b/packages/@aws-cdk/events/lib/rule-ref.ts @@ -1,5 +1,5 @@ import { Construct, Output } from '@aws-cdk/core'; -import { events } from '@aws-cdk/resources'; +import * as events from '../cfn/events'; export interface EventRuleRefProps { /** diff --git a/packages/@aws-cdk/events/lib/rule.ts b/packages/@aws-cdk/events/lib/rule.ts index d597d74edca81..2ab8388ba69d4 100644 --- a/packages/@aws-cdk/events/lib/rule.ts +++ b/packages/@aws-cdk/events/lib/rule.ts @@ -1,5 +1,5 @@ import { Construct, FnConcat, Token } from '@aws-cdk/core'; -import { events } from '@aws-cdk/resources'; +import * as events from '../cfn/events'; import { EventPattern } from './event-pattern'; import { TargetInputTemplate } from './input-options'; import { EventRuleRef } from './rule-ref'; diff --git a/packages/@aws-cdk/events/lib/target.ts b/packages/@aws-cdk/events/lib/target.ts index 4b417088e71d7..875d189c1d91b 100644 --- a/packages/@aws-cdk/events/lib/target.ts +++ b/packages/@aws-cdk/events/lib/target.ts @@ -1,5 +1,6 @@ import { Arn } from '@aws-cdk/core'; -import { events, iam } from '@aws-cdk/resources'; +import * as iam from '@aws-cdk/iam'; +import * as events from '../cfn/events'; export interface EventRuleTarget { /** diff --git a/packages/@aws-cdk/events/package.json b/packages/@aws-cdk/events/package.json index 9b8619d3931c6..ce86315cfcc57 100644 --- a/packages/@aws-cdk/events/package.json +++ b/packages/@aws-cdk/events/package.json @@ -19,7 +19,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "cfn2ts --scope=AWS::Events && jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "tsc && tslint -p . --force", "test": "nodeunit test/test.*.js && cdk-integ-assert", @@ -40,13 +40,13 @@ "license": "LicenseRef-LICENSE", "devDependencies": { "@aws-cdk/assert": "^0.7.3-beta", - "aws-cdk": "^0.7.3-beta", - "pkglint": "^0.7.3-beta" + "pkglint": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta" }, "dependencies": { "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta", "@aws-cdk/util": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/events/test/test.rule.ts b/packages/@aws-cdk/events/test/test.rule.ts index 3bfbc76481220..2f1c01b0b33ff 100644 --- a/packages/@aws-cdk/events/test/test.rule.ts +++ b/packages/@aws-cdk/events/test/test.rule.ts @@ -1,6 +1,6 @@ import { expect } from '@aws-cdk/assert'; import { App, Arn, FnConcat, FnJoin, Stack } from '@aws-cdk/core'; -import { iam } from '@aws-cdk/resources'; +import * as iam from '@aws-cdk/iam'; import { Test } from 'nodeunit'; import { IEventRuleTarget } from '../lib'; import { EventRule } from '../lib/rule'; diff --git a/packages/@aws-cdk/gamelift/.gitignore b/packages/@aws-cdk/gamelift/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/gamelift/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/gamelift/.npmignore b/packages/@aws-cdk/gamelift/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/gamelift/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/gamelift/lib/index.ts b/packages/@aws-cdk/gamelift/lib/index.ts new file mode 100644 index 0000000000000..1bc8cefec9d3f --- /dev/null +++ b/packages/@aws-cdk/gamelift/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::GameLift: +export * from '../cfn/gamelift'; diff --git a/packages/@aws-cdk/gamelift/package.json b/packages/@aws-cdk/gamelift/package.json new file mode 100644 index 0000000000000..98ebcbda7dbe0 --- /dev/null +++ b/packages/@aws-cdk/gamelift/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/gamelift", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::GameLift", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.gamelift", + "dotnet": "Aws.Cdk.GameLift" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::GameLift && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "gamelift" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/gamelift/test/test.gamelift.ts b/packages/@aws-cdk/gamelift/test/test.gamelift.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/gamelift/test/test.gamelift.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/glue/.gitignore b/packages/@aws-cdk/glue/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/glue/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/glue/.npmignore b/packages/@aws-cdk/glue/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/glue/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/glue/lib/index.ts b/packages/@aws-cdk/glue/lib/index.ts new file mode 100644 index 0000000000000..c60f9a65d725a --- /dev/null +++ b/packages/@aws-cdk/glue/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::Glue: +export * from '../cfn/glue'; diff --git a/packages/@aws-cdk/glue/package.json b/packages/@aws-cdk/glue/package.json new file mode 100644 index 0000000000000..3b4093c9fbb5c --- /dev/null +++ b/packages/@aws-cdk/glue/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/glue", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::Glue", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.glue", + "dotnet": "Aws.Cdk.Glue" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::Glue && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "glue" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/glue/test/test.glue.ts b/packages/@aws-cdk/glue/test/test.glue.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/glue/test/test.glue.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/guardduty/.gitignore b/packages/@aws-cdk/guardduty/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/guardduty/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/guardduty/.npmignore b/packages/@aws-cdk/guardduty/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/guardduty/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/guardduty/lib/index.ts b/packages/@aws-cdk/guardduty/lib/index.ts new file mode 100644 index 0000000000000..e187b1fb5d4cf --- /dev/null +++ b/packages/@aws-cdk/guardduty/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::GuardDuty: +export * from '../cfn/guardduty'; diff --git a/packages/@aws-cdk/guardduty/package.json b/packages/@aws-cdk/guardduty/package.json new file mode 100644 index 0000000000000..93a7e8689df95 --- /dev/null +++ b/packages/@aws-cdk/guardduty/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/guardduty", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::GuardDuty", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.guardduty", + "dotnet": "Aws.Cdk.GuardDuty" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::GuardDuty && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "guardduty" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/guardduty/test/test.guardduty.ts b/packages/@aws-cdk/guardduty/test/test.guardduty.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/guardduty/test/test.guardduty.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/iam/.gitignore b/packages/@aws-cdk/iam/.gitignore index 4e5b425f7cc3f..bf0626570e337 100644 --- a/packages/@aws-cdk/iam/.gitignore +++ b/packages/@aws-cdk/iam/.gitignore @@ -3,4 +3,5 @@ tsconfig.json tslint.json *.js.map *.d.ts +cfn dist diff --git a/packages/@aws-cdk/iam/lib/group.ts b/packages/@aws-cdk/iam/lib/group.ts index ccb5bffcbc5c0..c080a7dccf7af 100644 --- a/packages/@aws-cdk/iam/lib/group.ts +++ b/packages/@aws-cdk/iam/lib/group.ts @@ -1,5 +1,5 @@ import { ArnPrincipal, Construct, PolicyPrincipal, PolicyStatement, Token } from '@aws-cdk/core'; -import { iam } from '@aws-cdk/resources'; +import * as iam from '../cfn/iam'; import { IIdentityResource, Policy } from './policy'; import { User } from './user'; import { AttachedPolicies, undefinedIfEmpty } from './util'; diff --git a/packages/@aws-cdk/iam/lib/index.ts b/packages/@aws-cdk/iam/lib/index.ts index 47c849e1ad656..fae10d4c587e0 100644 --- a/packages/@aws-cdk/iam/lib/index.ts +++ b/packages/@aws-cdk/iam/lib/index.ts @@ -2,3 +2,6 @@ export * from './role'; export * from './policy'; export * from './user'; export * from './group'; + +// The L1 library for AWS::IAM: +export * from '../cfn/iam'; diff --git a/packages/@aws-cdk/iam/lib/policy.ts b/packages/@aws-cdk/iam/lib/policy.ts index d54b5ecff7a96..4c0740fc4f624 100644 --- a/packages/@aws-cdk/iam/lib/policy.ts +++ b/packages/@aws-cdk/iam/lib/policy.ts @@ -1,5 +1,5 @@ import { Construct, IDependable, PolicyDocument, PolicyPrincipal, PolicyStatement, Token } from '@aws-cdk/core'; -import { iam } from '@aws-cdk/resources'; +import * as iam from '../cfn/iam'; import { Group } from './group'; import { Role } from './role'; import { User } from './user'; diff --git a/packages/@aws-cdk/iam/lib/role.ts b/packages/@aws-cdk/iam/lib/role.ts index f34d5128f6411..356f2694563b9 100644 --- a/packages/@aws-cdk/iam/lib/role.ts +++ b/packages/@aws-cdk/iam/lib/role.ts @@ -1,5 +1,5 @@ import { ArnPrincipal, Construct, IDependable, PolicyDocument, PolicyPrincipal, PolicyStatement, Token } from '@aws-cdk/core'; -import { iam } from '@aws-cdk/resources'; +import * as iam from '../cfn/iam'; import { IIdentityResource, Policy } from './policy'; import { AttachedPolicies, undefinedIfEmpty } from './util'; diff --git a/packages/@aws-cdk/iam/lib/user.ts b/packages/@aws-cdk/iam/lib/user.ts index 0172312c96b9f..a2e11c3a90f82 100644 --- a/packages/@aws-cdk/iam/lib/user.ts +++ b/packages/@aws-cdk/iam/lib/user.ts @@ -1,5 +1,5 @@ import { ArnPrincipal, Construct, PolicyPrincipal, PolicyStatement, Token } from '@aws-cdk/core'; -import { iam } from '@aws-cdk/resources'; +import * as iam from '../cfn/iam'; import { Group } from './group'; import { IIdentityResource, Policy } from './policy'; import { AttachedPolicies, undefinedIfEmpty } from './util'; diff --git a/packages/@aws-cdk/iam/package.json b/packages/@aws-cdk/iam/package.json index f1e5ba1aa45d7..be80fee84e83b 100644 --- a/packages/@aws-cdk/iam/package.json +++ b/packages/@aws-cdk/iam/package.json @@ -17,7 +17,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "cfn2ts --scope=AWS::IAM && jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "tsc && tslint -p . --force", "test": "nodeunit test/test.*.js", @@ -38,10 +38,11 @@ "license": "LicenseRef-LICENSE", "devDependencies": { "@aws-cdk/assert": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/inspector/.gitignore b/packages/@aws-cdk/inspector/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/inspector/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/inspector/.npmignore b/packages/@aws-cdk/inspector/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/inspector/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/inspector/lib/index.ts b/packages/@aws-cdk/inspector/lib/index.ts new file mode 100644 index 0000000000000..f09ced2995ac8 --- /dev/null +++ b/packages/@aws-cdk/inspector/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::Inspector: +export * from '../cfn/inspector'; diff --git a/packages/@aws-cdk/inspector/package.json b/packages/@aws-cdk/inspector/package.json new file mode 100644 index 0000000000000..29fb517e0b535 --- /dev/null +++ b/packages/@aws-cdk/inspector/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/inspector", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::Inspector", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.inspector", + "dotnet": "Aws.Cdk.Inspector" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::Inspector && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "inspector" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/inspector/test/test.inspector.ts b/packages/@aws-cdk/inspector/test/test.inspector.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/inspector/test/test.inspector.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/iot/.gitignore b/packages/@aws-cdk/iot/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/iot/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/iot/.npmignore b/packages/@aws-cdk/iot/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/iot/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/iot/lib/index.ts b/packages/@aws-cdk/iot/lib/index.ts new file mode 100644 index 0000000000000..6cad933026ec2 --- /dev/null +++ b/packages/@aws-cdk/iot/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::IoT: +export * from '../cfn/iot'; diff --git a/packages/@aws-cdk/iot/package.json b/packages/@aws-cdk/iot/package.json new file mode 100644 index 0000000000000..3529dcbdd00d0 --- /dev/null +++ b/packages/@aws-cdk/iot/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/iot", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::IoT", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.iot", + "dotnet": "Aws.Cdk.IoT" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::IoT && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "iot" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/iot/test/test.iot.ts b/packages/@aws-cdk/iot/test/test.iot.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/iot/test/test.iot.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/kinesis/.gitignore b/packages/@aws-cdk/kinesis/.gitignore index 026a6f10e3d47..2df4d42e01e23 100644 --- a/packages/@aws-cdk/kinesis/.gitignore +++ b/packages/@aws-cdk/kinesis/.gitignore @@ -2,6 +2,7 @@ *.js.map *.d.ts node_modules +cfn dist tsconfig.json tslint.json diff --git a/packages/@aws-cdk/kinesis/lib/index.ts b/packages/@aws-cdk/kinesis/lib/index.ts index 3b1a34eb6fcb1..0c64e98d3be3f 100644 --- a/packages/@aws-cdk/kinesis/lib/index.ts +++ b/packages/@aws-cdk/kinesis/lib/index.ts @@ -1 +1,4 @@ export * from './stream'; + +// The L1 library for AWS::Kinesis: +export * from '../cfn/kinesis'; diff --git a/packages/@aws-cdk/kinesis/lib/stream.ts b/packages/@aws-cdk/kinesis/lib/stream.ts index 7c7d498c86082..748091823f7ee 100644 --- a/packages/@aws-cdk/kinesis/lib/stream.ts +++ b/packages/@aws-cdk/kinesis/lib/stream.ts @@ -1,7 +1,7 @@ import { Construct, Output, PolicyStatement, Token } from '@aws-cdk/core'; import { IIdentityResource } from '@aws-cdk/iam'; import * as kms from '@aws-cdk/kms'; -import { kinesis } from '@aws-cdk/resources'; +import * as kinesis from '../cfn/kinesis'; /** * A reference to a stream. The easiest way to instantiate is to call diff --git a/packages/@aws-cdk/kinesis/package.json b/packages/@aws-cdk/kinesis/package.json index e5b8aadb62567..e6eb3fbe828b2 100644 --- a/packages/@aws-cdk/kinesis/package.json +++ b/packages/@aws-cdk/kinesis/package.json @@ -17,7 +17,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "cfn2ts --scope=AWS::Kinesis && jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "tsc && tslint -p . --force", "test": "nodeunit test/test.*.js", @@ -36,13 +36,13 @@ "license": "LicenseRef-LICENSE", "devDependencies": { "@aws-cdk/assert": "^0.7.3-beta", - "aws-cdk": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", "pkglint": "^0.7.3-beta" }, "dependencies": { "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", "@aws-cdk/kms": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta" + "@aws-cdk/runtime": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/kinesisanalytics/.gitignore b/packages/@aws-cdk/kinesisanalytics/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/kinesisanalytics/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/kinesisanalytics/.npmignore b/packages/@aws-cdk/kinesisanalytics/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/kinesisanalytics/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/kinesisanalytics/lib/index.ts b/packages/@aws-cdk/kinesisanalytics/lib/index.ts new file mode 100644 index 0000000000000..7014b50eb11a6 --- /dev/null +++ b/packages/@aws-cdk/kinesisanalytics/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::KinesisAnalytics: +export * from '../cfn/kinesisanalytics'; diff --git a/packages/@aws-cdk/kinesisanalytics/package.json b/packages/@aws-cdk/kinesisanalytics/package.json new file mode 100644 index 0000000000000..cb86acd82c1d8 --- /dev/null +++ b/packages/@aws-cdk/kinesisanalytics/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/kinesisanalytics", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::KinesisAnalytics", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.kinesisanalytics", + "dotnet": "Aws.Cdk.KinesisAnalytics" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::KinesisAnalytics && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "kinesisanalytics" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/kinesisanalytics/test/test.kinesisanalytics.ts b/packages/@aws-cdk/kinesisanalytics/test/test.kinesisanalytics.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/kinesisanalytics/test/test.kinesisanalytics.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/kinesisfirehose/.gitignore b/packages/@aws-cdk/kinesisfirehose/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/kinesisfirehose/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/kinesisfirehose/.npmignore b/packages/@aws-cdk/kinesisfirehose/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/kinesisfirehose/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/kinesisfirehose/lib/index.ts b/packages/@aws-cdk/kinesisfirehose/lib/index.ts new file mode 100644 index 0000000000000..351032d26b8ed --- /dev/null +++ b/packages/@aws-cdk/kinesisfirehose/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::KinesisFirehose: +export * from '../cfn/kinesisfirehose'; diff --git a/packages/@aws-cdk/kinesisfirehose/package.json b/packages/@aws-cdk/kinesisfirehose/package.json new file mode 100644 index 0000000000000..4023aa0ea1653 --- /dev/null +++ b/packages/@aws-cdk/kinesisfirehose/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/kinesisfirehose", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::KinesisFirehose", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.kinesisfirehose", + "dotnet": "Aws.Cdk.KinesisFirehose" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::KinesisFirehose && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "kinesisfirehose" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/kinesisfirehose/test/test.kinesisfirehose.ts b/packages/@aws-cdk/kinesisfirehose/test/test.kinesisfirehose.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/kinesisfirehose/test/test.kinesisfirehose.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/kms/.gitignore b/packages/@aws-cdk/kms/.gitignore index 026a6f10e3d47..2df4d42e01e23 100644 --- a/packages/@aws-cdk/kms/.gitignore +++ b/packages/@aws-cdk/kms/.gitignore @@ -2,6 +2,7 @@ *.js.map *.d.ts node_modules +cfn dist tsconfig.json tslint.json diff --git a/packages/@aws-cdk/kms/lib/alias.ts b/packages/@aws-cdk/kms/lib/alias.ts index dd32488ac6934..dc9f783dd2385 100644 --- a/packages/@aws-cdk/kms/lib/alias.ts +++ b/packages/@aws-cdk/kms/lib/alias.ts @@ -1,5 +1,5 @@ import { Construct, Token } from '@aws-cdk/core'; -import { kms } from '@aws-cdk/resources'; +import * as kms from '../cfn/kms'; import { EncryptionKeyRef } from './key'; const REQUIRED_ALIAS_PREFIX = 'alias/'; diff --git a/packages/@aws-cdk/kms/lib/index.ts b/packages/@aws-cdk/kms/lib/index.ts index 4dc773f716891..a2486d11d9209 100644 --- a/packages/@aws-cdk/kms/lib/index.ts +++ b/packages/@aws-cdk/kms/lib/index.ts @@ -1,2 +1,5 @@ export * from './key'; -export * from './alias'; \ No newline at end of file +export * from './alias'; + +// The L1 library for AWS::KMS: +export * from '../cfn/kms'; diff --git a/packages/@aws-cdk/kms/lib/key.ts b/packages/@aws-cdk/kms/lib/key.ts index 030df4359b5b1..8d79259f386c2 100644 --- a/packages/@aws-cdk/kms/lib/key.ts +++ b/packages/@aws-cdk/kms/lib/key.ts @@ -1,5 +1,5 @@ import { Construct, DeletionPolicy, Output, PolicyDocument, PolicyStatement } from '@aws-cdk/core'; -import { kms } from '@aws-cdk/resources'; +import * as kms from '../cfn/kms'; import { EncryptionKeyAlias } from './alias'; export interface EncryptionKeyRefProps { diff --git a/packages/@aws-cdk/kms/package.json b/packages/@aws-cdk/kms/package.json index 7a32f43beef59..7f5fff852e635 100644 --- a/packages/@aws-cdk/kms/package.json +++ b/packages/@aws-cdk/kms/package.json @@ -17,7 +17,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "cfn2ts --scope=AWS::KMS && jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "tsc && tslint -p .", "test": "nodeunit test/test.*.js", @@ -36,12 +36,12 @@ "license": "LicenseRef-LICENSE", "devDependencies": { "@aws-cdk/assert": "^0.7.3-beta", - "aws-cdk": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", "pkglint": "^0.7.3-beta" }, "dependencies": { "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta" + "@aws-cdk/runtime": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/lambda/.gitignore b/packages/@aws-cdk/lambda/.gitignore index 8ad82bc245b78..8634a5e37938c 100644 --- a/packages/@aws-cdk/lambda/.gitignore +++ b/packages/@aws-cdk/lambda/.gitignore @@ -2,6 +2,7 @@ *.js.map *.d.ts node_modules +cfn dist tsconfig.json tslint.json diff --git a/packages/@aws-cdk/lambda/lib/alias.ts b/packages/@aws-cdk/lambda/lib/alias.ts index 90577c4491fab..a99136f800403 100644 --- a/packages/@aws-cdk/lambda/lib/alias.ts +++ b/packages/@aws-cdk/lambda/lib/alias.ts @@ -1,9 +1,9 @@ import { Construct } from "@aws-cdk/core"; import { Role } from "@aws-cdk/iam"; -import { lambda } from "@aws-cdk/resources"; +import * as lambda from '../cfn/lambda'; import { FunctionName, LambdaRef } from "./lambda-ref"; +import { LambdaVersion } from "./lambda-version"; import { LambdaPermission } from './permission'; -import { Version } from "./version"; /** * Properties for a new Lambda alias @@ -21,7 +21,7 @@ export interface AliasProps { * * Use lambda.addVersion() to obtain a new lambda version to refer to. */ - version: Version; + version: LambdaVersion; /** * Name of this alias @@ -146,7 +146,7 @@ export interface VersionWeight { /** * The version to route traffic to */ - readonly version: Version; + readonly version: LambdaVersion; /** * How much weight to assign to this version (0..1) diff --git a/packages/@aws-cdk/lambda/lib/code.ts b/packages/@aws-cdk/lambda/lib/code.ts index 0b5c1864b7615..7090810eabb1e 100644 --- a/packages/@aws-cdk/lambda/lib/code.ts +++ b/packages/@aws-cdk/lambda/lib/code.ts @@ -1,5 +1,5 @@ -import { lambda } from '@aws-cdk/resources'; import { BucketName, BucketRef } from '@aws-cdk/s3'; +import * as lambda from '../cfn/lambda'; import { LambdaRuntime } from './runtime'; export abstract class LambdaCode { diff --git a/packages/@aws-cdk/lambda/lib/index.ts b/packages/@aws-cdk/lambda/lib/index.ts index d2464743685c9..fdb7b80674975 100644 --- a/packages/@aws-cdk/lambda/lib/index.ts +++ b/packages/@aws-cdk/lambda/lib/index.ts @@ -5,4 +5,7 @@ export * from './permission'; export * from './runtime'; export * from './code'; export * from './inline'; -export * from './version'; \ No newline at end of file +export * from './lambda-version'; + +// The L1 library for AWS::Lambda: +export * from '../cfn/lambda'; diff --git a/packages/@aws-cdk/lambda/lib/lambda-ref.ts b/packages/@aws-cdk/lambda/lib/lambda-ref.ts index 0b6eb53b9bbfe..ba0be17e62ccb 100644 --- a/packages/@aws-cdk/lambda/lib/lambda-ref.ts +++ b/packages/@aws-cdk/lambda/lib/lambda-ref.ts @@ -3,7 +3,7 @@ import { AccountPrincipal, Arn, Construct, FnSelect, FnSplit, PolicyPrincipal, PolicyStatement, resolve, ServicePrincipal, Token } from '@aws-cdk/core'; import { EventRuleTarget, IEventRuleTarget } from '@aws-cdk/events'; import { Role } from '@aws-cdk/iam'; -import { lambda } from '@aws-cdk/resources'; +import * as lambda from '../cfn/lambda'; import { LambdaPermission } from './permission'; /** diff --git a/packages/@aws-cdk/lambda/lib/version.ts b/packages/@aws-cdk/lambda/lib/lambda-version.ts similarity index 83% rename from packages/@aws-cdk/lambda/lib/version.ts rename to packages/@aws-cdk/lambda/lib/lambda-version.ts index 524ea3be59fb3..a5e87c10b6de0 100644 --- a/packages/@aws-cdk/lambda/lib/version.ts +++ b/packages/@aws-cdk/lambda/lib/lambda-version.ts @@ -1,11 +1,11 @@ import { Construct } from "@aws-cdk/core"; -import { lambda } from "@aws-cdk/resources"; +import * as lambda from '../cfn/lambda'; import { LambdaRef } from "./lambda-ref"; /** * Properties for a new Lambda version */ -export interface VersionProps { +export interface LambdaVersionProps { /** * SHA256 of the version of the Lambda source code * @@ -44,18 +44,18 @@ export interface VersionProps { * the right deployment, specify the `codeSha256` property while * creating the `Version. */ -export class Version extends Construct { +export class LambdaVersion extends Construct { /** * The most recently deployed version of this function. */ - public readonly functionVersion: FunctionVersion; + public readonly functionVersion: lambda.Version; /** * Lambda object this version is associated with */ public readonly lambda: LambdaRef; - constructor(parent: Construct, name: string, props: VersionProps) { + constructor(parent: Construct, name: string, props: LambdaVersionProps) { super(parent, name); const version = new lambda.VersionResource(this, 'Resource', { @@ -68,9 +68,3 @@ export class Version extends Construct { this.lambda = props.lambda; } } - -/** - * A single version of a Lambda function - */ -export class FunctionVersion extends lambda.Version { -} diff --git a/packages/@aws-cdk/lambda/lib/lambda.ts b/packages/@aws-cdk/lambda/lib/lambda.ts index f71d68c0938b3..d8aa6f7d07eed 100644 --- a/packages/@aws-cdk/lambda/lib/lambda.ts +++ b/packages/@aws-cdk/lambda/lib/lambda.ts @@ -1,10 +1,10 @@ import { Arn, Construct, PolicyStatement, ServicePrincipal, Token } from '@aws-cdk/core'; import { Role } from '@aws-cdk/iam'; -import { lambda } from '@aws-cdk/resources'; +import * as lambda from '../cfn/lambda'; import { LambdaCode } from './code'; import { FunctionName, LambdaRef } from './lambda-ref'; +import { LambdaVersion } from './lambda-version'; import { LambdaRuntime } from './runtime'; -import { Version } from './version'; export interface LambdaProps { /** @@ -182,8 +182,8 @@ export class Lambda extends LambdaRef { * @param description A description for this version. * @returns A new Version object. */ - public addVersion(name: string, codeSha256?: string, description?: string): Version { - return new Version(this, 'Version' + name, { + public addVersion(name: string, codeSha256?: string, description?: string): LambdaVersion { + return new LambdaVersion(this, 'Version' + name, { lambda: this, codeSha256, description, diff --git a/packages/@aws-cdk/lambda/package.json b/packages/@aws-cdk/lambda/package.json index d1e4802085ace..5feeda15aad45 100644 --- a/packages/@aws-cdk/lambda/package.json +++ b/packages/@aws-cdk/lambda/package.json @@ -17,7 +17,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "cfn2ts --scope=AWS::Lambda && jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "tsc && tslint -p . --force", "test": "nodeunit test/test.*.js && cdk-integ-assert", @@ -37,7 +37,7 @@ "license": "LicenseRef-LICENSE", "devDependencies": { "@aws-cdk/assert": "^0.7.3-beta", - "aws-cdk": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", "pkglint": "^0.7.3-beta" }, "dependencies": { @@ -45,7 +45,7 @@ "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/events": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta", "@aws-cdk/s3": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/logs/.gitignore b/packages/@aws-cdk/logs/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/logs/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/logs/.npmignore b/packages/@aws-cdk/logs/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/logs/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/logs/lib/index.ts b/packages/@aws-cdk/logs/lib/index.ts new file mode 100644 index 0000000000000..92cf46eb0163f --- /dev/null +++ b/packages/@aws-cdk/logs/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::Logs: +export * from '../cfn/logs'; diff --git a/packages/@aws-cdk/logs/package.json b/packages/@aws-cdk/logs/package.json new file mode 100644 index 0000000000000..cc5411567b096 --- /dev/null +++ b/packages/@aws-cdk/logs/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/logs", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::Logs", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.logs", + "dotnet": "Aws.Cdk.Logs" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::Logs && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "logs" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/logs/test/test.logs.ts b/packages/@aws-cdk/logs/test/test.logs.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/logs/test/test.logs.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/neptune/lib/index.ts b/packages/@aws-cdk/neptune/lib/index.ts index 3929a3cc1bfb2..1113de6bf6950 100644 --- a/packages/@aws-cdk/neptune/lib/index.ts +++ b/packages/@aws-cdk/neptune/lib/index.ts @@ -1,7 +1,7 @@ import { Construct } from '@aws-cdk/core'; import { DefaultConnections, IConnectable } from '@aws-cdk/ec2'; +import { KeyArn } from '@aws-cdk/kms'; import { ClusterIdentifier, DatabaseCluster, DatabaseClusterEngine, Endpoint, InstanceIdentifier, InstanceProps, Login } from '@aws-cdk/rds'; -import { kms } from '@aws-cdk/resources'; /** * Properties for a Neptune Graph Database Cluster @@ -61,7 +61,7 @@ export interface NeptuneDatabaseProps { /** * ARN of KMS key if you want to enable storage encryption */ - kmsKeyArn?: kms.KeyArn; + kmsKeyArn?: KeyArn; /** * A daily time range in 24-hours UTC format in which backups preferably execute. diff --git a/packages/@aws-cdk/neptune/package.json b/packages/@aws-cdk/neptune/package.json index ca76e1129e064..69290d3b75f9f 100644 --- a/packages/@aws-cdk/neptune/package.json +++ b/packages/@aws-cdk/neptune/package.json @@ -17,7 +17,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "tsc && tslint -p . --force", "test": "nodeunit test/test.*.js", @@ -41,7 +41,8 @@ "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/ec2": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", + "@aws-cdk/kms": "^0.7.3-beta", "@aws-cdk/rds": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta" + "@aws-cdk/runtime": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/opsworks/.gitignore b/packages/@aws-cdk/opsworks/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/opsworks/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/opsworks/.npmignore b/packages/@aws-cdk/opsworks/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/opsworks/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/opsworks/lib/index.ts b/packages/@aws-cdk/opsworks/lib/index.ts new file mode 100644 index 0000000000000..ab406bdfeec72 --- /dev/null +++ b/packages/@aws-cdk/opsworks/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::OpsWorks: +export * from '../cfn/opsworks'; diff --git a/packages/@aws-cdk/opsworks/package.json b/packages/@aws-cdk/opsworks/package.json new file mode 100644 index 0000000000000..4489d590d4165 --- /dev/null +++ b/packages/@aws-cdk/opsworks/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/opsworks", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::OpsWorks", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.opsworks", + "dotnet": "Aws.Cdk.OpsWorks" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::OpsWorks && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "opsworks" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/opsworks/test/test.opsworks.ts b/packages/@aws-cdk/opsworks/test/test.opsworks.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/opsworks/test/test.opsworks.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/quickstarts/lib/database.ts b/packages/@aws-cdk/quickstarts/lib/database.ts index 89342d3bcf98e..7838dbfa458cc 100644 --- a/packages/@aws-cdk/quickstarts/lib/database.ts +++ b/packages/@aws-cdk/quickstarts/lib/database.ts @@ -1,6 +1,6 @@ import { Construct } from '@aws-cdk/core'; import { DefaultConnections, IConnectable, IPortRange, SecurityGroup, TcpPort, VpcNetworkRef } from '@aws-cdk/ec2'; -import { rds } from '@aws-cdk/resources'; +import { DBInstanceResource, DBSubnetGroupResource } from '@aws-cdk/rds'; import { applyDefaults } from '@aws-cdk/util'; export interface SqlServerProps { @@ -31,7 +31,7 @@ export class SqlServer extends Construct implements IConnectable { description: 'Database security group', }); - const subnetGroup = new rds.DBSubnetGroupResource(this, 'Subnet', { + const subnetGroup = new DBSubnetGroupResource(this, 'Subnet', { subnetIds: props.vpc.privateSubnets.map(privateSubnet => privateSubnet.subnetId), dbSubnetGroupDescription: 'Database subnet group', }); @@ -44,7 +44,7 @@ export class SqlServer extends Construct implements IConnectable { allocatedStorage: 200 }); - new rds.DBInstanceResource(this, 'Resource', { + new DBInstanceResource(this, 'Resource', { allocatedStorage: p.allocatedStorage.toString(), dbInstanceClass: p.instanceClass, engine: p.engine, diff --git a/packages/@aws-cdk/quickstarts/lib/rdgw.ts b/packages/@aws-cdk/quickstarts/lib/rdgw.ts index 836f8cc0ff639..84e9afcafafd0 100644 --- a/packages/@aws-cdk/quickstarts/lib/rdgw.ts +++ b/packages/@aws-cdk/quickstarts/lib/rdgw.ts @@ -1,6 +1,6 @@ +import { StackResource } from '@aws-cdk/cloudformation'; import { Construct } from '@aws-cdk/core'; import { DefaultConnections, IDefaultConnectable, IPortRange, SecurityGroupRef, TcpPort, VpcNetworkRef } from '@aws-cdk/ec2'; -import { cloudformation } from '@aws-cdk/resources'; export interface RemoteDesktopGatewayProps { rdgwCIDR: string; @@ -43,7 +43,7 @@ export class RemoteDesktopGateway extends Construct implements IDefaultConnectab RDGWInstanceType: props.rdgwInstanceType, }; - const nestedStack = new cloudformation.StackResource(this, 'Resource', { + const nestedStack = new StackResource(this, 'Resource', { templateUrl: 'https://s3.amazonaws.com/quickstart-reference/microsoft/rdgateway/latest/templates/rdgw-standalone.template', parameters: params }); diff --git a/packages/@aws-cdk/quickstarts/package.json b/packages/@aws-cdk/quickstarts/package.json index 49423c0e047f5..bf5199fe4ccf3 100644 --- a/packages/@aws-cdk/quickstarts/package.json +++ b/packages/@aws-cdk/quickstarts/package.json @@ -19,7 +19,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "tsc && tslint -p . --force", "pkglint": "pkglint -f" @@ -39,10 +39,11 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { + "@aws-cdk/cloudformation": "^0.7.3-beta", "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/ec2": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta", + "@aws-cdk/rds": "^0.7.3-beta", "@aws-cdk/util": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/rds/.gitignore b/packages/@aws-cdk/rds/.gitignore index 541a7635fd070..a725ff9821bb6 100644 --- a/packages/@aws-cdk/rds/.gitignore +++ b/packages/@aws-cdk/rds/.gitignore @@ -3,5 +3,6 @@ tsconfig.json tslint.json *.js.map *.d.ts +cfn dist lib/generated/resources.ts diff --git a/packages/@aws-cdk/rds/lib/cluster-ref.ts b/packages/@aws-cdk/rds/lib/cluster-ref.ts index 00140533e4ac5..7273e9e18792d 100644 --- a/packages/@aws-cdk/rds/lib/cluster-ref.ts +++ b/packages/@aws-cdk/rds/lib/cluster-ref.ts @@ -1,6 +1,6 @@ import { Construct, FnJoin, Output, StringListOutput, Token } from '@aws-cdk/core'; -import { DefaultConnections, IDefaultConnectable, IPortRange, SecurityGroupRef, TcpPortFromAttribute } from '@aws-cdk/ec2'; -import { ec2, rds } from '@aws-cdk/resources'; +import { DefaultConnections, IDefaultConnectable, IPortRange, SecurityGroupId, SecurityGroupRef, TcpPortFromAttribute } from '@aws-cdk/ec2'; +import * as rds from '../cfn/rds'; /** * Create a clustered database with a given number of instances. @@ -51,7 +51,7 @@ export abstract class DatabaseClusterRef extends Construct implements IDefaultCo /** * The security group for this database cluster */ - protected abstract readonly securityGroupId: ec2.SecurityGroupId; + protected abstract readonly securityGroupId: SecurityGroupId; /** * Export a Database Cluster for importing in another stack @@ -82,7 +82,7 @@ export interface DatabaseClusterRefProps { /** * The security group for this database cluster */ - securityGroupId: ec2.SecurityGroupId; + securityGroupId: SecurityGroupId; /** * Identifier for the cluster @@ -152,7 +152,7 @@ class ImportedDatabaseCluster extends DatabaseClusterRef { /** * Security group identifier of this database */ - protected readonly securityGroupId: ec2.SecurityGroupId; + protected readonly securityGroupId: SecurityGroupId; constructor(parent: Construct, name: string, props: DatabaseClusterRefProps) { super(parent, name); diff --git a/packages/@aws-cdk/rds/lib/cluster.ts b/packages/@aws-cdk/rds/lib/cluster.ts index df50f4972f4f6..037de77dda392 100644 --- a/packages/@aws-cdk/rds/lib/cluster.ts +++ b/packages/@aws-cdk/rds/lib/cluster.ts @@ -1,6 +1,8 @@ import { Construct } from '@aws-cdk/core'; -import { DefaultConnections, InstanceType, IPortRange, SecurityGroup, TcpPortFromAttribute } from '@aws-cdk/ec2'; -import { ec2, kms, rds } from '@aws-cdk/resources'; +// tslint:disable-next-line:ordered-imports +import { DefaultConnections, InstanceType, IPortRange, SecurityGroup, TcpPortFromAttribute, SecurityGroupId } from '@aws-cdk/ec2'; +import { KeyArn } from '@aws-cdk/kms'; +import * as rds from '../cfn/rds'; import { ClusterIdentifier, DatabaseClusterRef, Endpoint, InstanceIdentifier } from './cluster-ref'; import { BackupProps, DatabaseClusterEngine, InstanceProps, Login, Parameters } from './props'; @@ -70,7 +72,7 @@ export interface DatabaseClusterProps { /** * ARN of KMS key if you want to enable storage encryption */ - kmsKeyArn?: kms.KeyArn; + kmsKeyArn?: KeyArn; /** * A daily time range in 24-hours UTC format in which backups preferably execute. @@ -129,7 +131,7 @@ export class DatabaseCluster extends DatabaseClusterRef { /** * Security group identifier of this database */ - protected securityGroupId: ec2.SecurityGroupId; + protected securityGroupId: SecurityGroupId; constructor(parent: Construct, name: string, props: DatabaseClusterProps) { super(parent, name); diff --git a/packages/@aws-cdk/rds/lib/index.ts b/packages/@aws-cdk/rds/lib/index.ts index bdc2d3e72ab34..d9a3cf98c3652 100644 --- a/packages/@aws-cdk/rds/lib/index.ts +++ b/packages/@aws-cdk/rds/lib/index.ts @@ -2,3 +2,6 @@ export * from './cluster'; export * from './cluster-ref'; export * from './instance'; export * from './props'; + +// The L1 library for AWS::RDS: +export * from '../cfn/rds'; diff --git a/packages/@aws-cdk/rds/package.json b/packages/@aws-cdk/rds/package.json index 2708c6ce48383..1b57820b94b08 100644 --- a/packages/@aws-cdk/rds/package.json +++ b/packages/@aws-cdk/rds/package.json @@ -17,7 +17,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "cfn2ts --scope=AWS::RDS && jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "tsc && tslint -p . --force", "test": "nodeunit test/test.*.js && cdk-integ-assert", @@ -37,13 +37,14 @@ "license": "LicenseRef-LICENSE", "devDependencies": { "@aws-cdk/assert": "^0.7.3-beta", - "aws-cdk": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", "pkglint": "^0.7.3-beta" }, "dependencies": { "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/ec2": "^0.7.3-beta", + "@aws-cdk/kms": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta" + "@aws-cdk/runtime": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/redshift/.gitignore b/packages/@aws-cdk/redshift/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/redshift/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/redshift/.npmignore b/packages/@aws-cdk/redshift/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/redshift/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/redshift/lib/index.ts b/packages/@aws-cdk/redshift/lib/index.ts new file mode 100644 index 0000000000000..912194fde2a1c --- /dev/null +++ b/packages/@aws-cdk/redshift/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::Redshift: +export * from '../cfn/redshift'; diff --git a/packages/@aws-cdk/redshift/package.json b/packages/@aws-cdk/redshift/package.json new file mode 100644 index 0000000000000..f0c7ca6a099a2 --- /dev/null +++ b/packages/@aws-cdk/redshift/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/redshift", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::Redshift", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.redshift", + "dotnet": "Aws.Cdk.Redshift" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::Redshift && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "redshift" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/redshift/test/test.redshift.ts b/packages/@aws-cdk/redshift/test/test.redshift.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/redshift/test/test.redshift.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/resources/cloudformation-specs/000_CloudFormationResourceSpecification.json b/packages/@aws-cdk/resources/cloudformation-specs/000_CloudFormationResourceSpecification.json deleted file mode 100644 index 6696ec858cd5a..0000000000000 --- a/packages/@aws-cdk/resources/cloudformation-specs/000_CloudFormationResourceSpecification.json +++ /dev/null @@ -1,26794 +0,0 @@ -{ - "PropertyTypes": { - "AWS::CodeBuild::Project.Artifacts": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html", - "Properties": { - "Path": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-path", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Type": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-type", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Packaging": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-packaging", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Location": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-location", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "NamespaceType": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-namespacetype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::WAFRegional::ByteMatchSet.ByteMatchTuple": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-bytematchset-bytematchtuple.html", - "Properties": { - "TargetString": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-bytematchset-bytematchtuple.html#cfn-wafregional-bytematchset-bytematchtuple-targetstring", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "TargetStringBase64": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-bytematchset-bytematchtuple.html#cfn-wafregional-bytematchset-bytematchtuple-targetstringbase64", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "PositionalConstraint": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-bytematchset-bytematchtuple.html#cfn-wafregional-bytematchset-bytematchtuple-positionalconstraint", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "TextTransformation": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-bytematchset-bytematchtuple.html#cfn-wafregional-bytematchset-bytematchtuple-texttransformation", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "FieldToMatch": { - "Type": "FieldToMatch", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-bytematchset-bytematchtuple.html#cfn-wafregional-bytematchset-bytematchtuple-fieldtomatch", - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-certificates.html", - "Properties": { - "CertificateArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-certificates.html#cfn-elasticloadbalancingv2-listener-certificates-certificatearn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::CodePipeline::Pipeline.InputArtifact": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-inputartifacts.html", - "Properties": { - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-inputartifacts.html#cfn-codepipeline-pipeline-stages-actions-inputartifacts-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.BucketEncryption": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-bucketencryption.html", - "Properties": { - "ServerSideEncryptionConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-bucketencryption.html#cfn-s3-bucket-bucketencryption-serversideencryptionconfiguration", - "DuplicatesAllowed": false, - "ItemType": "ServerSideEncryptionRule", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::DynamoDB::Table.TimeToLiveSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-timetolivespecification.html", - "Properties": { - "AttributeName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-timetolivespecification.html#cfn-dynamodb-timetolivespecification-attributename", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Enabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-timetolivespecification.html#cfn-dynamodb-timetolivespecification-enabled", - "PrimitiveType": "Boolean", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticBeanstalk::Environment.OptionSetting": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-option-settings.html", - "Properties": { - "Namespace": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-option-settings.html#cfn-beanstalk-optionsettings-namespace", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "OptionName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-option-settings.html#cfn-beanstalk-optionsettings-optionname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "ResourceName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-option-settings.html#cfn-elasticbeanstalk-environment-optionsetting-resourcename", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-option-settings.html#cfn-beanstalk-optionsettings-value", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-loadbalancerinfo.html", - "Properties": { - "ElbInfoList": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-loadbalancerinfo.html#cfn-codedeploy-deploymentgroup-loadbalancerinfo-elbinfolist", - "DuplicatesAllowed": false, - "ItemType": "ELBInfo", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "TargetGroupInfoList": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-loadbalancerinfo.html#cfn-codedeploy-deploymentgroup-loadbalancerinfo-targetgroupinfolist", - "DuplicatesAllowed": false, - "ItemType": "TargetGroupInfo", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::Budgets::Budget.NotificationWithSubscribers": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notificationwithsubscribers.html", - "Properties": { - "Subscribers": { - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notificationwithsubscribers.html#cfn-budgets-budget-notificationwithsubscribers-subscribers", - "ItemType": "Subscriber", - "UpdateType": "Mutable" - }, - "Notification": { - "Type": "Notification", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notificationwithsubscribers.html#cfn-budgets-budget-notificationwithsubscribers-notification", - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeDeploy::DeploymentGroup.RevisionLocation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision.html", - "Properties": { - "GitHubLocation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-githublocation", - "Required": false, - "Type": "GitHubLocation", - "UpdateType": "Mutable" - }, - "RevisionType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-revisiontype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "S3Location": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-s3location", - "Required": false, - "Type": "S3Location", - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.NotificationFilter": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html", - "Properties": { - "S3Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html#cfn-s3-bucket-notificationconfiguraiton-config-filter-s3key", - "Required": true, - "Type": "S3KeyFilter", - "UpdateType": "Mutable" - } - } - }, - "AWS::DataPipeline::Pipeline.ParameterAttribute": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parameterobjects-attributes.html", - "Properties": { - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parameterobjects-attributes.html#cfn-datapipeline-pipeline-parameterobjects-attribtues-key", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "StringValue": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parameterobjects-attributes.html#cfn-datapipeline-pipeline-parameterobjects-attribtues-stringvalue", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Events::Rule.RunCommandParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandparameters.html", - "Properties": { - "RunCommandTargets": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandparameters.html#cfn-events-rule-runcommandparameters-runcommandtargets", - "DuplicatesAllowed": false, - "ItemType": "RunCommandTarget", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::CertificateManager::Certificate.DomainValidationOption": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-certificatemanager-certificate-domainvalidationoption.html", - "Properties": { - "DomainName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-certificatemanager-certificate-domainvalidationoption.html#cfn-certificatemanager-certificate-domainvalidationoptions-domainname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "ValidationDomain": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-certificatemanager-certificate-domainvalidationoption.html#cfn-certificatemanager-certificate-domainvalidationoption-validationdomain", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::ServiceCatalog::CloudFormationProduct.ProvisioningArtifactProperties": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationproduct-provisioningartifactproperties.html", - "Properties": { - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationproduct-provisioningartifactproperties.html#cfn-servicecatalog-cloudformationproduct-provisioningartifactproperties-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Info": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationproduct-provisioningartifactproperties.html#cfn-servicecatalog-cloudformationproduct-provisioningartifactproperties-info", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationproduct-provisioningartifactproperties.html#cfn-servicecatalog-cloudformationproduct-provisioningartifactproperties-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudTrail::Trail.EventSelector": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-eventselector.html", - "Properties": { - "DataResources": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-eventselector.html#cfn-cloudtrail-trail-eventselector-dataresources", - "DuplicatesAllowed": false, - "ItemType": "DataResource", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "IncludeManagementEvents": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-eventselector.html#cfn-cloudtrail-trail-eventselector-includemanagementevents", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "ReadWriteType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-eventselector.html#cfn-cloudtrail-trail-eventselector-readwritetype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::SES::ReceiptRule.BounceAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-bounceaction.html", - "Properties": { - "Sender": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-bounceaction.html#cfn-ses-receiptrule-bounceaction-sender", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "SmtpReplyCode": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-bounceaction.html#cfn-ses-receiptrule-bounceaction-smtpreplycode", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Message": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-bounceaction.html#cfn-ses-receiptrule-bounceaction-message", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "TopicArn": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-bounceaction.html#cfn-ses-receiptrule-bounceaction-topicarn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "StatusCode": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-bounceaction.html#cfn-ses-receiptrule-bounceaction-statuscode", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.RoutingRuleCondition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-routingrulecondition.html", - "Properties": { - "HttpErrorCodeReturnedEquals": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-routingrulecondition.html#cfn-s3-websiteconfiguration-routingrules-routingrulecondition-httperrorcodereturnedequals", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "KeyPrefixEquals": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-routingrulecondition.html#cfn-s3-websiteconfiguration-routingrules-routingrulecondition-keyprefixequals", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisFirehose::DeliveryStream.ElasticsearchDestinationConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html", - "Properties": { - "BufferingHints": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-bufferinghints", - "Required": true, - "Type": "ElasticsearchBufferingHints", - "UpdateType": "Mutable" - }, - "CloudWatchLoggingOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-cloudwatchloggingoptions", - "Required": false, - "Type": "CloudWatchLoggingOptions", - "UpdateType": "Mutable" - }, - "DomainARN": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-domainarn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "IndexName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-indexname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "IndexRotationPeriod": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-indexrotationperiod", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "ProcessingConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-processingconfiguration", - "Required": false, - "Type": "ProcessingConfiguration", - "UpdateType": "Mutable" - }, - "RetryOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-retryoptions", - "Required": true, - "Type": "ElasticsearchRetryOptions", - "UpdateType": "Mutable" - }, - "RoleARN": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-rolearn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "S3BackupMode": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-s3backupmode", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "S3Configuration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-s3configuration", - "Required": true, - "Type": "S3DestinationConfiguration", - "UpdateType": "Mutable" - }, - "TypeName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-typename", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::SecurityGroup.Ingress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html", - "Properties": { - "CidrIp": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-cidrip", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "CidrIpv6": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-cidripv6", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "FromPort": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-fromport", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "IpProtocol": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-ipprotocol", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "SourceSecurityGroupId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-sourcesecuritygroupid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "SourceSecurityGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-sourcesecuritygroupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "SourceSecurityGroupOwnerId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-sourcesecuritygroupownerid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ToPort": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-toport", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.LifecycleConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig.html", - "Properties": { - "Rules": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig.html#cfn-s3-bucket-lifecycleconfig-rules", - "DuplicatesAllowed": false, - "ItemType": "Rule", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::DMS::Endpoint.S3Settings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html", - "Properties": { - "ExternalTableDefinition": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-externaltabledefinition", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "BucketName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-bucketname", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "BucketFolder": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-bucketfolder", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "CsvRowDelimiter": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-csvrowdelimiter", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "CsvDelimiter": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-csvdelimiter", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ServiceAccessRoleArn": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-serviceaccessrolearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "CompressionType": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-compressiontype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-mapping.html", - "Properties": { - "DeviceName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-mapping.html#cfn-as-launchconfig-blockdev-mapping-devicename", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Ebs": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-mapping.html#cfn-as-launchconfig-blockdev-mapping-ebs", - "Required": false, - "Type": "BlockDevice", - "UpdateType": "Mutable" - }, - "NoDevice": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-mapping.html#cfn-as-launchconfig-blockdev-mapping-nodevice", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "VirtualName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-mapping.html#cfn-as-launchconfig-blockdev-mapping-virtualname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Partition.SerdeInfo": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-serdeinfo.html", - "Properties": { - "Parameters": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-serdeinfo.html#cfn-glue-partition-serdeinfo-parameters", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - }, - "SerializationLibrary": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-serdeinfo.html#cfn-glue-partition-serdeinfo-serializationlibrary", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-serdeinfo.html#cfn-glue-partition-serdeinfo-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudFront::Distribution.Cookies": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cookies.html", - "Properties": { - "WhitelistedNames": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cookies.html#cfn-cloudfront-distribution-cookies-whitelistednames", - "UpdateType": "Mutable" - }, - "Forward": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cookies.html#cfn-cloudfront-distribution-cookies-forward", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.LambdaConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-lambdaconfig.html", - "Properties": { - "Event": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-lambdaconfig.html#cfn-s3-bucket-notificationconfig-lambdaconfig-event", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Filter": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-lambdaconfig.html#cfn-s3-bucket-notificationconfig-lambdaconfig-filter", - "Required": false, - "Type": "NotificationFilter", - "UpdateType": "Mutable" - }, - "Function": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-lambdaconfig.html#cfn-s3-bucket-notificationconfig-lambdaconfig-function", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.S3ReferenceDataSource": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-s3referencedatasource.html", - "Properties": { - "BucketARN": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-s3referencedatasource.html#cfn-kinesisanalytics-applicationreferencedatasource-s3referencedatasource-bucketarn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "FileKey": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-s3referencedatasource.html#cfn-kinesisanalytics-applicationreferencedatasource-s3referencedatasource-filekey", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ReferenceRoleARN": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-s3referencedatasource.html#cfn-kinesisanalytics-applicationreferencedatasource-s3referencedatasource-referencerolearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::WAF::Rule.Predicate": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-rule-predicates.html", - "Properties": { - "DataId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-rule-predicates.html#cfn-waf-rule-predicates-dataid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Negated": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-rule-predicates.html#cfn-waf-rule-predicates-negated", - "PrimitiveType": "Boolean", - "Required": true, - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-rule-predicates.html#cfn-waf-rule-predicates-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::Step.HadoopJarStepConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-hadoopjarstepconfig.html", - "Properties": { - "Args": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-hadoopjarstepconfig.html#cfn-elasticmapreduce-step-hadoopjarstepconfig-args", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "Jar": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-hadoopjarstepconfig.html#cfn-elasticmapreduce-step-hadoopjarstepconfig-jar", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "MainClass": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-hadoopjarstepconfig.html#cfn-elasticmapreduce-step-hadoopjarstepconfig-mainclass", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "StepProperties": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-hadoopjarstepconfig.html#cfn-elasticmapreduce-step-hadoopjarstepconfig-stepproperties", - "DuplicatesAllowed": false, - "ItemType": "KeyValue", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - } - } - }, - "AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig.html", - "Properties": { - "VolumeSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig.html#cfn-emr-ebsconfiguration-ebsblockdeviceconfig-volumespecification", - "Required": true, - "Type": "VolumeSpecification", - "UpdateType": "Mutable" - }, - "VolumesPerInstance": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig.html#cfn-emr-ebsconfiguration-ebsblockdeviceconfig-volumesperinstance", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeDeploy::DeploymentGroup.S3Location": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-s3location.html", - "Properties": { - "Bucket": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-s3location.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-s3location-bucket", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "BundleType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-s3location.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-s3location-bundletype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ETag": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-s3location.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-s3location-etag", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-s3location.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-s3location-key", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Version": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-s3location.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-s3location-value", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::LaunchTemplate.PrivateIpAdd": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-privateipadd.html", - "Properties": { - "PrivateIpAddress": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-privateipadd.html#cfn-ec2-launchtemplate-privateipadd-privateipaddress", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Primary": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-privateipadd.html#cfn-ec2-launchtemplate-privateipadd-primary", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.ReplicationRule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html", - "Properties": { - "Destination": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html#cfn-s3-bucket-replicationconfiguration-rules-destination", - "Required": true, - "Type": "ReplicationDestination", - "UpdateType": "Mutable" - }, - "Id": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html#cfn-s3-bucket-replicationconfiguration-rules-id", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Prefix": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html#cfn-s3-bucket-replicationconfiguration-rules-prefix", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "SourceSelectionCriteria": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html#cfn-s3-bucket-replicationrule-sourceselectioncriteria", - "Required": false, - "Type": "SourceSelectionCriteria", - "UpdateType": "Mutable" - }, - "Status": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html#cfn-s3-bucket-replicationconfiguration-rules-status", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudFront::Distribution.LambdaFunctionAssociation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-lambdafunctionassociation.html", - "Properties": { - "EventType": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-lambdafunctionassociation.html#cfn-cloudfront-distribution-lambdafunctionassociation-eventtype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "LambdaFunctionARN": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-lambdafunctionassociation.html#cfn-cloudfront-distribution-lambdafunctionassociation-lambdafunctionarn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchbufferinghints.html", - "Properties": { - "IntervalInSeconds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchbufferinghints.html#cfn-kinesisfirehose-deliverystream-elasticsearchbufferinghints-intervalinseconds", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - }, - "SizeInMBs": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchbufferinghints.html#cfn-kinesisfirehose-deliverystream-elasticsearchbufferinghints-sizeinmbs", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::LaunchTemplate.LaunchTemplateData": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html", - "Properties": { - "SecurityGroups": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-securitygroups", - "UpdateType": "Mutable" - }, - "TagSpecifications": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications", - "ItemType": "TagSpecification", - "UpdateType": "Mutable" - }, - "UserData": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-userdata", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "InstanceInitiatedShutdownBehavior": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-instanceinitiatedshutdownbehavior", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "BlockDeviceMappings": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-blockdevicemappings", - "ItemType": "BlockDeviceMapping", - "UpdateType": "Mutable" - }, - "IamInstanceProfile": { - "Type": "IamInstanceProfile", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-iaminstanceprofile", - "UpdateType": "Mutable" - }, - "KernelId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-kernelid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "SecurityGroupIds": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-securitygroupids", - "UpdateType": "Mutable" - }, - "EbsOptimized": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-ebsoptimized", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "KeyName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-keyname", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DisableApiTermination": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-disableapitermination", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "ElasticGpuSpecifications": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-elasticgpuspecifications", - "ItemType": "ElasticGpuSpecification", - "UpdateType": "Mutable" - }, - "Placement": { - "Type": "Placement", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-placement", - "UpdateType": "Mutable" - }, - "InstanceMarketOptions": { - "Type": "InstanceMarketOptions", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-instancemarketoptions", - "UpdateType": "Mutable" - }, - "NetworkInterfaces": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-networkinterfaces", - "ItemType": "NetworkInterface", - "UpdateType": "Mutable" - }, - "ImageId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-imageid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "InstanceType": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-instancetype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "RamDiskId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-ramdiskid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Monitoring": { - "Type": "Monitoring", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-monitoring", - "UpdateType": "Mutable" - }, - "CreditSpecification": { - "Type": "CreditSpecification", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-creditspecification", - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Database.DatabaseInput": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseinput.html", - "Properties": { - "LocationUri": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseinput.html#cfn-glue-database-databaseinput-locationuri", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseinput.html#cfn-glue-database-databaseinput-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Parameters": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseinput.html#cfn-glue-database-databaseinput-parameters", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseinput.html#cfn-glue-database-databaseinput-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-lifecyclehookspecification.html", - "Properties": { - "DefaultResult": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-lifecyclehookspecification.html#cfn-autoscaling-autoscalinggroup-lifecyclehookspecification-defaultresult", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "HeartbeatTimeout": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-lifecyclehookspecification.html#cfn-autoscaling-autoscalinggroup-lifecyclehookspecification-heartbeattimeout", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "LifecycleHookName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-lifecyclehookspecification.html#cfn-autoscaling-autoscalinggroup-lifecyclehookspecification-lifecyclehookname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "LifecycleTransition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-lifecyclehookspecification.html#cfn-autoscaling-autoscalinggroup-lifecyclehookspecification-lifecycletransition", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "NotificationMetadata": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-lifecyclehookspecification.html#cfn-autoscaling-autoscalinggroup-lifecyclehookspecification-notificationmetadata", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "NotificationTargetARN": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-lifecyclehookspecification.html#cfn-autoscaling-autoscalinggroup-lifecyclehookspecification-notificationtargetarn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "RoleARN": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-lifecyclehookspecification.html#cfn-autoscaling-autoscalinggroup-lifecyclehookspecification-rolearn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::SES::ReceiptRule.WorkmailAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-workmailaction.html", - "Properties": { - "TopicArn": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-workmailaction.html#cfn-ses-receiptrule-workmailaction-topicarn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "OrganizationArn": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-workmailaction.html#cfn-ses-receiptrule-workmailaction-organizationarn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::Elasticsearch::Domain.VPCOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-vpcoptions.html", - "Properties": { - "SecurityGroupIds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-vpcoptions.html#cfn-elasticsearch-domain-vpcoptions-securitygroupids", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "SubnetIds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-vpcoptions.html#cfn-elasticsearch-domain-vpcoptions-subnetids", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::Cognito::UserPool.PasswordPolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-passwordpolicy.html", - "Properties": { - "RequireNumbers": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-passwordpolicy.html#cfn-cognito-userpool-passwordpolicy-requirenumbers", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "MinimumLength": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-passwordpolicy.html#cfn-cognito-userpool-passwordpolicy-minimumlength", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "RequireUppercase": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-passwordpolicy.html#cfn-cognito-userpool-passwordpolicy-requireuppercase", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "RequireLowercase": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-passwordpolicy.html#cfn-cognito-userpool-passwordpolicy-requirelowercase", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "RequireSymbols": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-passwordpolicy.html#cfn-cognito-userpool-passwordpolicy-requiresymbols", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-health-check.html", - "Properties": { - "HealthyThreshold": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-health-check.html#cfn-elb-healthcheck-healthythreshold", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Interval": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-health-check.html#cfn-elb-healthcheck-interval", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Target": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-health-check.html#cfn-elb-healthcheck-target", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Timeout": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-health-check.html#cfn-elb-healthcheck-timeout", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "UnhealthyThreshold": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-health-check.html#cfn-elb-healthcheck-unhealthythreshold", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::Instance.ElasticGpuSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-elasticgpuspecification.html", - "Properties": { - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-elasticgpuspecification.html#cfn-ec2-instance-elasticgpuspecification-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeDeploy::DeploymentGroup.TriggerConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-triggerconfig.html", - "Properties": { - "TriggerEvents": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-triggerconfig.html#cfn-codedeploy-deploymentgroup-triggerconfig-triggerevents", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "TriggerName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-triggerconfig.html#cfn-codedeploy-deploymentgroup-triggerconfig-triggername", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "TriggerTargetArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-triggerconfig.html#cfn-codedeploy-deploymentgroup-triggerconfig-triggertargetarn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisAnalytics::ApplicationOutput.KinesisFirehoseOutput": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-kinesisfirehoseoutput.html", - "Properties": { - "ResourceARN": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-kinesisfirehoseoutput.html#cfn-kinesisanalytics-applicationoutput-kinesisfirehoseoutput-resourcearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "RoleARN": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-kinesisfirehoseoutput.html#cfn-kinesisanalytics-applicationoutput-kinesisfirehoseoutput-rolearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::OpsWorks::Layer.ShutdownEventConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-lifecycleeventconfiguration-shutdowneventconfiguration.html", - "Properties": { - "DelayUntilElbConnectionsDrained": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-lifecycleeventconfiguration-shutdowneventconfiguration.html#cfn-opsworks-layer-lifecycleconfiguration-shutdowneventconfiguration-delayuntilelbconnectionsdrained", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "ExecutionTimeout": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-lifecycleeventconfiguration-shutdowneventconfiguration.html#cfn-opsworks-layer-lifecycleconfiguration-shutdowneventconfiguration-executiontimeout", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::DataPipeline::Pipeline.PipelineTag": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelinetags.html", - "Properties": { - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelinetags.html#cfn-datapipeline-pipeline-pipelinetags-key", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelinetags.html#cfn-datapipeline-pipeline-pipelinetags-value", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisAnalytics::Application.MappingParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-mappingparameters.html", - "Properties": { - "JSONMappingParameters": { - "Type": "JSONMappingParameters", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-mappingparameters.html#cfn-kinesisanalytics-application-mappingparameters-jsonmappingparameters", - "UpdateType": "Mutable" - }, - "CSVMappingParameters": { - "Type": "CSVMappingParameters", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-mappingparameters.html#cfn-kinesisanalytics-application-mappingparameters-csvmappingparameters", - "UpdateType": "Mutable" - } - } - }, - "AWS::Batch::JobDefinition.Volumes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html", - "Properties": { - "Host": { - "Type": "VolumesHost", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html#cfn-batch-jobdefinition-volumes-host", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html#cfn-batch-jobdefinition-volumes-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html", - "Properties": { - "AdjustmentType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-adjustmenttype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Cooldown": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-cooldown", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "MetricAggregationType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-metricaggregationtype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "MinAdjustmentMagnitude": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-minadjustmentmagnitude", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "StepAdjustments": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustments", - "DuplicatesAllowed": false, - "ItemType": "StepAdjustment", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudFront::Distribution.CustomOriginConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customoriginconfig.html", - "Properties": { - "OriginReadTimeout": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customoriginconfig.html#cfn-cloudfront-distribution-customoriginconfig-originreadtimeout", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "HTTPSPort": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customoriginconfig.html#cfn-cloudfront-distribution-customoriginconfig-httpsport", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "OriginKeepaliveTimeout": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customoriginconfig.html#cfn-cloudfront-distribution-customoriginconfig-originkeepalivetimeout", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "OriginSSLProtocols": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customoriginconfig.html#cfn-cloudfront-distribution-customoriginconfig-originsslprotocols", - "UpdateType": "Mutable" - }, - "HTTPPort": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customoriginconfig.html#cfn-cloudfront-distribution-customoriginconfig-httpport", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "OriginProtocolPolicy": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customoriginconfig.html#cfn-cloudfront-distribution-customoriginconfig-originprotocolpolicy", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.CorsRule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors-corsrule.html", - "Properties": { - "AllowedHeaders": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors-corsrule.html#cfn-s3-bucket-cors-corsrule-allowedheaders", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "AllowedMethods": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors-corsrule.html#cfn-s3-bucket-cors-corsrule-allowedmethods", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "AllowedOrigins": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors-corsrule.html#cfn-s3-bucket-cors-corsrule-allowedorigins", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "ExposedHeaders": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors-corsrule.html#cfn-s3-bucket-cors-corsrule-exposedheaders", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Id": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors-corsrule.html#cfn-s3-bucket-cors-corsrule-id", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "MaxAge": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors-corsrule.html#cfn-s3-bucket-cors-corsrule-maxage", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::IoT::TopicRule.S3Action": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-s3action.html", - "Properties": { - "BucketName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-s3action.html#cfn-iot-topicrule-s3action-bucketname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-s3action.html#cfn-iot-topicrule-s3action-key", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "RoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-s3action.html#cfn-iot-topicrule-s3action-rolearn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::NetworkAclEntry.Icmp": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkaclentry-icmp.html", - "Properties": { - "Code": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkaclentry-icmp.html#cfn-ec2-networkaclentry-icmp-code", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkaclentry-icmp.html#cfn-ec2-networkaclentry-icmp-type", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::DynamoDB::Table.AttributeDefinition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html", - "Properties": { - "AttributeName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html#cfn-dynamodb-attributedef-attributename", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "AttributeType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html#cfn-dynamodb-attributedef-attributename-attributetype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cloudfrontoriginaccessidentity-cloudfrontoriginaccessidentityconfig.html", - "Properties": { - "Comment": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cloudfrontoriginaccessidentity-cloudfrontoriginaccessidentityconfig.html#cfn-cloudfront-cloudfrontoriginaccessidentity-cloudfrontoriginaccessidentityconfig-comment", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisFirehose::DeliveryStream.SplunkDestinationConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html", - "Properties": { - "CloudWatchLoggingOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-cloudwatchloggingoptions", - "Required": false, - "Type": "CloudWatchLoggingOptions", - "UpdateType": "Mutable" - }, - "HECAcknowledgmentTimeoutInSeconds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-hecacknowledgmenttimeoutinseconds", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "HECEndpoint": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-hecendpoint", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "HECEndpointType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-hecendpointtype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "HECToken": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-hectoken", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "ProcessingConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-processingconfiguration", - "Required": false, - "Type": "ProcessingConfiguration", - "UpdateType": "Mutable" - }, - "RetryOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-retryoptions", - "Required": false, - "Type": "SplunkRetryOptions", - "UpdateType": "Mutable" - }, - "S3BackupMode": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-s3backupmode", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "S3Configuration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-s3configuration", - "Required": true, - "Type": "S3DestinationConfiguration", - "UpdateType": "Mutable" - } - } - }, - "AWS::SES::ReceiptRule.StopAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-stopaction.html", - "Properties": { - "Scope": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-stopaction.html#cfn-ses-receiptrule-stopaction-scope", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "TopicArn": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-stopaction.html#cfn-ses-receiptrule-stopaction-topicarn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::DirectoryService::MicrosoftAD.VpcSettings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-microsoftad-vpcsettings.html", - "Properties": { - "SubnetIds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-microsoftad-vpcsettings.html#cfn-directoryservice-microsoftad-vpcsettings-subnetids", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "VpcId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-microsoftad-vpcsettings.html#cfn-directoryservice-microsoftad-vpcsettings-vpcid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Lambda::Function.VpcConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html", - "Properties": { - "SecurityGroupIds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html#cfn-lambda-function-vpcconfig-securitygroupids", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "SubnetIds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html#cfn-lambda-function-vpcconfig-subnetids", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::CodePipeline::Pipeline.ActionDeclaration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html", - "Properties": { - "ActionTypeId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-actiontypeid", - "Required": true, - "Type": "ActionTypeId", - "UpdateType": "Mutable" - }, - "Configuration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-configuration", - "PrimitiveType": "Json", - "Required": false, - "UpdateType": "Mutable" - }, - "InputArtifacts": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-inputartifacts", - "DuplicatesAllowed": false, - "ItemType": "InputArtifact", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "OutputArtifacts": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-outputartifacts", - "DuplicatesAllowed": false, - "ItemType": "OutputArtifact", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "RoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-rolearn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "RunOrder": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-runorder", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::LaunchTemplate.InstanceMarketOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions.html", - "Properties": { - "SpotOptions": { - "Type": "SpotOptions", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions", - "UpdateType": "Mutable" - }, - "MarketType": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-markettype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::Batch::JobDefinition.RetryStrategy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-retrystrategy.html", - "Properties": { - "Attempts": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-retrystrategy.html#cfn-batch-jobdefinition-retrystrategy-attempts", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::InstanceGroupConfig.Configuration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-configuration.html", - "Properties": { - "Classification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-configuration.html#cfn-emr-cluster-configuration-classification", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ConfigurationProperties": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-configuration.html#cfn-emr-cluster-configuration-configurationproperties", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Immutable" - }, - "Configurations": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-configuration.html#cfn-emr-cluster-configuration-configurations", - "DuplicatesAllowed": false, - "ItemType": "Configuration", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - } - } - }, - "AWS::Redshift::ClusterParameterGroup.Parameter": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-property-redshift-clusterparametergroup-parameter.html", - "Properties": { - "ParameterName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-property-redshift-clusterparametergroup-parameter.html#cfn-redshift-clusterparametergroup-parameter-parametername", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "ParameterValue": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-property-redshift-clusterparametergroup-parameter.html#cfn-redshift-clusterparametergroup-parameter-parametervalue", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::InstanceFleetConfig.VolumeSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-volumespecification.html", - "Properties": { - "Iops": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-volumespecification.html#cfn-elasticmapreduce-instancefleetconfig-volumespecification-iops", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - }, - "SizeInGB": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-volumespecification.html#cfn-elasticmapreduce-instancefleetconfig-volumespecification-sizeingb", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Immutable" - }, - "VolumeType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-volumespecification.html#cfn-elasticmapreduce-instancefleetconfig-volumespecification-volumetype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::WAF::SqlInjectionMatchSet.SqlInjectionMatchTuple": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sqlinjectionmatchset-sqlinjectionmatchtuples.html", - "Properties": { - "FieldToMatch": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sqlinjectionmatchset-sqlinjectionmatchtuples.html#cfn-waf-sqlinjectionmatchset-sqlinjectionmatchtuples-fieldtomatch", - "Required": true, - "Type": "FieldToMatch", - "UpdateType": "Mutable" - }, - "TextTransformation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sqlinjectionmatchset-sqlinjectionmatchtuples.html#cfn-waf-sqlinjectionmatchset-sqlinjectionmatchtuples-texttransformation", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::Cluster.InstanceGroupConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html", - "Properties": { - "AutoScalingPolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html#cfn-elasticmapreduce-cluster-instancegroupconfig-autoscalingpolicy", - "Required": false, - "Type": "AutoScalingPolicy", - "UpdateType": "Mutable" - }, - "BidPrice": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html#cfn-elasticmapreduce-cluster-instancegroupconfig-bidprice", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Configurations": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html#cfn-elasticmapreduce-cluster-instancegroupconfig-configurations", - "DuplicatesAllowed": false, - "ItemType": "Configuration", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "EbsConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html#cfn-elasticmapreduce-cluster-instancegroupconfig-ebsconfiguration", - "Required": false, - "Type": "EbsConfiguration", - "UpdateType": "Immutable" - }, - "InstanceCount": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html#cfn-elasticmapreduce-cluster-instancegroupconfig-instancecount", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - }, - "InstanceType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html#cfn-elasticmapreduce-cluster-instancegroupconfig-instancetype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Market": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html#cfn-elasticmapreduce-cluster-instancegroupconfig-market", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html#cfn-elasticmapreduce-cluster-instancegroupconfig-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::EC2::LaunchTemplate.CreditSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-creditspecification.html", - "Properties": { - "CpuCredits": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-creditspecification.html#cfn-ec2-launchtemplate-launchtemplatedata-creditspecification-cpucredits", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::Redshift::Cluster.LoggingProperties": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-cluster-loggingproperties.html", - "Properties": { - "BucketName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-cluster-loggingproperties.html#cfn-redshift-cluster-loggingproperties-bucketname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "S3KeyPrefix": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-cluster-loggingproperties.html#cfn-redshift-cluster-loggingproperties-s3keyprefix", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetgroupattribute.html", - "Properties": { - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetgroupattribute.html#cfn-elasticloadbalancingv2-targetgroup-targetgroupattribute-key", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetgroupattribute.html#cfn-elasticloadbalancingv2-targetgroup-targetgroupattribute-value", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.Destination": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-destination.html", - "Properties": { - "BucketAccountId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-destination.html#cfn-s3-bucket-destination-bucketaccountid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "BucketArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-destination.html#cfn-s3-bucket-destination-bucketarn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Format": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-destination.html#cfn-s3-bucket-destination-format", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Prefix": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-destination.html#cfn-s3-bucket-destination-prefix", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::OpsWorks::App.DataSource": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-datasource.html", - "Properties": { - "Arn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-datasource.html#cfn-opsworks-app-datasource-arn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DatabaseName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-datasource.html#cfn-opsworks-app-datasource-databasename", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-datasource.html#cfn-opsworks-app-datasource-type", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.ServerSideEncryptionRule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html", - "Properties": { - "ServerSideEncryptionByDefault": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html#cfn-s3-bucket-serversideencryptionrule-serversideencryptionbydefault", - "Required": false, - "Type": "ServerSideEncryptionByDefault", - "UpdateType": "Mutable" - } - } - }, - "AWS::WAF::WebACL.WafAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-webacl-action.html", - "Properties": { - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-webacl-action.html#cfn-waf-webacl-action-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::WAFRegional::WebACL.Rule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-webacl-rule.html", - "Properties": { - "Action": { - "Type": "Action", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-webacl-rule.html#cfn-wafregional-webacl-rule-action", - "UpdateType": "Mutable" - }, - "Priority": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-webacl-rule.html#cfn-wafregional-webacl-rule-priority", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "RuleId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-webacl-rule.html#cfn-wafregional-webacl-rule-ruleid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::RDS::DBSecurityGroup.Ingress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-security-group-rule.html", - "Properties": { - "CIDRIP": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-security-group-rule.html#cfn-rds-securitygroup-cidrip", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "EC2SecurityGroupId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-security-group-rule.html#cfn-rds-securitygroup-ec2securitygroupid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "EC2SecurityGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-security-group-rule.html#cfn-rds-securitygroup-ec2securitygroupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "EC2SecurityGroupOwnerId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-security-group-rule.html#cfn-rds-securitygroup-ec2securitygroupownerid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::WAF::IPSet.IPSetDescriptor": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-ipset-ipsetdescriptors.html", - "Properties": { - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-ipset-ipsetdescriptors.html#cfn-waf-ipset-ipsetdescriptors-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-ipset-ipsetdescriptors.html#cfn-waf-ipset-ipsetdescriptors-value", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::SES::ReceiptRule.Action": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html", - "Properties": { - "BounceAction": { - "Type": "BounceAction", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html#cfn-ses-receiptrule-action-bounceaction", - "UpdateType": "Mutable" - }, - "S3Action": { - "Type": "S3Action", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html#cfn-ses-receiptrule-action-s3action", - "UpdateType": "Mutable" - }, - "StopAction": { - "Type": "StopAction", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html#cfn-ses-receiptrule-action-stopaction", - "UpdateType": "Mutable" - }, - "SNSAction": { - "Type": "SNSAction", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html#cfn-ses-receiptrule-action-snsaction", - "UpdateType": "Mutable" - }, - "WorkmailAction": { - "Type": "WorkmailAction", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html#cfn-ses-receiptrule-action-workmailaction", - "UpdateType": "Mutable" - }, - "AddHeaderAction": { - "Type": "AddHeaderAction", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html#cfn-ses-receiptrule-action-addheaderaction", - "UpdateType": "Mutable" - }, - "LambdaAction": { - "Type": "LambdaAction", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html#cfn-ses-receiptrule-action-lambdaaction", - "UpdateType": "Mutable" - } - } - }, - "AWS::SSM::Association.InstanceAssociationOutputLocation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-instanceassociationoutputlocation.html", - "Properties": { - "S3Location": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-instanceassociationoutputlocation.html#cfn-ssm-association-instanceassociationoutputlocation-s3location", - "Required": false, - "Type": "S3OutputLocation", - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Partition.StorageDescriptor": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html", - "Properties": { - "StoredAsSubDirectories": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-storedassubdirectories", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "Parameters": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-parameters", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - }, - "BucketColumns": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-bucketcolumns", - "UpdateType": "Mutable" - }, - "SkewedInfo": { - "Type": "SkewedInfo", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-skewedinfo", - "UpdateType": "Mutable" - }, - "InputFormat": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-inputformat", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "NumberOfBuckets": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-numberofbuckets", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "OutputFormat": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-outputformat", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Columns": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-columns", - "ItemType": "Column", - "UpdateType": "Mutable" - }, - "SerdeInfo": { - "Type": "SerdeInfo", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-serdeinfo", - "UpdateType": "Mutable" - }, - "SortColumns": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-sortcolumns", - "ItemType": "Order", - "UpdateType": "Mutable" - }, - "Compressed": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-compressed", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "Location": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-location", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Trigger.Action": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-action.html", - "Properties": { - "JobName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-action.html#cfn-glue-trigger-action-jobname", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Arguments": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-action.html#cfn-glue-trigger-action-arguments", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::Instance.NetworkInterface": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html", - "Properties": { - "AssociatePublicIpAddress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#aws-properties-ec2-network-iface-embedded-associatepubip", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "DeleteOnTermination": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#aws-properties-ec2-network-iface-embedded-delete", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#aws-properties-ec2-network-iface-embedded-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DeviceIndex": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#aws-properties-ec2-network-iface-embedded-deviceindex", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "GroupSet": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#aws-properties-ec2-network-iface-embedded-groupset", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Ipv6AddressCount": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#cfn-ec2-instance-networkinterface-ipv6addresscount", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "Ipv6Addresses": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#cfn-ec2-instance-networkinterface-ipv6addresses", - "DuplicatesAllowed": true, - "ItemType": "InstanceIpv6Address", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "NetworkInterfaceId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#aws-properties-ec2-network-iface-embedded-network-iface", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "PrivateIpAddress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#aws-properties-ec2-network-iface-embedded-privateipaddress", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "PrivateIpAddresses": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#aws-properties-ec2-network-iface-embedded-privateipaddresses", - "DuplicatesAllowed": true, - "ItemType": "PrivateIpAddressSpecification", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "SecondaryPrivateIpAddressCount": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#aws-properties-ec2-network-iface-embedded-secondprivateip", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "SubnetId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#aws-properties-ec2-network-iface-embedded-subnetid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::ApiGateway::Deployment.MethodSetting": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription-methodsetting.html", - "Properties": { - "CacheDataEncrypted": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription-methodsetting.html#cfn-apigateway-deployment-stagedescription-methodsetting-cachedataencrypted", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "CacheTtlInSeconds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription-methodsetting.html#cfn-apigateway-deployment-stagedescription-methodsetting-cachettlinseconds", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "CachingEnabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription-methodsetting.html#cfn-apigateway-deployment-stagedescription-methodsetting-cachingenabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "DataTraceEnabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription-methodsetting.html#cfn-apigateway-deployment-stagedescription-methodsetting-datatraceenabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "HttpMethod": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription-methodsetting.html#cfn-apigateway-deployment-stagedescription-methodsetting-httpmethod", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "LoggingLevel": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription-methodsetting.html#cfn-apigateway-deployment-stagedescription-methodsetting-logginglevel", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "MetricsEnabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription-methodsetting.html#cfn-apigateway-deployment-stagedescription-methodsetting-metricsenabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "ResourcePath": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription-methodsetting.html#cfn-apigateway-deployment-stagedescription-methodsetting-resourcepath", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ThrottlingBurstLimit": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription-methodsetting.html#cfn-apigateway-deployment-stagedescription-methodsetting-throttlingburstlimit", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "ThrottlingRateLimit": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription-methodsetting.html#cfn-apigateway-deployment-stagedescription-methodsetting-throttlingratelimit", - "PrimitiveType": "Double", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::SpotFleet.IamInstanceProfileSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-iaminstanceprofile.html", - "Properties": { - "Arn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-iaminstanceprofile.html#cfn-ec2-spotfleet-iaminstanceprofilespecification-arn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::AutoScalingPlans::ScalingPlan.ApplicationSource": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-applicationsource.html", - "Properties": { - "CloudFormationStackARN": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-applicationsource.html#cfn-autoscalingplans-scalingplan-applicationsource-cloudformationstackarn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "TagFilters": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-applicationsource.html#cfn-autoscalingplans-scalingplan-applicationsource-tagfilters", - "ItemType": "TagFilter", - "UpdateType": "Mutable" - } - } - }, - "AWS::OpsWorks::Layer.VolumeConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-volumeconfiguration.html", - "Properties": { - "Iops": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-volumeconfiguration.html#cfn-opsworks-layer-volconfig-iops", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "MountPoint": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-volumeconfiguration.html#cfn-opsworks-layer-volconfig-mountpoint", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "NumberOfDisks": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-volumeconfiguration.html#cfn-opsworks-layer-volconfig-numberofdisks", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "RaidLevel": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-volumeconfiguration.html#cfn-opsworks-layer-volconfig-raidlevel", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "Size": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-volumeconfiguration.html#cfn-opsworks-layer-volconfig-size", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "VolumeType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-volumeconfiguration.html#cfn-opsworks-layer-volconfig-volumetype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::Cluster.SpotProvisioningSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-spotprovisioningspecification.html", - "Properties": { - "BlockDurationMinutes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-spotprovisioningspecification.html#cfn-elasticmapreduce-cluster-spotprovisioningspecification-blockdurationminutes", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "TimeoutAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-spotprovisioningspecification.html#cfn-elasticmapreduce-cluster-spotprovisioningspecification-timeoutaction", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "TimeoutDurationMinutes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-spotprovisioningspecification.html#cfn-elasticmapreduce-cluster-spotprovisioningspecification-timeoutdurationminutes", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::AutoScaling::ScalingPolicy.MetricDimension": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricdimension.html", - "Properties": { - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricdimension.html#cfn-autoscaling-scalingpolicy-metricdimension-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricdimension.html#cfn-autoscaling-scalingpolicy-metricdimension-value", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::Cluster.BootstrapActionConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-bootstrapactionconfig.html", - "Properties": { - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-bootstrapactionconfig.html#cfn-elasticmapreduce-cluster-bootstrapactionconfig-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "ScriptBootstrapAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-bootstrapactionconfig.html#cfn-elasticmapreduce-cluster-bootstrapactionconfig-scriptbootstrapaction", - "Required": true, - "Type": "ScriptBootstrapActionConfig", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-networkinterfaces.html", - "Properties": { - "AssociatePublicIpAddress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-networkinterfaces.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-associatepublicipaddress", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "DeleteOnTermination": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-networkinterfaces.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-deleteontermination", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-networkinterfaces.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DeviceIndex": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-networkinterfaces.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-deviceindex", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "Groups": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-networkinterfaces.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-groups", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Ipv6AddressCount": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-networkinterfaces.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-ipv6addresscount", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "Ipv6Addresses": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-networkinterfaces.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-ipv6addresses", - "DuplicatesAllowed": false, - "ItemType": "InstanceIpv6Address", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "NetworkInterfaceId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-networkinterfaces.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-networkinterfaceid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "PrivateIpAddresses": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-networkinterfaces.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-privateipaddresses", - "DuplicatesAllowed": false, - "ItemType": "PrivateIpAddressSpecification", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "SecondaryPrivateIpAddressCount": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-networkinterfaces.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-secondaryprivateipaddresscount", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "SubnetId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-networkinterfaces.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-subnetid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-spotprovisioningspecification.html", - "Properties": { - "BlockDurationMinutes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-spotprovisioningspecification.html#cfn-elasticmapreduce-instancefleetconfig-spotprovisioningspecification-blockdurationminutes", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "TimeoutAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-spotprovisioningspecification.html#cfn-elasticmapreduce-instancefleetconfig-spotprovisioningspecification-timeoutaction", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "TimeoutDurationMinutes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-spotprovisioningspecification.html#cfn-elasticmapreduce-instancefleetconfig-spotprovisioningspecification-timeoutdurationminutes", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::WAFRegional::IPSet.IPSetDescriptor": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-ipset-ipsetdescriptor.html", - "Properties": { - "Type": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-ipset-ipsetdescriptor.html#cfn-wafregional-ipset-ipsetdescriptor-type", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Value": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-ipset-ipsetdescriptor.html#cfn-wafregional-ipset-ipsetdescriptor-value", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::TaskDefinition.ContainerDefinition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html", - "Properties": { - "Command": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-command", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "Cpu": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-cpu", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - }, - "DisableNetworking": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-disablenetworking", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "DnsSearchDomains": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-dnssearchdomains", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "DnsServers": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-dnsservers", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "DockerLabels": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-dockerlabels", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Immutable" - }, - "DockerSecurityOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-dockersecurityoptions", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "EntryPoint": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-entrypoint", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "Environment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-environment", - "DuplicatesAllowed": false, - "ItemType": "KeyValuePair", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "Essential": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-essential", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "ExtraHosts": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-extrahosts", - "DuplicatesAllowed": false, - "ItemType": "HostEntry", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "HealthCheck": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-healthcheck", - "Required": false, - "Type": "HealthCheck", - "UpdateType": "Immutable" - }, - "Hostname": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-hostname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Image": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-image", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Links": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-links", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "LinuxParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-linuxparameters", - "Required": false, - "Type": "LinuxParameters", - "UpdateType": "Immutable" - }, - "LogConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-logconfiguration", - "Required": false, - "Type": "LogConfiguration", - "UpdateType": "Immutable" - }, - "Memory": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-memory", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - }, - "MemoryReservation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-memoryreservation", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - }, - "MountPoints": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-mountpoints", - "DuplicatesAllowed": false, - "ItemType": "MountPoint", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "PortMappings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-portmappings", - "DuplicatesAllowed": false, - "ItemType": "PortMapping", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "Privileged": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-privileged", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "ReadonlyRootFilesystem": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-readonlyrootfilesystem", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "Ulimits": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-ulimits", - "DuplicatesAllowed": false, - "ItemType": "Ulimit", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "User": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-user", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "VolumesFrom": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-volumesfrom", - "DuplicatesAllowed": false, - "ItemType": "VolumeFrom", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "WorkingDirectory": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-workingdirectory", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::Batch::JobDefinition.ContainerProperties": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html", - "Properties": { - "MountPoints": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-mountpoints", - "ItemType": "MountPoints", - "UpdateType": "Mutable" - }, - "User": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-user", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Volumes": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-volumes", - "ItemType": "Volumes", - "UpdateType": "Mutable" - }, - "Command": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-command", - "UpdateType": "Mutable" - }, - "Memory": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-memory", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "Privileged": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-privileged", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "Environment": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-environment", - "ItemType": "Environment", - "UpdateType": "Mutable" - }, - "JobRoleArn": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-jobrolearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ReadonlyRootFilesystem": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-readonlyrootfilesystem", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "Ulimits": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-ulimits", - "ItemType": "Ulimit", - "UpdateType": "Mutable" - }, - "Vcpus": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-vcpus", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "Image": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-image", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::GameLift::Fleet.IpPermission": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-ec2inboundpermission.html", - "Properties": { - "FromPort": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-ec2inboundpermission.html#cfn-gamelift-fleet-ec2inboundpermissions-fromport", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - }, - "IpRange": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-ec2inboundpermission.html#cfn-gamelift-fleet-ec2inboundpermissions-iprange", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Protocol": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-ec2inboundpermission.html#cfn-gamelift-fleet-ec2inboundpermissions-protocol", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "ToPort": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-ec2inboundpermission.html#cfn-gamelift-fleet-ec2inboundpermissions-toport", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-deliverychannel-configsnapshotdeliveryproperties.html", - "Properties": { - "DeliveryFrequency": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-deliverychannel-configsnapshotdeliveryproperties.html#cfn-config-deliverychannel-configsnapshotdeliveryproperties-deliveryfrequency", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html", - "Properties": { - "ResourceId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-resourceid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ServiceNamespace": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-servicenamespace", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ScalableDimension": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-scalabledimension", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "MinCapacity": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-mincapacity", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "TargetTrackingConfigurations": { - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-targettrackingconfigurations", - "ItemType": "TargetTrackingConfiguration", - "UpdateType": "Mutable" - }, - "MaxCapacity": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-maxcapacity", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - } - } - }, - "AWS::SSM::MaintenanceWindowTask.MaintenanceWindowLambdaParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowlambdaparameters.html", - "Properties": { - "ClientContext": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowlambdaparameters.html#cfn-ssm-maintenancewindowtask-maintenancewindowlambdaparameters-clientcontext", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Qualifier": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowlambdaparameters.html#cfn-ssm-maintenancewindowtask-maintenancewindowlambdaparameters-qualifier", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Payload": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowlambdaparameters.html#cfn-ssm-maintenancewindowtask-maintenancewindowlambdaparameters-payload", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::IoT::TopicRule.SqsAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sqsaction.html", - "Properties": { - "QueueUrl": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sqsaction.html#cfn-iot-topicrule-sqsaction-queueurl", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "RoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sqsaction.html#cfn-iot-topicrule-sqsaction-rolearn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "UseBase64": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sqsaction.html#cfn-iot-topicrule-sqsaction-usebase64", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::WAF::SqlInjectionMatchSet.FieldToMatch": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples-fieldtomatch.html", - "Properties": { - "Data": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples-fieldtomatch.html#cfn-waf-sizeconstraintset-sizeconstraint-fieldtomatch-data", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples-fieldtomatch.html#cfn-waf-sizeconstraintset-sizeconstraint-fieldtomatch-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-customizedmetricspecification.html", - "Properties": { - "Dimensions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-customizedmetricspecification.html#cfn-autoscaling-scalingpolicy-customizedmetricspecification-dimensions", - "DuplicatesAllowed": false, - "ItemType": "MetricDimension", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "MetricName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-customizedmetricspecification.html#cfn-autoscaling-scalingpolicy-customizedmetricspecification-metricname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Namespace": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-customizedmetricspecification.html#cfn-autoscaling-scalingpolicy-customizedmetricspecification-namespace", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Statistic": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-customizedmetricspecification.html#cfn-autoscaling-scalingpolicy-customizedmetricspecification-statistic", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Unit": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-customizedmetricspecification.html#cfn-autoscaling-scalingpolicy-customizedmetricspecification-unit", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::DataPipeline::Pipeline.ParameterObject": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parameterobjects.html", - "Properties": { - "Attributes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parameterobjects.html#cfn-datapipeline-pipeline-parameterobjects-attributes", - "DuplicatesAllowed": true, - "ItemType": "ParameterAttribute", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "Id": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parameterobjects.html#cfn-datapipeline-pipeline-parameterobjects-id", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::CodePipeline::Pipeline.StageDeclaration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages.html", - "Properties": { - "Actions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages.html#cfn-codepipeline-pipeline-stages-actions", - "DuplicatesAllowed": false, - "ItemType": "ActionDeclaration", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "Blockers": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages.html#cfn-codepipeline-pipeline-stages-blockers", - "DuplicatesAllowed": false, - "ItemType": "BlockerDeclaration", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages.html#cfn-codepipeline-pipeline-stages-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::Cluster.ScalingConstraints": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingconstraints.html", - "Properties": { - "MaxCapacity": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingconstraints.html#cfn-elasticmapreduce-cluster-scalingconstraints-maxcapacity", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - }, - "MinCapacity": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingconstraints.html#cfn-elasticmapreduce-cluster-scalingconstraints-mincapacity", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::InstanceGroupConfig.MetricDimension": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-metricdimension.html", - "Properties": { - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-metricdimension.html#cfn-elasticmapreduce-instancegroupconfig-metricdimension-key", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-metricdimension.html#cfn-elasticmapreduce-instancegroupconfig-metricdimension-value", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::Service.LoadBalancer": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-loadbalancers.html", - "Properties": { - "ContainerName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-loadbalancers.html#cfn-ecs-service-loadbalancers-containername", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ContainerPort": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-loadbalancers.html#cfn-ecs-service-loadbalancers-containerport", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Immutable" - }, - "LoadBalancerName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-loadbalancers.html#cfn-ecs-service-loadbalancers-loadbalancername", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "TargetGroupArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-loadbalancers.html#cfn-ecs-service-loadbalancers-targetgrouparn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::KinesisFirehose::DeliveryStream.EncryptionConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-encryptionconfiguration.html", - "Properties": { - "KMSEncryptionConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-encryptionconfiguration.html#cfn-kinesisfirehose-deliverystream-encryptionconfiguration-kmsencryptionconfig", - "Required": false, - "Type": "KMSEncryptionConfig", - "UpdateType": "Mutable" - }, - "NoEncryptionConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-encryptionconfiguration.html#cfn-kinesisfirehose-deliverystream-encryptionconfiguration-noencryptionconfig", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html", - "Properties": { - "Enabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html#cfn-kinesisfirehose-deliverystream-cloudwatchloggingoptions-enabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "LogGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html#cfn-kinesisfirehose-deliverystream-cloudwatchloggingoptions-loggroupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "LogStreamName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html#cfn-kinesisfirehose-deliverystream-cloudwatchloggingoptions-logstreamname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::TaskDefinition.LogConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-logconfiguration.html", - "Properties": { - "LogDriver": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-logconfiguration.html#cfn-ecs-taskdefinition-containerdefinition-logconfiguration-logdriver", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Options": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-logconfiguration.html#cfn-ecs-taskdefinition-containerdefinition-logconfiguration-options", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Immutable" - } - } - }, - "AWS::ApiGateway::Method.MethodResponse": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-methodresponse.html", - "Properties": { - "ResponseModels": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-methodresponse.html#cfn-apigateway-method-methodresponse-responsemodels", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "ResponseParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-methodresponse.html#cfn-apigateway-method-methodresponse-responseparameters", - "DuplicatesAllowed": false, - "PrimitiveItemType": "Boolean", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "StatusCode": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-methodresponse.html#cfn-apigateway-method-methodresponse-statuscode", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-sourceconfiguration.html", - "Properties": { - "ApplicationName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-sourceconfiguration.html#cfn-elasticbeanstalk-configurationtemplate-sourceconfiguration-applicationname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "TemplateName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-sourceconfiguration.html#cfn-elasticbeanstalk-configurationtemplate-sourceconfiguration-templatename", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::IoT::TopicRule.PutItemInput": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putiteminput.html", - "Properties": { - "TableName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putiteminput.html#cfn-iot-topicrule-putiteminput-tablename", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-notificationconfigurations.html", - "Properties": { - "NotificationTypes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-notificationconfigurations.html#cfn-as-group-notificationconfigurations-notificationtypes", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "TopicARN": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-notificationconfigurations.html#cfn-autoscaling-autoscalinggroup-notificationconfigurations-topicarn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::SES::ReceiptFilter.Filter": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptfilter-filter.html", - "Properties": { - "IpFilter": { - "Type": "IpFilter", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptfilter-filter.html#cfn-ses-receiptfilter-filter-ipfilter", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptfilter-filter.html#cfn-ses-receiptfilter-filter-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-accessloggingpolicy.html", - "Properties": { - "EmitInterval": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-accessloggingpolicy.html#cfn-elb-accessloggingpolicy-emitinterval", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "Enabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-accessloggingpolicy.html#cfn-elb-accessloggingpolicy-enabled", - "PrimitiveType": "Boolean", - "Required": true, - "UpdateType": "Mutable" - }, - "S3BucketName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-accessloggingpolicy.html#cfn-elb-accessloggingpolicy-s3bucketname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "S3BucketPrefix": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-accessloggingpolicy.html#cfn-elb-accessloggingpolicy-s3bucketprefix", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeDeploy::DeploymentGroup.TagFilter": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisesinstancetagfilters.html", - "Properties": { - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisesinstancetagfilters.html#cfn-properties-codedeploy-deploymentgroup-onpremisesinstancetagfilters-key", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisesinstancetagfilters.html#cfn-properties-codedeploy-deploymentgroup-onpremisesinstancetagfilters-type", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisesinstancetagfilters.html#cfn-properties-codedeploy-deploymentgroup-onpremisesinstancetagfilters-value", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisAnalytics::ApplicationOutput.KinesisStreamsOutput": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-kinesisstreamsoutput.html", - "Properties": { - "ResourceARN": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-kinesisstreamsoutput.html#cfn-kinesisanalytics-applicationoutput-kinesisstreamsoutput-resourcearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "RoleARN": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-kinesisstreamsoutput.html#cfn-kinesisanalytics-applicationoutput-kinesisstreamsoutput-rolearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::SpotFleet.SpotFleetTagSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-tagspecifications.html", - "Properties": { - "ResourceType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-tagspecifications.html#cfn-ec2-spotfleet-spotfleettagspecification-resourcetype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::SpotFleet.PrivateIpAddressSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-networkinterfaces-privateipaddresses.html", - "Properties": { - "Primary": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-networkinterfaces-privateipaddresses.html#cfn-ec2-spotfleet-privateipaddressspecification-primary", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "PrivateIpAddress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-networkinterfaces-privateipaddresses.html#cfn-ec2-spotfleet-privateipaddressspecification-privateipaddress", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::TaskDefinition.Device": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-device.html", - "Properties": { - "ContainerPath": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-device.html#cfn-ecs-taskdefinition-device-containerpath", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "HostPath": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-device.html#cfn-ecs-taskdefinition-device-hostpath", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Permissions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-device.html#cfn-ecs-taskdefinition-device-permissions", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - } - } - }, - "AWS::EC2::LaunchTemplate.Monitoring": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-monitoring.html", - "Properties": { - "Enabled": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-monitoring.html#cfn-ec2-launchtemplate-launchtemplatedata-monitoring-enabled", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticLoadBalancingV2::Listener.Action": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-defaultactions.html", - "Properties": { - "TargetGroupArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-defaultactions.html#cfn-elasticloadbalancingv2-listener-defaultactions-targetgrouparn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-defaultactions.html#cfn-elasticloadbalancingv2-listener-defaultactions-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Partition.Order": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-order.html", - "Properties": { - "Column": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-order.html#cfn-glue-partition-order-column", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "SortOrder": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-order.html#cfn-glue-partition-order-sortorder", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Job.JobCommand": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-jobcommand.html", - "Properties": { - "ScriptLocation": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-jobcommand.html#cfn-glue-job-jobcommand-scriptlocation", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-jobcommand.html#cfn-glue-job-jobcommand-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::ServiceDiscovery::Service.DnsConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsconfig.html", - "Properties": { - "DnsRecords": { - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsconfig.html#cfn-servicediscovery-service-dnsconfig-dnsrecords", - "ItemType": "DnsRecord", - "UpdateType": "Mutable" - }, - "NamespaceId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsconfig.html#cfn-servicediscovery-service-dnsconfig-namespaceid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::ApiGateway::Method.Integration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html", - "Properties": { - "CacheKeyParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-cachekeyparameters", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "CacheNamespace": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-cachenamespace", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ContentHandling": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-contenthandling", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Credentials": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-credentials", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "IntegrationHttpMethod": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-integrationhttpmethod", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "IntegrationResponses": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-integrationresponses", - "DuplicatesAllowed": false, - "ItemType": "IntegrationResponse", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "PassthroughBehavior": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-passthroughbehavior", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "RequestParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-requestparameters", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "RequestTemplates": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-requesttemplates", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-type", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Uri": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-uri", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Batch::JobDefinition.Timeout": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-timeout.html", - "Properties": { - "AttemptDurationSeconds": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-timeout.html#cfn-batch-jobdefinition-timeout-attemptdurationseconds", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - } - } - }, - "AWS::IoT::TopicRule.RepublishAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-republishaction.html", - "Properties": { - "RoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-republishaction.html#cfn-iot-topicrule-republishaction-rolearn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Topic": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-republishaction.html#cfn-iot-topicrule-republishaction-topic", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisAnalytics::ApplicationOutput.Output": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-output.html", - "Properties": { - "DestinationSchema": { - "Type": "DestinationSchema", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-output.html#cfn-kinesisanalytics-applicationoutput-output-destinationschema", - "UpdateType": "Mutable" - }, - "LambdaOutput": { - "Type": "LambdaOutput", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-output.html#cfn-kinesisanalytics-applicationoutput-output-lambdaoutput", - "UpdateType": "Mutable" - }, - "KinesisFirehoseOutput": { - "Type": "KinesisFirehoseOutput", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-output.html#cfn-kinesisanalytics-applicationoutput-output-kinesisfirehoseoutput", - "UpdateType": "Mutable" - }, - "KinesisStreamsOutput": { - "Type": "KinesisStreamsOutput", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-output.html#cfn-kinesisanalytics-applicationoutput-output-kinesisstreamsoutput", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-output.html#cfn-kinesisanalytics-applicationoutput-output-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::EMR::Cluster.InstanceFleetConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetconfig.html", - "Properties": { - "InstanceTypeConfigs": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetconfig.html#cfn-elasticmapreduce-cluster-instancefleetconfig-instancetypeconfigs", - "DuplicatesAllowed": false, - "ItemType": "InstanceTypeConfig", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "LaunchSpecifications": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetconfig.html#cfn-elasticmapreduce-cluster-instancefleetconfig-launchspecifications", - "Required": false, - "Type": "InstanceFleetProvisioningSpecifications", - "UpdateType": "Immutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetconfig.html#cfn-elasticmapreduce-cluster-instancefleetconfig-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "TargetOnDemandCapacity": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetconfig.html#cfn-elasticmapreduce-cluster-instancefleetconfig-targetondemandcapacity", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "TargetSpotCapacity": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetconfig.html#cfn-elasticmapreduce-cluster-instancefleetconfig-targetspotcapacity", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Table.SkewedInfo": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-skewedinfo.html", - "Properties": { - "SkewedColumnNames": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-skewedinfo.html#cfn-glue-table-skewedinfo-skewedcolumnnames", - "UpdateType": "Mutable" - }, - "SkewedColumnValues": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-skewedinfo.html#cfn-glue-table-skewedinfo-skewedcolumnvalues", - "UpdateType": "Mutable" - }, - "SkewedColumnValueLocationMaps": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-skewedinfo.html#cfn-glue-table-skewedinfo-skewedcolumnvaluelocationmaps", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processingconfiguration.html", - "Properties": { - "Enabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processingconfiguration.html#cfn-kinesisfirehose-deliverystream-processingconfiguration-enabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Processors": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processingconfiguration.html#cfn-kinesisfirehose-deliverystream-processingconfiguration-processors", - "DuplicatesAllowed": false, - "ItemType": "Processor", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::ServiceDiscovery::Service.DnsRecord": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsrecord.html", - "Properties": { - "Type": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsrecord.html#cfn-servicediscovery-service-dnsrecord-type", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "TTL": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsrecord.html#cfn-servicediscovery-service-dnsrecord-ttl", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::DynamoDB::Table.LocalSecondaryIndex": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-lsi.html", - "Properties": { - "IndexName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-lsi.html#cfn-dynamodb-lsi-indexname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "KeySchema": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-lsi.html#cfn-dynamodb-lsi-keyschema", - "DuplicatesAllowed": false, - "ItemType": "KeySchema", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "Projection": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-lsi.html#cfn-dynamodb-lsi-projection", - "Required": true, - "Type": "Projection", - "UpdateType": "Mutable" - } - } - }, - "AWS::Config::ConfigRule.Scope": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-scope.html", - "Properties": { - "ComplianceResourceId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-scope.html#cfn-config-configrule-scope-complianceresourceid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ComplianceResourceTypes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-scope.html#cfn-config-configrule-scope-complianceresourcetypes", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "TagKey": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-scope.html#cfn-config-configrule-scope-tagkey", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "TagValue": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-scope.html#cfn-config-configrule-scope-tagvalue", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::Cluster.JobFlowInstancesConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html", - "Properties": { - "AdditionalMasterSecurityGroups": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-additionalmastersecuritygroups", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "AdditionalSlaveSecurityGroups": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-additionalslavesecuritygroups", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "CoreInstanceFleet": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-coreinstancefleet", - "Required": false, - "Type": "InstanceFleetConfig", - "UpdateType": "Immutable" - }, - "CoreInstanceGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-coreinstancegroup", - "Required": false, - "Type": "InstanceGroupConfig", - "UpdateType": "Immutable" - }, - "Ec2KeyName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-ec2keyname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Ec2SubnetId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-ec2subnetid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "EmrManagedMasterSecurityGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-emrmanagedmastersecuritygroup", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "EmrManagedSlaveSecurityGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-emrmanagedslavesecuritygroup", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "HadoopVersion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-hadoopversion", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "MasterInstanceFleet": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-masterinstancefleet", - "Required": false, - "Type": "InstanceFleetConfig", - "UpdateType": "Immutable" - }, - "MasterInstanceGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-masterinstancegroup", - "Required": false, - "Type": "InstanceGroupConfig", - "UpdateType": "Immutable" - }, - "Placement": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-placement", - "Required": false, - "Type": "PlacementType", - "UpdateType": "Immutable" - }, - "ServiceAccessSecurityGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-serviceaccesssecuritygroup", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "TerminationProtected": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-terminationprotected", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html", - "Properties": { - "PreSharedKey": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html#cfn-ec2-vpnconnection-vpntunneloptionsspecification-presharedkey", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "TunnelInsideCidr": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html#cfn-ec2-vpnconnection-vpntunneloptionsspecification-tunnelinsidecidr", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::CloudFront::Distribution.ForwardedValues": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-forwardedvalues.html", - "Properties": { - "Cookies": { - "Type": "Cookies", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-forwardedvalues.html#cfn-cloudfront-distribution-forwardedvalues-cookies", - "UpdateType": "Mutable" - }, - "Headers": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-forwardedvalues.html#cfn-cloudfront-distribution-forwardedvalues-headers", - "UpdateType": "Mutable" - }, - "QueryString": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-forwardedvalues.html#cfn-cloudfront-distribution-forwardedvalues-querystring", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "QueryStringCacheKeys": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-forwardedvalues.html#cfn-cloudfront-distribution-forwardedvalues-querystringcachekeys", - "UpdateType": "Mutable" - } - } - }, - "AWS::WAF::XssMatchSet.FieldToMatch": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-xssmatchset-xssmatchtuple-fieldtomatch.html", - "Properties": { - "Data": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-xssmatchset-xssmatchtuple-fieldtomatch.html#cfn-waf-xssmatchset-xssmatchtuple-fieldtomatch-data", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-xssmatchset-xssmatchtuple-fieldtomatch.html#cfn-waf-xssmatchset-xssmatchtuple-fieldtomatch-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::ApiGateway::Method.IntegrationResponse": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration-integrationresponse.html", - "Properties": { - "ContentHandling": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration-integrationresponse.html#cfn-apigateway-method-integrationresponse-contenthandling", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ResponseParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration-integrationresponse.html#cfn-apigateway-method-integration-integrationresponse-responseparameters", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "ResponseTemplates": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration-integrationresponse.html#cfn-apigateway-method-integration-integrationresponse-responsetemplates", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "SelectionPattern": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration-integrationresponse.html#cfn-apigateway-method-integration-integrationresponse-selectionpattern", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "StatusCode": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration-integrationresponse.html#cfn-apigateway-method-integration-integrationresponse-statuscode", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Route53::HealthCheck.HealthCheckConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html", - "Properties": { - "AlarmIdentifier": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-alarmidentifier", - "Required": false, - "Type": "AlarmIdentifier", - "UpdateType": "Mutable" - }, - "ChildHealthChecks": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-childhealthchecks", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "EnableSNI": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-enablesni", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "FailureThreshold": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-failurethreshold", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "FullyQualifiedDomainName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-fullyqualifieddomainname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "HealthThreshold": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-healththreshold", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "IPAddress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-ipaddress", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "InsufficientDataHealthStatus": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-insufficientdatahealthstatus", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Inverted": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-inverted", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "MeasureLatency": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-measurelatency", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "Port": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-port", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "Regions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-regions", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "RequestInterval": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-requestinterval", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - }, - "ResourcePath": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-resourcepath", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "SearchString": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-searchstring", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::EMR::Cluster.ScalingAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingaction.html", - "Properties": { - "Market": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingaction.html#cfn-elasticmapreduce-cluster-scalingaction-market", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "SimpleScalingPolicyConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingaction.html#cfn-elasticmapreduce-cluster-scalingaction-simplescalingpolicyconfiguration", - "Required": true, - "Type": "SimpleScalingPolicyConfiguration", - "UpdateType": "Mutable" - } - } - }, - "AWS::Budgets::Budget.Subscriber": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-subscriber.html", - "Properties": { - "SubscriptionType": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-subscriber.html#cfn-budgets-budget-subscriber-subscriptiontype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Address": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-subscriber.html#cfn-budgets-budget-subscriber-address", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::IoT::TopicRule.SnsAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-snsaction.html", - "Properties": { - "MessageFormat": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-snsaction.html#cfn-iot-topicrule-snsaction-messageformat", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "RoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-snsaction.html#cfn-iot-topicrule-snsaction-rolearn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "TargetArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-snsaction.html#cfn-iot-topicrule-snsaction-targetarn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::SpotFleet.SpotFleetLaunchSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html", - "Properties": { - "BlockDeviceMappings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-blockdevicemappings", - "DuplicatesAllowed": false, - "ItemType": "BlockDeviceMapping", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "EbsOptimized": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-ebsoptimized", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "IamInstanceProfile": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-iaminstanceprofile", - "Required": false, - "Type": "IamInstanceProfileSpecification", - "UpdateType": "Mutable" - }, - "ImageId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-imageid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "InstanceType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-instancetype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "KernelId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-kernelid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "KeyName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-keyname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Monitoring": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-monitoring", - "Required": false, - "Type": "SpotFleetMonitoring", - "UpdateType": "Mutable" - }, - "NetworkInterfaces": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-networkinterfaces", - "DuplicatesAllowed": false, - "ItemType": "InstanceNetworkInterfaceSpecification", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Placement": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-placement", - "Required": false, - "Type": "SpotPlacement", - "UpdateType": "Mutable" - }, - "RamdiskId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-ramdiskid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "SecurityGroups": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-securitygroups", - "DuplicatesAllowed": false, - "ItemType": "GroupIdentifier", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "SpotPrice": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-spotprice", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "SubnetId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-subnetid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "TagSpecifications": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-tagspecifications", - "DuplicatesAllowed": false, - "ItemType": "SpotFleetTagSpecification", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "UserData": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-userdata", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "WeightedCapacity": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-weightedcapacity", - "PrimitiveType": "Double", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::TaskDefinition.KeyValuePair": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-environment.html", - "Properties": { - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-environment.html#cfn-ecs-taskdefinition-containerdefinition-environment-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-environment.html#cfn-ecs-taskdefinition-containerdefinition-environment-value", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::CloudFront::Distribution.CacheBehavior": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html", - "Properties": { - "Compress": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-compress", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "LambdaFunctionAssociations": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-lambdafunctionassociations", - "ItemType": "LambdaFunctionAssociation", - "UpdateType": "Mutable" - }, - "TargetOriginId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-targetoriginid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ViewerProtocolPolicy": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-viewerprotocolpolicy", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "TrustedSigners": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-trustedsigners", - "UpdateType": "Mutable" - }, - "DefaultTTL": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-defaultttl", - "PrimitiveType": "Double", - "UpdateType": "Mutable" - }, - "AllowedMethods": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-allowedmethods", - "UpdateType": "Mutable" - }, - "PathPattern": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-pathpattern", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "CachedMethods": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-cachedmethods", - "UpdateType": "Mutable" - }, - "SmoothStreaming": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-smoothstreaming", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "ForwardedValues": { - "Type": "ForwardedValues", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-forwardedvalues", - "UpdateType": "Mutable" - }, - "MinTTL": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-minttl", - "PrimitiveType": "Double", - "UpdateType": "Mutable" - }, - "MaxTTL": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-maxttl", - "PrimitiveType": "Double", - "UpdateType": "Mutable" - } - } - }, - "AWS::DirectoryService::SimpleAD.VpcSettings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-simplead-vpcsettings.html", - "Properties": { - "SubnetIds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-simplead-vpcsettings.html#cfn-directoryservice-simplead-vpcsettings-subnetids", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "VpcId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-simplead-vpcsettings.html#cfn-directoryservice-simplead-vpcsettings-vpcid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::CodePipeline::Pipeline.BlockerDeclaration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-blockers.html", - "Properties": { - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-blockers.html#cfn-codepipeline-pipeline-stages-blockers-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-blockers.html#cfn-codepipeline-pipeline-stages-blockers-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::GuardDuty::Filter.FindingCriteria": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-findingcriteria.html", - "Properties": { - "Criterion": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-findingcriteria.html#cfn-guardduty-filter-findingcriteria-criterion", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - }, - "ItemType": { - "Type": "Condition", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-findingcriteria.html#cfn-guardduty-filter-findingcriteria-itemtype", - "UpdateType": "Mutable" - } - } - }, - "AWS::Elasticsearch::Domain.ElasticsearchClusterConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html", - "Properties": { - "DedicatedMasterCount": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticseachclusterconfig-dedicatedmastercount", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "DedicatedMasterEnabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticseachclusterconfig-dedicatedmasterenabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "DedicatedMasterType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticseachclusterconfig-dedicatedmastertype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "InstanceCount": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticseachclusterconfig-instancecount", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "InstanceType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticseachclusterconfig-instnacetype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ZoneAwarenessEnabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticseachclusterconfig-zoneawarenessenabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Lambda::Function.DeadLetterConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html", - "Properties": { - "TargetArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html#cfn-lambda-function-deadletterconfig-targetarn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::CodePipeline::CustomActionType.Settings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-settings.html", - "Properties": { - "EntityUrlTemplate": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-settings.html#cfn-codepipeline-customactiontype-settings-entityurltemplate", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ExecutionUrlTemplate": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-settings.html#cfn-codepipeline-customactiontype-settings-executionurltemplate", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "RevisionUrlTemplate": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-settings.html#cfn-codepipeline-customactiontype-settings-revisionurltemplate", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ThirdPartyConfigurationUrl": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-settings.html#cfn-codepipeline-customactiontype-settings-thirdpartyconfigurationurl", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.AnalyticsConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-analyticsconfiguration.html", - "Properties": { - "Id": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-analyticsconfiguration.html#cfn-s3-bucket-analyticsconfiguration-id", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Prefix": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-analyticsconfiguration.html#cfn-s3-bucket-analyticsconfiguration-prefix", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "StorageClassAnalysis": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-analyticsconfiguration.html#cfn-s3-bucket-analyticsconfiguration-storageclassanalysis", - "Required": true, - "Type": "StorageClassAnalysis", - "UpdateType": "Mutable" - }, - "TagFilters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-analyticsconfiguration.html#cfn-s3-bucket-analyticsconfiguration-tagfilters", - "DuplicatesAllowed": false, - "ItemType": "TagFilter", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::Budgets::Budget.Notification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notification.html", - "Properties": { - "ComparisonOperator": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notification.html#cfn-budgets-budget-notification-comparisonoperator", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "NotificationType": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notification.html#cfn-budgets-budget-notification-notificationtype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Threshold": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notification.html#cfn-budgets-budget-notification-threshold", - "PrimitiveType": "Double", - "UpdateType": "Mutable" - }, - "ThresholdType": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notification.html#cfn-budgets-budget-notification-thresholdtype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-targettrackingconfiguration.html", - "Properties": { - "ScaleOutCooldown": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-targettrackingconfiguration.html#cfn-autoscalingplans-scalingplan-targettrackingconfiguration-scaleoutcooldown", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "TargetValue": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-targettrackingconfiguration.html#cfn-autoscalingplans-scalingplan-targettrackingconfiguration-targetvalue", - "PrimitiveType": "Double", - "UpdateType": "Mutable" - }, - "PredefinedScalingMetricSpecification": { - "Type": "PredefinedScalingMetricSpecification", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-targettrackingconfiguration.html#cfn-autoscalingplans-scalingplan-targettrackingconfiguration-predefinedscalingmetricspecification", - "UpdateType": "Mutable" - }, - "DisableScaleIn": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-targettrackingconfiguration.html#cfn-autoscalingplans-scalingplan-targettrackingconfiguration-disablescalein", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "ScaleInCooldown": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-targettrackingconfiguration.html#cfn-autoscalingplans-scalingplan-targettrackingconfiguration-scaleincooldown", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "EstimatedInstanceWarmup": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-targettrackingconfiguration.html#cfn-autoscalingplans-scalingplan-targettrackingconfiguration-estimatedinstancewarmup", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "CustomizedScalingMetricSpecification": { - "Type": "CustomizedScalingMetricSpecification", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-targettrackingconfiguration.html#cfn-autoscalingplans-scalingplan-targettrackingconfiguration-customizedscalingmetricspecification", - "UpdateType": "Mutable" - } - } - }, - "AWS::GameLift::Alias.RoutingStrategy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-alias-routingstrategy.html", - "Properties": { - "FleetId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-alias-routingstrategy.html#cfn-gamelift-alias-routingstrategy-fleetid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Message": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-alias-routingstrategy.html#cfn-gamelift-alias-routingstrategy-message", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-alias-routingstrategy.html#cfn-gamelift-alias-routingstrategy-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-metricdimension.html", - "Properties": { - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-metricdimension.html#cfn-applicationautoscaling-scalingpolicy-metricdimension-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-metricdimension.html#cfn-applicationautoscaling-scalingpolicy-metricdimension-value", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::SSM::MaintenanceWindowTask.NotificationConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-notificationconfig.html", - "Properties": { - "NotificationArn": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-notificationconfig.html#cfn-ssm-maintenancewindowtask-notificationconfig-notificationarn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "NotificationType": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-notificationconfig.html#cfn-ssm-maintenancewindowtask-notificationconfig-notificationtype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "NotificationEvents": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-notificationconfig.html#cfn-ssm-maintenancewindowtask-notificationconfig-notificationevents", - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::InstanceFleetConfig.Configuration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-configuration.html", - "Properties": { - "Classification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-configuration.html#cfn-elasticmapreduce-instancefleetconfig-configuration-classification", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ConfigurationProperties": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-configuration.html#cfn-elasticmapreduce-instancefleetconfig-configuration-configurationproperties", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Immutable" - }, - "Configurations": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-configuration.html#cfn-elasticmapreduce-instancefleetconfig-configuration-configurations", - "DuplicatesAllowed": false, - "ItemType": "Configuration", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - } - } - }, - "AWS::Cognito::UserPoolUser.AttributeType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpooluser-attributetype.html", - "Properties": { - "Value": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpooluser-attributetype.html#cfn-cognito-userpooluser-attributetype-value", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpooluser-attributetype.html#cfn-cognito-userpooluser-attributetype-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Table.StorageDescriptor": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html", - "Properties": { - "StoredAsSubDirectories": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-storedassubdirectories", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "Parameters": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-parameters", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - }, - "BucketColumns": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-bucketcolumns", - "UpdateType": "Mutable" - }, - "SkewedInfo": { - "Type": "SkewedInfo", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-skewedinfo", - "UpdateType": "Mutable" - }, - "InputFormat": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-inputformat", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "NumberOfBuckets": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-numberofbuckets", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "OutputFormat": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-outputformat", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Columns": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-columns", - "ItemType": "Column", - "UpdateType": "Mutable" - }, - "SerdeInfo": { - "Type": "SerdeInfo", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-serdeinfo", - "UpdateType": "Mutable" - }, - "SortColumns": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-sortcolumns", - "ItemType": "Order", - "UpdateType": "Mutable" - }, - "Compressed": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-compressed", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "Location": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-location", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::IAM::User.LoginProfile": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user-loginprofile.html", - "Properties": { - "Password": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user-loginprofile.html#cfn-iam-user-loginprofile-password", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "PasswordResetRequired": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user-loginprofile.html#cfn-iam-user-loginprofile-passwordresetrequired", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.SourceSelectionCriteria": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-sourceselectioncriteria.html", - "Properties": { - "SseKmsEncryptedObjects": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-sourceselectioncriteria.html#cfn-s3-bucket-sourceselectioncriteria-ssekmsencryptedobjects", - "Required": true, - "Type": "SseKmsEncryptedObjects", - "UpdateType": "Mutable" - } - } - }, - "AWS::ApiGateway::Stage.MethodSetting": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-stage-methodsetting.html", - "Properties": { - "CacheDataEncrypted": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-cachedataencrypted", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "CacheTtlInSeconds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-cachettlinseconds", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "CachingEnabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-cachingenabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "DataTraceEnabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-datatraceenabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "HttpMethod": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-httpmethod", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "LoggingLevel": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-logginglevel", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "MetricsEnabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-metricsenabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "ResourcePath": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-resourcepath", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ThrottlingBurstLimit": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-throttlingburstlimit", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "ThrottlingRateLimit": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-throttlingratelimit", - "PrimitiveType": "Double", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::DynamoDB::Table.ProvisionedThroughput": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html", - "Properties": { - "ReadCapacityUnits": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html#cfn-dynamodb-provisionedthroughput-readcapacityunits", - "PrimitiveType": "Long", - "Required": true, - "UpdateType": "Mutable" - }, - "WriteCapacityUnits": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html#cfn-dynamodb-provisionedthroughput-writecapacityunits", - "PrimitiveType": "Long", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Budgets::Budget.BudgetData": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-budgetdata.html", - "Properties": { - "BudgetLimit": { - "Type": "Spend", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-budgetdata.html#cfn-budgets-budget-budgetdata-budgetlimit", - "UpdateType": "Mutable" - }, - "TimePeriod": { - "Type": "TimePeriod", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-budgetdata.html#cfn-budgets-budget-budgetdata-timeperiod", - "UpdateType": "Mutable" - }, - "TimeUnit": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-budgetdata.html#cfn-budgets-budget-budgetdata-timeunit", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "CostFilters": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-budgetdata.html#cfn-budgets-budget-budgetdata-costfilters", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - }, - "BudgetName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-budgetdata.html#cfn-budgets-budget-budgetdata-budgetname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "CostTypes": { - "Type": "CostTypes", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-budgetdata.html#cfn-budgets-budget-budgetdata-costtypes", - "UpdateType": "Mutable" - }, - "BudgetType": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-budgetdata.html#cfn-budgets-budget-budgetdata-budgettype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::SSM::PatchBaseline.RuleGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-rulegroup.html", - "Properties": { - "PatchRules": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-rulegroup.html#cfn-ssm-patchbaseline-rulegroup-patchrules", - "ItemType": "Rule", - "UpdateType": "Mutable" - } - } - }, - "AWS::OpsWorks::Stack.Source": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-source.html", - "Properties": { - "Password": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-source.html#cfn-opsworks-custcookbooksource-password", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Revision": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-source.html#cfn-opsworks-custcookbooksource-revision", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "SshKey": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-source.html#cfn-opsworks-custcookbooksource-sshkey", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-source.html#cfn-opsworks-custcookbooksource-type", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Url": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-source.html#cfn-opsworks-custcookbooksource-url", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Username": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-source.html#cfn-opsworks-custcookbooksource-username", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::LaunchTemplate.Placement": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-placement.html", - "Properties": { - "GroupName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-placement.html#cfn-ec2-launchtemplate-launchtemplatedata-placement-groupname", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Tenancy": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-placement.html#cfn-ec2-launchtemplate-launchtemplatedata-placement-tenancy", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "AvailabilityZone": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-placement.html#cfn-ec2-launchtemplate-launchtemplatedata-placement-availabilityzone", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Affinity": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-placement.html#cfn-ec2-launchtemplate-launchtemplatedata-placement-affinity", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "HostId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-placement.html#cfn-ec2-launchtemplate-launchtemplatedata-placement-hostid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectionsettings.html", - "Properties": { - "IdleTimeout": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectionsettings.html#cfn-elb-connectionsettings-idletimeout", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.LoggingConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-loggingconfig.html", - "Properties": { - "DestinationBucketName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-loggingconfig.html#cfn-s3-bucket-loggingconfig-destinationbucketname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "LogFilePrefix": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-loggingconfig.html#cfn-s3-bucket-loggingconfig-logfileprefix", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.StorageClassAnalysis": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-storageclassanalysis.html", - "Properties": { - "DataExport": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-storageclassanalysis.html#cfn-s3-bucket-storageclassanalysis-dataexport", - "Required": false, - "Type": "DataExport", - "UpdateType": "Mutable" - } - } - }, - "AWS::Config::ConfigurationRecorder.RecordingGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationrecorder-recordinggroup.html", - "Properties": { - "AllSupported": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationrecorder-recordinggroup.html#cfn-config-configurationrecorder-recordinggroup-allsupported", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "IncludeGlobalResourceTypes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationrecorder-recordinggroup.html#cfn-config-configurationrecorder-recordinggroup-includeglobalresourcetypes", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "ResourceTypes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationrecorder-recordinggroup.html#cfn-config-configurationrecorder-recordinggroup-resourcetypes", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::ApiGateway::UsagePlan.ApiStage": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-apistage.html", - "Properties": { - "ApiId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-apistage.html#cfn-apigateway-usageplan-apistage-apiid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Stage": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-apistage.html#cfn-apigateway-usageplan-apistage-stage", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.RoutingRule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html", - "Properties": { - "RedirectRule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html#cfn-s3-websiteconfiguration-routingrules-redirectrule", - "Required": true, - "Type": "RedirectRule", - "UpdateType": "Mutable" - }, - "RoutingRuleCondition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html#cfn-s3-websiteconfiguration-routingrules-routingrulecondition", - "Required": false, - "Type": "RoutingRuleCondition", - "UpdateType": "Mutable" - } - } - }, - "AWS::WAF::WebACL.ActivatedRule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-webacl-rules.html", - "Properties": { - "Action": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-webacl-rules.html#cfn-waf-webacl-rules-action", - "Required": true, - "Type": "WafAction", - "UpdateType": "Mutable" - }, - "Priority": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-webacl-rules.html#cfn-waf-webacl-rules-priority", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - }, - "RuleId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-webacl-rules.html#cfn-waf-webacl-rules-ruleid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Route53::RecordSet.GeoLocation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geolocation.html", - "Properties": { - "ContinentCode": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geolocation.html#cfn-route53-recordset-geolocation-continentcode", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "CountryCode": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geolocation.html#cfn-route53-recordset-geolocation-countrycode", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "SubdivisionCode": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geolocation.html#cfn-route53-recordset-geolocation-subdivisioncode", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudFront::StreamingDistribution.TrustedSigners": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-trustedsigners.html", - "Properties": { - "Enabled": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-trustedsigners.html#cfn-cloudfront-streamingdistribution-trustedsigners-enabled", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "AwsAccountNumbers": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-trustedsigners.html#cfn-cloudfront-streamingdistribution-trustedsigners-awsaccountnumbers", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::LaunchTemplate.BlockDeviceMapping": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping.html", - "Properties": { - "Ebs": { - "Type": "Ebs", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping.html#cfn-ec2-launchtemplate-blockdevicemapping-ebs", - "UpdateType": "Mutable" - }, - "NoDevice": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping.html#cfn-ec2-launchtemplate-blockdevicemapping-nodevice", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "VirtualName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping.html#cfn-ec2-launchtemplate-blockdevicemapping-virtualname", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DeviceName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping.html#cfn-ec2-launchtemplate-blockdevicemapping-devicename", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationresourcelifecycleconfig.html", - "Properties": { - "ServiceRole": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationresourcelifecycleconfig.html#cfn-elasticbeanstalk-application-applicationresourcelifecycleconfig-servicerole", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "VersionLifecycleConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationresourcelifecycleconfig.html#cfn-elasticbeanstalk-application-applicationresourcelifecycleconfig-versionlifecycleconfig", - "Required": false, - "Type": "ApplicationVersionLifecycleConfig", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::LaunchTemplate.SpotOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions.html", - "Properties": { - "SpotInstanceType": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions-spotinstancetype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "InstanceInterruptionBehavior": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions-instanceinterruptionbehavior", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "MaxPrice": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions-maxprice", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisFirehose::DeliveryStream.BufferingHints": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-bufferinghints.html", - "Properties": { - "IntervalInSeconds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-bufferinghints.html#cfn-kinesisfirehose-deliverystream-bufferinghints-intervalinseconds", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - }, - "SizeInMBs": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-bufferinghints.html#cfn-kinesisfirehose-deliverystream-bufferinghints-sizeinmbs", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisFirehose::DeliveryStream.SplunkRetryOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkretryoptions.html", - "Properties": { - "DurationInSeconds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkretryoptions.html#cfn-kinesisfirehose-deliverystream-splunkretryoptions-durationinseconds", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.AccessControlTranslation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accesscontroltranslation.html", - "Properties": { - "Owner": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accesscontroltranslation.html#cfn-s3-bucket-accesscontroltranslation-owner", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predefinedmetricspecification.html", - "Properties": { - "PredefinedMetricType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predefinedmetricspecification.html#cfn-autoscaling-scalingpolicy-predefinedmetricspecification-predefinedmetrictype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "ResourceLabel": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predefinedmetricspecification.html#cfn-autoscaling-scalingpolicy-predefinedmetricspecification-resourcelabel", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::WAFRegional::Rule.Predicate": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-rule-predicate.html", - "Properties": { - "Type": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-rule-predicate.html#cfn-wafregional-rule-predicate-type", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DataId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-rule-predicate.html#cfn-wafregional-rule-predicate-dataid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Negated": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-rule-predicate.html#cfn-wafregional-rule-predicate-negated", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Job.ConnectionsList": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-connectionslist.html", - "Properties": { - "Connections": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-connectionslist.html#cfn-glue-job-connectionslist-connections", - "UpdateType": "Mutable" - } - } - }, - "AWS::ApiGateway::DomainName.EndpointConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-endpointconfiguration.html", - "Properties": { - "Types": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-endpointconfiguration.html#cfn-apigateway-domainname-endpointconfiguration-types", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::SSM::Association.Target": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-target.html", - "Properties": { - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-target.html#cfn-ssm-association-target-key", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Values": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-target.html#cfn-ssm-association-target-values", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": true, - "Type": "List", - "UpdateType": "Immutable" - } - } - }, - "AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html", - "Properties": { - "MetricIntervalLowerBound": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment-metricintervallowerbound", - "PrimitiveType": "Double", - "Required": false, - "UpdateType": "Mutable" - }, - "MetricIntervalUpperBound": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment-metricintervalupperbound", - "PrimitiveType": "Double", - "Required": false, - "UpdateType": "Mutable" - }, - "ScalingAdjustment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment-scalingadjustment", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::CodePipeline::Pipeline.StageTransition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-disableinboundstagetransitions.html", - "Properties": { - "Reason": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-disableinboundstagetransitions.html#cfn-codepipeline-pipeline-disableinboundstagetransitions-reason", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "StageName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-disableinboundstagetransitions.html#cfn-codepipeline-pipeline-disableinboundstagetransitions-stagename", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::SpotFleet.SpotPlacement": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-placement.html", - "Properties": { - "AvailabilityZone": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-placement.html#cfn-ec2-spotfleet-spotplacement-availabilityzone", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "GroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-placement.html#cfn-ec2-spotfleet-spotplacement-groupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudFront::Distribution.DefaultCacheBehavior": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html", - "Properties": { - "Compress": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-compress", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "AllowedMethods": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-allowedmethods", - "UpdateType": "Mutable" - }, - "CachedMethods": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-cachedmethods", - "UpdateType": "Mutable" - }, - "LambdaFunctionAssociations": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-lambdafunctionassociations", - "ItemType": "LambdaFunctionAssociation", - "UpdateType": "Mutable" - }, - "SmoothStreaming": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-smoothstreaming", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "TargetOriginId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-targetoriginid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ViewerProtocolPolicy": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-viewerprotocolpolicy", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ForwardedValues": { - "Type": "ForwardedValues", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-forwardedvalues", - "UpdateType": "Mutable" - }, - "MinTTL": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-minttl", - "PrimitiveType": "Double", - "UpdateType": "Mutable" - }, - "MaxTTL": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-maxttl", - "PrimitiveType": "Double", - "UpdateType": "Mutable" - }, - "TrustedSigners": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-trustedsigners", - "UpdateType": "Mutable" - }, - "DefaultTTL": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-defaultttl", - "PrimitiveType": "Double", - "UpdateType": "Mutable" - } - } - }, - "AWS::SSM::MaintenanceWindowTask.MaintenanceWindowAutomationParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowautomationparameters.html", - "Properties": { - "Parameters": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowautomationparameters.html#cfn-ssm-maintenancewindowtask-maintenancewindowautomationparameters-parameters", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - }, - "DocumentVersion": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowautomationparameters.html#cfn-ssm-maintenancewindowtask-maintenancewindowautomationparameters-documentversion", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::SpotFleet.SpotFleetRequestConfigData": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html", - "Properties": { - "AllocationStrategy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-allocationstrategy", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ExcessCapacityTerminationPolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-excesscapacityterminationpolicy", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "IamFleetRole": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-iamfleetrole", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "LaunchSpecifications": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications", - "DuplicatesAllowed": false, - "ItemType": "SpotFleetLaunchSpecification", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "ReplaceUnhealthyInstances": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-replaceunhealthyinstances", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "SpotPrice": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-spotprice", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "TargetCapacity": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-targetcapacity", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - }, - "TerminateInstancesWithExpiration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-terminateinstanceswithexpiration", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-type", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ValidFrom": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-validfrom", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ValidUntil": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-validuntil", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::CodePipeline::CustomActionType.ArtifactDetails": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-artifactdetails.html", - "Properties": { - "MaximumCount": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-artifactdetails.html#cfn-codepipeline-customactiontype-artifactdetails-maximumcount", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - }, - "MinimumCount": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-artifactdetails.html#cfn-codepipeline-customactiontype-artifactdetails-minimumcount", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::AppSync::GraphQLApi.OpenIDConnectConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html", - "Properties": { - "Issuer": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html#cfn-appsync-graphqlapi-openidconnectconfig-issuer", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ClientId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html#cfn-appsync-graphqlapi-openidconnectconfig-clientid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "AuthTTL": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html#cfn-appsync-graphqlapi-openidconnectconfig-authttl", - "PrimitiveType": "Double", - "UpdateType": "Mutable" - }, - "IatTTL": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html#cfn-appsync-graphqlapi-openidconnectconfig-iatttl", - "PrimitiveType": "Double", - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::Cluster.SimpleScalingPolicyConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-simplescalingpolicyconfiguration.html", - "Properties": { - "AdjustmentType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-simplescalingpolicyconfiguration.html#cfn-elasticmapreduce-cluster-simplescalingpolicyconfiguration-adjustmenttype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "CoolDown": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-simplescalingpolicyconfiguration.html#cfn-elasticmapreduce-cluster-simplescalingpolicyconfiguration-cooldown", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "ScalingAdjustment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-simplescalingpolicyconfiguration.html#cfn-elasticmapreduce-cluster-simplescalingpolicyconfiguration-scalingadjustment", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.VersioningConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-versioningconfig.html", - "Properties": { - "Status": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-versioningconfig.html#cfn-s3-bucket-versioningconfig-status", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::AppSync::GraphQLApi.LogConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-logconfig.html", - "Properties": { - "CloudWatchLogsRoleArn": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-logconfig.html#cfn-appsync-graphqlapi-logconfig-cloudwatchlogsrolearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "FieldLogLevel": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-logconfig.html#cfn-appsync-graphqlapi-logconfig-fieldloglevel", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeDeploy::DeploymentGroup.GitHubLocation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-githublocation.html", - "Properties": { - "CommitId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-githublocation.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-githublocation-commitid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Repository": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-githublocation.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-githublocation-repository", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-simplescalingpolicyconfiguration.html", - "Properties": { - "AdjustmentType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-simplescalingpolicyconfiguration.html#cfn-elasticmapreduce-instancegroupconfig-simplescalingpolicyconfiguration-adjustmenttype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "CoolDown": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-simplescalingpolicyconfiguration.html#cfn-elasticmapreduce-instancegroupconfig-simplescalingpolicyconfiguration-cooldown", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "ScalingAdjustment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-simplescalingpolicyconfiguration.html#cfn-elasticmapreduce-instancegroupconfig-simplescalingpolicyconfiguration-scalingadjustment", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-targetgroupinfo.html", - "Properties": { - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-targetgroupinfo.html#cfn-codedeploy-deploymentgroup-targetgroupinfo-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisAnalytics::Application.CSVMappingParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-csvmappingparameters.html", - "Properties": { - "RecordRowDelimiter": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-csvmappingparameters.html#cfn-kinesisanalytics-application-csvmappingparameters-recordrowdelimiter", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "RecordColumnDelimiter": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-csvmappingparameters.html#cfn-kinesisanalytics-application-csvmappingparameters-recordcolumndelimiter", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::NetworkInterface.InstanceIpv6Address": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinterface-instanceipv6address.html", - "Properties": { - "Ipv6Address": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinterface-instanceipv6address.html#cfn-ec2-networkinterface-instanceipv6address-ipv6address", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-sourcebundle.html", - "Properties": { - "S3Bucket": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-sourcebundle.html#cfn-beanstalk-sourcebundle-s3bucket", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "S3Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-sourcebundle.html#cfn-beanstalk-sourcebundle-s3key", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::Step.KeyValue": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-keyvalue.html", - "Properties": { - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-keyvalue.html#cfn-elasticmapreduce-step-keyvalue-key", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-keyvalue.html#cfn-elasticmapreduce-step-keyvalue-value", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::SES::ConfigurationSetEventDestination.EventDestination": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-eventdestination.html", - "Properties": { - "CloudWatchDestination": { - "Type": "CloudWatchDestination", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-eventdestination.html#cfn-ses-configurationseteventdestination-eventdestination-cloudwatchdestination", - "UpdateType": "Mutable" - }, - "Enabled": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-eventdestination.html#cfn-ses-configurationseteventdestination-eventdestination-enabled", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "MatchingEventTypes": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-eventdestination.html#cfn-ses-configurationseteventdestination-eventdestination-matchingeventtypes", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-eventdestination.html#cfn-ses-configurationseteventdestination-eventdestination-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "KinesisFirehoseDestination": { - "Type": "KinesisFirehoseDestination", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-eventdestination.html#cfn-ses-configurationseteventdestination-eventdestination-kinesisfirehosedestination", - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.EncryptionConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-encryptionconfiguration.html", - "Properties": { - "ReplicaKmsKeyID": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-encryptionconfiguration.html#cfn-s3-bucket-encryptionconfiguration-replicakmskeyid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedscalingmetricspecification.html", - "Properties": { - "MetricName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedscalingmetricspecification.html#cfn-autoscalingplans-scalingplan-customizedscalingmetricspecification-metricname", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Statistic": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedscalingmetricspecification.html#cfn-autoscalingplans-scalingplan-customizedscalingmetricspecification-statistic", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Dimensions": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedscalingmetricspecification.html#cfn-autoscalingplans-scalingplan-customizedscalingmetricspecification-dimensions", - "ItemType": "MetricDimension", - "UpdateType": "Mutable" - }, - "Unit": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedscalingmetricspecification.html#cfn-autoscalingplans-scalingplan-customizedscalingmetricspecification-unit", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Namespace": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedscalingmetricspecification.html#cfn-autoscalingplans-scalingplan-customizedscalingmetricspecification-namespace", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::OpsWorks::Stack.ChefConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-chefconfiguration.html", - "Properties": { - "BerkshelfVersion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-chefconfiguration.html#cfn-opsworks-chefconfiguration-berkshelfversion", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ManageBerkshelf": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-chefconfiguration.html#cfn-opsworks-chefconfiguration-berkshelfversion", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Route53::HostedZone.HostedZoneTag": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-hostedzonetags.html", - "Properties": { - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-hostedzonetags.html#cfn-route53-hostedzonetags-key", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-hostedzonetags.html#cfn-route53-hostedzonetags-value", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Events::Rule.Target": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html", - "Properties": { - "Arn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-arn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "EcsParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-ecsparameters", - "Required": false, - "Type": "EcsParameters", - "UpdateType": "Mutable" - }, - "Id": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-id", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Input": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "InputPath": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "InputTransformer": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputtransformer", - "Required": false, - "Type": "InputTransformer", - "UpdateType": "Mutable" - }, - "KinesisParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-kinesisparameters", - "Required": false, - "Type": "KinesisParameters", - "UpdateType": "Mutable" - }, - "RoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-rolearn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "RunCommandParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-runcommandparameters", - "Required": false, - "Type": "RunCommandParameters", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisAnalytics::Application.KinesisStreamsInput": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-kinesisstreamsinput.html", - "Properties": { - "ResourceARN": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-kinesisstreamsinput.html#cfn-kinesisanalytics-application-kinesisstreamsinput-resourcearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "RoleARN": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-kinesisstreamsinput.html#cfn-kinesisanalytics-application-kinesisstreamsinput-rolearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::OpsWorks::App.EnvironmentVariable": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-environment.html", - "Properties": { - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-environment.html#cfn-opsworks-app-environment-key", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Secure": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-environment.html#cfn-opsworks-app-environment-secure", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-environment.html#value", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.NotificationConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig.html", - "Properties": { - "LambdaConfigurations": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig.html#cfn-s3-bucket-notificationconfig-lambdaconfig", - "DuplicatesAllowed": false, - "ItemType": "LambdaConfiguration", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "QueueConfigurations": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig.html#cfn-s3-bucket-notificationconfig-queueconfig", - "DuplicatesAllowed": false, - "ItemType": "QueueConfiguration", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "TopicConfigurations": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig.html#cfn-s3-bucket-notificationconfig-topicconfig", - "DuplicatesAllowed": false, - "ItemType": "TopicConfiguration", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::Logs::MetricFilter.MetricTransformation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html", - "Properties": { - "DefaultValue": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-cwl-metricfilter-metrictransformation-defaultvalue", - "PrimitiveType": "Double", - "Required": false, - "UpdateType": "Mutable" - }, - "MetricName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-cwl-metricfilter-metrictransformation-metricname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "MetricNamespace": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-cwl-metricfilter-metrictransformation-metricnamespace", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "MetricValue": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-cwl-metricfilter-metrictransformation-metricvalue", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::InstanceFleetConfig.EbsConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ebsconfiguration.html", - "Properties": { - "EbsBlockDeviceConfigs": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ebsconfiguration.html#cfn-elasticmapreduce-instancefleetconfig-ebsconfiguration-ebsblockdeviceconfigs", - "DuplicatesAllowed": false, - "ItemType": "EbsBlockDeviceConfig", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "EbsOptimized": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ebsconfiguration.html#cfn-elasticmapreduce-instancefleetconfig-ebsconfiguration-ebsoptimized", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::EC2::SpotFleet.EbsBlockDevice": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-blockdevicemappings-ebs.html", - "Properties": { - "DeleteOnTermination": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-blockdevicemappings-ebs.html#cfn-ec2-spotfleet-ebsblockdevice-deleteontermination", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Encrypted": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-blockdevicemappings-ebs.html#cfn-ec2-spotfleet-ebsblockdevice-encrypted", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Iops": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-blockdevicemappings-ebs.html#cfn-ec2-spotfleet-ebsblockdevice-iops", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "SnapshotId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-blockdevicemappings-ebs.html#cfn-ec2-spotfleet-ebsblockdevice-snapshotid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "VolumeSize": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-blockdevicemappings-ebs.html#cfn-ec2-spotfleet-ebsblockdevice-volumesize", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "VolumeType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-blockdevicemappings-ebs.html#cfn-ec2-spotfleet-ebsblockdevice-volumetype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Route53::RecordSet.AliasTarget": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html", - "Properties": { - "DNSName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-dnshostname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "EvaluateTargetHealth": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-evaluatetargethealth", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "HostedZoneId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-hostedzoneid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeCommit::Repository.RepositoryTrigger": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-repositorytrigger.html", - "Properties": { - "Events": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-repositorytrigger.html#cfn-codecommit-repository-repositorytrigger-events", - "UpdateType": "Mutable" - }, - "Branches": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-repositorytrigger.html#cfn-codecommit-repository-repositorytrigger-branches", - "UpdateType": "Mutable" - }, - "CustomData": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-repositorytrigger.html#cfn-codecommit-repository-repositorytrigger-customdata", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DestinationArn": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-repositorytrigger.html#cfn-codecommit-repository-repositorytrigger-destinationarn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-repositorytrigger.html#cfn-codecommit-repository-repositorytrigger-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeBuild::Project.SourceAuth": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-sourceauth.html", - "Properties": { - "Type": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-sourceauth.html#cfn-codebuild-project-sourceauth-type", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Resource": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-sourceauth.html#cfn-codebuild-project-sourceauth-resource", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Crawler.Targets": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-targets.html", - "Properties": { - "S3Targets": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-targets.html#cfn-glue-crawler-targets-s3targets", - "ItemType": "S3Target", - "UpdateType": "Mutable" - }, - "JdbcTargets": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-targets.html#cfn-glue-crawler-targets-jdbctargets", - "ItemType": "JdbcTarget", - "UpdateType": "Mutable" - } - } - }, - "AWS::WAF::ByteMatchSet.ByteMatchTuple": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples.html", - "Properties": { - "FieldToMatch": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples.html#cfn-waf-bytematchset-bytematchtuples-fieldtomatch", - "Required": true, - "Type": "FieldToMatch", - "UpdateType": "Mutable" - }, - "PositionalConstraint": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples.html#cfn-waf-bytematchset-bytematchtuples-positionalconstraint", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "TargetString": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples.html#cfn-waf-bytematchset-bytematchtuples-targetstring", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "TargetStringBase64": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples.html#cfn-waf-bytematchset-bytematchtuples-targetstringbase64", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "TextTransformation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples.html#cfn-waf-bytematchset-bytematchtuples-texttransformation", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-targettrackingconfiguration.html", - "Properties": { - "CustomizedMetricSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-targettrackingconfiguration.html#cfn-autoscaling-scalingpolicy-targettrackingconfiguration-customizedmetricspecification", - "Required": false, - "Type": "CustomizedMetricSpecification", - "UpdateType": "Mutable" - }, - "DisableScaleIn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-targettrackingconfiguration.html#cfn-autoscaling-scalingpolicy-targettrackingconfiguration-disablescalein", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "PredefinedMetricSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-targettrackingconfiguration.html#cfn-autoscaling-scalingpolicy-targettrackingconfiguration-predefinedmetricspecification", - "Required": false, - "Type": "PredefinedMetricSpecification", - "UpdateType": "Mutable" - }, - "TargetValue": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-targettrackingconfiguration.html#cfn-autoscaling-scalingpolicy-targettrackingconfiguration-targetvalue", - "PrimitiveType": "Double", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::TaskDefinition.MountPoint": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-mountpoints.html", - "Properties": { - "ContainerPath": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-mountpoints.html#cfn-ecs-taskdefinition-containerdefinition-mountpoints-containerpath", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ReadOnly": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-mountpoints.html#cfn-ecs-taskdefinition-containerdefinition-mountpoints-readonly", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "SourceVolume": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-mountpoints.html#cfn-ecs-taskdefinition-containerdefinition-mountpoints-sourcevolume", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::EMR::Cluster.Application": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-application.html", - "Properties": { - "AdditionalInfo": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-application.html#cfn-elasticmapreduce-cluster-application-additionalinfo", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "Args": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-application.html#cfn-elasticmapreduce-cluster-application-args", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-application.html#cfn-elasticmapreduce-cluster-application-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Version": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-application.html#cfn-elasticmapreduce-cluster-application-version", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::Service.PlacementStrategy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-placementstrategy.html", - "Properties": { - "Field": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-placementstrategy.html#cfn-ecs-service-placementstrategy-field", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-placementstrategy.html#cfn-ecs-service-placementstrategy-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::CloudFront::Distribution.Restrictions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-restrictions.html", - "Properties": { - "GeoRestriction": { - "Type": "GeoRestriction", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-restrictions.html#cfn-cloudfront-distribution-restrictions-georestriction", - "UpdateType": "Mutable" - } - } - }, - "AWS::Route53::RecordSetGroup.RecordSet": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html", - "Properties": { - "AliasTarget": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-aliastarget", - "Required": false, - "Type": "AliasTarget", - "UpdateType": "Mutable" - }, - "Comment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-comment", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Failover": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-failover", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "GeoLocation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-geolocation", - "Required": false, - "Type": "GeoLocation", - "UpdateType": "Mutable" - }, - "HealthCheckId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-healthcheckid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "HostedZoneId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-hostedzoneid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "HostedZoneName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-hostedzonename", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Region": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-region", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ResourceRecords": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-resourcerecords", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "SetIdentifier": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-setidentifier", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "TTL": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-ttl", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Weight": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-weight", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Batch::ComputeEnvironment.ComputeResources": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html", - "Properties": { - "SpotIamFleetRole": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-spotiamfleetrole", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "MaxvCpus": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-maxvcpus", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "BidPercentage": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-bidpercentage", - "PrimitiveType": "Integer", - "UpdateType": "Immutable" - }, - "SecurityGroupIds": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-securitygroupids", - "UpdateType": "Immutable" - }, - "Subnets": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-subnets", - "UpdateType": "Immutable" - }, - "Type": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-type", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "MinvCpus": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-minvcpus", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "ImageId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-imageid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "InstanceRole": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-instancerole", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "InstanceTypes": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-instancetypes", - "UpdateType": "Immutable" - }, - "Ec2KeyPair": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2keypair", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Tags": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-tags", - "PrimitiveType": "Json", - "UpdateType": "Immutable" - }, - "DesiredvCpus": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-desiredvcpus", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisFirehose::DeliveryStream.KinesisStreamSourceConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration.html", - "Properties": { - "KinesisStreamARN": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration.html#cfn-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration-kinesisstreamarn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "RoleARN": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration.html#cfn-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration-rolearn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticLoadBalancingV2::ListenerRule.Action": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-actions.html", - "Properties": { - "TargetGroupArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-actions.html#cfn-elasticloadbalancingv2-listener-actions-targetgrouparn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-actions.html#cfn-elasticloadbalancingv2-listener-actions-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::SSM::MaintenanceWindowTask.TaskInvocationParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-taskinvocationparameters.html", - "Properties": { - "MaintenanceWindowRunCommandParameters": { - "Type": "MaintenanceWindowRunCommandParameters", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-taskinvocationparameters.html#cfn-ssm-maintenancewindowtask-taskinvocationparameters-maintenancewindowruncommandparameters", - "UpdateType": "Mutable" - }, - "MaintenanceWindowAutomationParameters": { - "Type": "MaintenanceWindowAutomationParameters", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-taskinvocationparameters.html#cfn-ssm-maintenancewindowtask-taskinvocationparameters-maintenancewindowautomationparameters", - "UpdateType": "Mutable" - }, - "MaintenanceWindowStepFunctionsParameters": { - "Type": "MaintenanceWindowStepFunctionsParameters", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-taskinvocationparameters.html#cfn-ssm-maintenancewindowtask-taskinvocationparameters-maintenancewindowstepfunctionsparameters", - "UpdateType": "Mutable" - }, - "MaintenanceWindowLambdaParameters": { - "Type": "MaintenanceWindowLambdaParameters", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-taskinvocationparameters.html#cfn-ssm-maintenancewindowtask-taskinvocationparameters-maintenancewindowlambdaparameters", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisFirehose::DeliveryStream.ProcessorParameter": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processorparameter.html", - "Properties": { - "ParameterName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processorparameter.html#cfn-kinesisfirehose-deliverystream-processorparameter-parametername", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "ParameterValue": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processorparameter.html#cfn-kinesisfirehose-deliverystream-processorparameter-parametervalue", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::AppSync::DataSource.LambdaConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-lambdaconfig.html", - "Properties": { - "LambdaFunctionArn": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-lambdaconfig.html#cfn-appsync-datasource-lambdaconfig-lambdafunctionarn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.MappingParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-mappingparameters.html", - "Properties": { - "JSONMappingParameters": { - "Type": "JSONMappingParameters", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-mappingparameters.html#cfn-kinesisanalytics-applicationreferencedatasource-mappingparameters-jsonmappingparameters", - "UpdateType": "Mutable" - }, - "CSVMappingParameters": { - "Type": "CSVMappingParameters", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-mappingparameters.html#cfn-kinesisanalytics-applicationreferencedatasource-mappingparameters-csvmappingparameters", - "UpdateType": "Mutable" - } - } - }, - "AWS::ApiGateway::ApiKey.StageKey": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-apikey-stagekey.html", - "Properties": { - "RestApiId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-apikey-stagekey.html#cfn-apigateway-apikey-stagekey-restapiid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "StageName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-apikey-stagekey.html#cfn-apigateway-apikey-stagekey-stagename", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.ServerSideEncryptionByDefault": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionbydefault.html", - "Properties": { - "KMSMasterKeyID": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionbydefault.html#cfn-s3-bucket-serversideencryptionbydefault-kmsmasterkeyid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "SSEAlgorithm": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionbydefault.html#cfn-s3-bucket-serversideencryptionbydefault-ssealgorithm", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::Cluster.EbsBlockDeviceConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ebsblockdeviceconfig.html", - "Properties": { - "VolumeSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ebsblockdeviceconfig.html#cfn-elasticmapreduce-cluster-ebsblockdeviceconfig-volumespecification", - "Required": true, - "Type": "VolumeSpecification", - "UpdateType": "Mutable" - }, - "VolumesPerInstance": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ebsblockdeviceconfig.html#cfn-elasticmapreduce-cluster-ebsblockdeviceconfig-volumesperinstance", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeDeploy::DeploymentGroup.ELBInfo": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-elbinfo.html", - "Properties": { - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-elbinfo.html#cfn-codedeploy-deploymentgroup-elbinfo-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::DynamoDB::Table.GlobalSecondaryIndex": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-gsi.html", - "Properties": { - "IndexName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-gsi.html#cfn-dynamodb-gsi-indexname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "KeySchema": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-gsi.html#cfn-dynamodb-gsi-keyschema", - "DuplicatesAllowed": false, - "ItemType": "KeySchema", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "Projection": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-gsi.html#cfn-dynamodb-gsi-projection", - "Required": true, - "Type": "Projection", - "UpdateType": "Mutable" - }, - "ProvisionedThroughput": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-gsi.html#cfn-dynamodb-gsi-provisionedthroughput", - "Required": true, - "Type": "ProvisionedThroughput", - "UpdateType": "Mutable" - } - } - }, - "AWS::AutoScalingPlans::ScalingPlan.MetricDimension": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-metricdimension.html", - "Properties": { - "Value": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-metricdimension.html#cfn-autoscalingplans-scalingplan-metricdimension-value", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Name": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-metricdimension.html#cfn-autoscalingplans-scalingplan-metricdimension-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::Events::Rule.RunCommandTarget": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandtarget.html", - "Properties": { - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandtarget.html#cfn-events-rule-runcommandtarget-key", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Values": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandtarget.html#cfn-events-rule-runcommandtarget-values", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.RedirectRule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-redirectrule.html", - "Properties": { - "HostName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-redirectrule.html#cfn-s3-websiteconfiguration-redirectrule-hostname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "HttpRedirectCode": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-redirectrule.html#cfn-s3-websiteconfiguration-redirectrule-httpredirectcode", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Protocol": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-redirectrule.html#cfn-s3-websiteconfiguration-redirectrule-protocol", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ReplaceKeyPrefixWith": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-redirectrule.html#cfn-s3-websiteconfiguration-redirectrule-replacekeyprefixwith", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ReplaceKeyWith": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-redirectrule.html#cfn-s3-websiteconfiguration-redirectrule-replacekeywith", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::InstanceGroupConfig.ScalingRule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingrule.html", - "Properties": { - "Action": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingrule.html#cfn-elasticmapreduce-instancegroupconfig-scalingrule-action", - "Required": true, - "Type": "ScalingAction", - "UpdateType": "Mutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingrule.html#cfn-elasticmapreduce-instancegroupconfig-scalingrule-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingrule.html#cfn-elasticmapreduce-instancegroupconfig-scalingrule-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Trigger": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingrule.html#cfn-elasticmapreduce-instancegroupconfig-scalingrule-trigger", - "Required": true, - "Type": "ScalingTrigger", - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::Cluster.PlacementType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-placementtype.html", - "Properties": { - "AvailabilityZone": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-placementtype.html#cfn-elasticmapreduce-cluster-placementtype-availabilityzone", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-conditions.html", - "Properties": { - "Field": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-conditions.html#cfn-elasticloadbalancingv2-listenerrule-conditions-field", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Values": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-conditions.html#cfn-elasticloadbalancingv2-listenerrule-conditions-values", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::ApiGateway::Deployment.StageDescription": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html", - "Properties": { - "CacheClusterEnabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-cacheclusterenabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "CacheClusterSize": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-cacheclustersize", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "CacheDataEncrypted": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-cachedataencrypted", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "CacheTtlInSeconds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-cachettlinseconds", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "CachingEnabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-cachingenabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "ClientCertificateId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-clientcertificateid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DataTraceEnabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-datatraceenabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DocumentationVersion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-documentationversion", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "LoggingLevel": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-logginglevel", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "MethodSettings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-methodsettings", - "DuplicatesAllowed": false, - "ItemType": "MethodSetting", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "MetricsEnabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-metricsenabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "ThrottlingBurstLimit": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-throttlingburstlimit", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "ThrottlingRateLimit": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-throttlingratelimit", - "PrimitiveType": "Double", - "Required": false, - "UpdateType": "Mutable" - }, - "Variables": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-variables", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.RedirectAllRequestsTo": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-redirectallrequeststo.html", - "Properties": { - "HostName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-redirectallrequeststo.html#cfn-s3-websiteconfiguration-redirectallrequeststo-hostname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Protocol": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-redirectallrequeststo.html#cfn-s3-websiteconfiguration-redirectallrequeststo-protocol", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::WAF::XssMatchSet.XssMatchTuple": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-xssmatchset-xssmatchtuple.html", - "Properties": { - "FieldToMatch": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-xssmatchset-xssmatchtuple.html#cfn-waf-xssmatchset-xssmatchtuple-fieldtomatch", - "Required": true, - "Type": "FieldToMatch", - "UpdateType": "Mutable" - }, - "TextTransformation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-xssmatchset-xssmatchtuple.html#cfn-waf-xssmatchset-xssmatchtuple-texttransformation", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarmconfiguration.html", - "Properties": { - "Alarms": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarmconfiguration.html#cfn-codedeploy-deploymentgroup-alarmconfiguration-alarms", - "DuplicatesAllowed": false, - "ItemType": "Alarm", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Enabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarmconfiguration.html#cfn-codedeploy-deploymentgroup-alarmconfiguration-enabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "IgnorePollAlarmFailure": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarmconfiguration.html#cfn-codedeploy-deploymentgroup-alarmconfiguration-ignorepollalarmfailure", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeBuild::Project.Environment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html", - "Properties": { - "Type": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html#cfn-codebuild-project-environment-type", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "EnvironmentVariables": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html#cfn-codebuild-project-environment-environmentvariables", - "ItemType": "EnvironmentVariable", - "UpdateType": "Mutable" - }, - "PrivilegedMode": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html#cfn-codebuild-project-environment-privilegedmode", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "Image": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html#cfn-codebuild-project-environment-image", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ComputeType": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html#cfn-codebuild-project-environment-computetype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.S3KeyFilter": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key.html", - "Properties": { - "Rules": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key.html#cfn-s3-bucket-notificationconfiguraiton-config-filter-s3key-rules", - "DuplicatesAllowed": false, - "ItemType": "FilterRule", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.JSONMappingParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-jsonmappingparameters.html", - "Properties": { - "RecordRowPath": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-jsonmappingparameters.html#cfn-kinesisanalytics-applicationreferencedatasource-jsonmappingparameters-recordrowpath", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::OpsWorks::App.SslConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-sslconfiguration.html", - "Properties": { - "Certificate": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-sslconfiguration.html#cfn-opsworks-app-sslconfig-certificate", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Chain": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-sslconfiguration.html#cfn-opsworks-app-sslconfig-chain", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "PrivateKey": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-sslconfiguration.html#cfn-opsworks-app-sslconfig-privatekey", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html", - "Properties": { - "EndTime": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html#cfn-applicationautoscaling-scalabletarget-scheduledaction-endtime", - "PrimitiveType": "Timestamp", - "Required": false, - "UpdateType": "Mutable" - }, - "ScalableTargetAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html#cfn-applicationautoscaling-scalabletarget-scheduledaction-scalabletargetaction", - "Required": false, - "Type": "ScalableTargetAction", - "UpdateType": "Mutable" - }, - "Schedule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html#cfn-applicationautoscaling-scalabletarget-scheduledaction-schedule", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "ScheduledActionName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html#cfn-applicationautoscaling-scalabletarget-scheduledaction-scheduledactionname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "StartTime": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html#cfn-applicationautoscaling-scalabletarget-scheduledaction-starttime", - "PrimitiveType": "Timestamp", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::SES::Template.Template": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-template-template.html", - "Properties": { - "HtmlPart": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-template-template.html#cfn-ses-template-template-htmlpart", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "TextPart": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-template-template.html#cfn-ses-template-template-textpart", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "TemplateName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-template-template.html#cfn-ses-template-template-templatename", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "SubjectPart": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-template-template.html#cfn-ses-template-template-subjectpart", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::SSM::PatchBaseline.PatchFilter": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchfilter.html", - "Properties": { - "Values": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchfilter.html#cfn-ssm-patchbaseline-patchfilter-values", - "UpdateType": "Mutable" - }, - "Key": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchfilter.html#cfn-ssm-patchbaseline-patchfilter-key", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-LBCookieStickinessPolicy.html", - "Properties": { - "CookieExpirationPeriod": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-LBCookieStickinessPolicy.html#cfn-elb-lbcookiestickinesspolicy-cookieexpirationperiod", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "PolicyName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-LBCookieStickinessPolicy.html#cfn-elb-lbcookiestickinesspolicy-policyname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::Instance.InstanceIpv6Address": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-instanceipv6address.html", - "Properties": { - "Ipv6Address": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-instanceipv6address.html#cfn-ec2-instance-instanceipv6address-ipv6address", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::Instance.Volume": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-mount-point.html", - "Properties": { - "Device": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-mount-point.html#cfn-ec2-mountpoint-device", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "VolumeId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-mount-point.html#cfn-ec2-mountpoint-volumeid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticBeanstalk::Environment.Tier": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment-tier.html", - "Properties": { - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment-tier.html#cfn-beanstalk-env-tier-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment-tier.html#cfn-beanstalk-env-tier-type", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Version": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment-tier.html#cfn-beanstalk-env-tier-version", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::NetworkAclEntry.PortRange": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkaclentry-portrange.html", - "Properties": { - "From": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkaclentry-portrange.html#cfn-ec2-networkaclentry-portrange-from", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "To": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkaclentry-portrange.html#cfn-ec2-networkaclentry-portrange-to", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Connection.ConnectionInput": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-connectioninput.html", - "Properties": { - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-connectioninput.html#cfn-glue-connection-connectioninput-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ConnectionType": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-connectioninput.html#cfn-glue-connection-connectioninput-connectiontype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "MatchCriteria": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-connectioninput.html#cfn-glue-connection-connectioninput-matchcriteria", - "UpdateType": "Mutable" - }, - "PhysicalConnectionRequirements": { - "Type": "PhysicalConnectionRequirements", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-connectioninput.html#cfn-glue-connection-connectioninput-physicalconnectionrequirements", - "UpdateType": "Mutable" - }, - "ConnectionProperties": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-connectioninput.html#cfn-glue-connection-connectioninput-connectionproperties", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-connectioninput.html#cfn-glue-connection-connectioninput-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::Route53::HostedZone.HostedZoneConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-hostedzoneconfig.html", - "Properties": { - "Comment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-hostedzoneconfig.html#cfn-route53-hostedzone-hostedzoneconfig-comment", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudFront::Distribution.Origin": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html", - "Properties": { - "OriginCustomHeaders": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-origincustomheaders", - "ItemType": "OriginCustomHeader", - "UpdateType": "Mutable" - }, - "DomainName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-domainname", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "S3OriginConfig": { - "Type": "S3OriginConfig", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-s3originconfig", - "UpdateType": "Mutable" - }, - "OriginPath": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-originpath", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Id": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-id", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "CustomOriginConfig": { - "Type": "CustomOriginConfig", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-customoriginconfig", - "UpdateType": "Mutable" - } - } - }, - "AWS::Events::Rule.InputTransformer": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-inputtransformer.html", - "Properties": { - "InputPathsMap": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-inputtransformer.html#cfn-events-rule-inputtransformer-inputpathsmap", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "InputTemplate": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-inputtransformer.html#cfn-events-rule-inputtransformer-inputtemplate", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::IoT::TopicRule.FirehoseAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-firehoseaction.html", - "Properties": { - "DeliveryStreamName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-firehoseaction.html#cfn-iot-topicrule-firehoseaction-deliverystreamname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "RoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-firehoseaction.html#cfn-iot-topicrule-firehoseaction-rolearn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Separator": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-firehoseaction.html#cfn-iot-topicrule-firehoseaction-separator", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::SSM::MaintenanceWindowTask.LoggingInfo": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-logginginfo.html", - "Properties": { - "S3Bucket": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-logginginfo.html#cfn-ssm-maintenancewindowtask-logginginfo-s3bucket", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Region": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-logginginfo.html#cfn-ssm-maintenancewindowtask-logginginfo-region", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "S3Prefix": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-logginginfo.html#cfn-ssm-maintenancewindowtask-logginginfo-s3prefix", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::IoT::TopicRule.TopicRulePayload": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html", - "Properties": { - "Actions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-actions", - "DuplicatesAllowed": false, - "ItemType": "Action", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "AwsIotSqlVersion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-awsiotsqlversion", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "RuleDisabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-ruledisabled", - "PrimitiveType": "Boolean", - "Required": true, - "UpdateType": "Mutable" - }, - "Sql": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-sql", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::Instance.AssociationParameter": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations-associationparameters.html", - "Properties": { - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations-associationparameters.html#cfn-ec2-instance-ssmassociations-associationparameters-key", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations-associationparameters.html#cfn-ec2-instance-ssmassociations-associationparameters-value", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::Cognito::IdentityPool.PushSync": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-pushsync.html", - "Properties": { - "ApplicationArns": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-pushsync.html#cfn-cognito-identitypool-pushsync-applicationarns", - "UpdateType": "Mutable" - }, - "RoleArn": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-pushsync.html#cfn-cognito-identitypool-pushsync-rolearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.InventoryConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventoryconfiguration.html", - "Properties": { - "Destination": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventoryconfiguration.html#cfn-s3-bucket-inventoryconfiguration-destination", - "Required": true, - "Type": "Destination", - "UpdateType": "Mutable" - }, - "Enabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventoryconfiguration.html#cfn-s3-bucket-inventoryconfiguration-enabled", - "PrimitiveType": "Boolean", - "Required": true, - "UpdateType": "Mutable" - }, - "Id": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventoryconfiguration.html#cfn-s3-bucket-inventoryconfiguration-id", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "IncludedObjectVersions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventoryconfiguration.html#cfn-s3-bucket-inventoryconfiguration-includedobjectversions", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "OptionalFields": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventoryconfiguration.html#cfn-s3-bucket-inventoryconfiguration-optionalfields", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Prefix": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventoryconfiguration.html#cfn-s3-bucket-inventoryconfiguration-prefix", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ScheduleFrequency": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventoryconfiguration.html#cfn-s3-bucket-inventoryconfiguration-schedulefrequency", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::TaskDefinition.VolumeFrom": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-volumesfrom.html", - "Properties": { - "ReadOnly": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-volumesfrom.html#cfn-ecs-taskdefinition-containerdefinition-volumesfrom-readonly", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "SourceContainer": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-volumesfrom.html#cfn-ecs-taskdefinition-containerdefinition-volumesfrom-sourcecontainer", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectiondrainingpolicy.html", - "Properties": { - "Enabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectiondrainingpolicy.html#cfn-elb-connectiondrainingpolicy-enabled", - "PrimitiveType": "Boolean", - "Required": true, - "UpdateType": "Mutable" - }, - "Timeout": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectiondrainingpolicy.html#cfn-elb-connectiondrainingpolicy-timeout", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::Service.ServiceRegistry": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-serviceregistry.html", - "Properties": { - "Port": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-serviceregistry.html#cfn-ecs-service-serviceregistry-port", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "RegistryArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-serviceregistry.html#cfn-ecs-service-serviceregistry-registryarn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.WebsiteConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration.html", - "Properties": { - "ErrorDocument": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration.html#cfn-s3-websiteconfiguration-errordocument", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "IndexDocument": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration.html#cfn-s3-websiteconfiguration-indexdocument", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "RedirectAllRequestsTo": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration.html#cfn-s3-websiteconfiguration-redirectallrequeststo", - "Required": false, - "Type": "RedirectAllRequestsTo", - "UpdateType": "Mutable" - }, - "RoutingRules": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration.html#cfn-s3-websiteconfiguration-routingrules", - "DuplicatesAllowed": false, - "ItemType": "RoutingRule", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::Cognito::IdentityPool.CognitoIdentityProvider": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitoidentityprovider.html", - "Properties": { - "ServerSideTokenCheck": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitoidentityprovider.html#cfn-cognito-identitypool-cognitoidentityprovider-serversidetokencheck", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "ProviderName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitoidentityprovider.html#cfn-cognito-identitypool-cognitoidentityprovider-providername", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ClientId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitoidentityprovider.html#cfn-cognito-identitypool-cognitoidentityprovider-clientid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudFront::Distribution.GeoRestriction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-georestriction.html", - "Properties": { - "Locations": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-georestriction.html#cfn-cloudfront-distribution-georestriction-locations", - "UpdateType": "Mutable" - }, - "RestrictionType": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-georestriction.html#cfn-cloudfront-distribution-georestriction-restrictiontype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::SES::ReceiptRule.SNSAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-snsaction.html", - "Properties": { - "TopicArn": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-snsaction.html#cfn-ses-receiptrule-snsaction-topicarn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Encoding": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-snsaction.html#cfn-ses-receiptrule-snsaction-encoding", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::DMS::Endpoint.MongoDbSettings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html", - "Properties": { - "AuthSource": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-authsource", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "AuthMechanism": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-authmechanism", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Username": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-username", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DocsToInvestigate": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-docstoinvestigate", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ServerName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-servername", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Port": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-port", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "ExtractDocId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-extractdocid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DatabaseName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-databasename", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "AuthType": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-authtype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Password": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-password", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "NestingLevel": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-nestinglevel", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting.html", - "Properties": { - "Namespace": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting.html#cfn-elasticbeanstalk-configurationtemplate-configurationoptionsetting-namespace", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "OptionName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting.html#cfn-elasticbeanstalk-configurationtemplate-configurationoptionsetting-optionname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "ResourceName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting.html#cfn-elasticbeanstalk-configurationtemplate-configurationoptionsetting-resourcename", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting.html#cfn-elasticbeanstalk-configurationtemplate-configurationoptionsetting-value", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::SSM::MaintenanceWindowTask.Target": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-target.html", - "Properties": { - "Values": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-target.html#cfn-ssm-maintenancewindowtask-target-values", - "UpdateType": "Mutable" - }, - "Key": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-target.html#cfn-ssm-maintenancewindowtask-target-key", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::Events::Rule.KinesisParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-kinesisparameters.html", - "Properties": { - "PartitionKeyPath": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-kinesisparameters.html#cfn-events-rule-kinesisparameters-partitionkeypath", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Cognito::UserPool.Policies": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-policies.html", - "Properties": { - "PasswordPolicy": { - "Type": "PasswordPolicy", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-policies.html#cfn-cognito-userpool-policies-passwordpolicy", - "UpdateType": "Mutable" - } - } - }, - "AWS::WAFRegional::ByteMatchSet.FieldToMatch": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-bytematchset-fieldtomatch.html", - "Properties": { - "Type": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-bytematchset-fieldtomatch.html#cfn-wafregional-bytematchset-fieldtomatch-type", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Data": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-bytematchset-fieldtomatch.html#cfn-wafregional-bytematchset-fieldtomatch-data", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::SNS::Topic.Subscription": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-subscription.html", - "Properties": { - "Endpoint": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-subscription.html#cfn-sns-topic-subscription-endpoint", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Protocol": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-subscription.html#cfn-sns-topic-subscription-protocol", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::EC2::Instance.LaunchTemplateSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-launchtemplatespecification.html", - "Properties": { - "LaunchTemplateId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-launchtemplatespecification.html#cfn-ec2-instance-launchtemplatespecification-launchtemplateid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "LaunchTemplateName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-launchtemplatespecification.html#cfn-ec2-instance-launchtemplatespecification-launchtemplatename", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Version": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-launchtemplatespecification.html#cfn-ec2-instance-launchtemplatespecification-version", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::CodePipeline::Pipeline.ArtifactStore": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore.html", - "Properties": { - "EncryptionKey": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore.html#cfn-codepipeline-pipeline-artifactstore-encryptionkey", - "Required": false, - "Type": "EncryptionKey", - "UpdateType": "Mutable" - }, - "Location": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore.html#cfn-codepipeline-pipeline-artifactstore-location", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore.html#cfn-codepipeline-pipeline-artifactstore-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::AutoScaling::AutoScalingGroup.MetricsCollection": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-metricscollection.html", - "Properties": { - "Granularity": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-metricscollection.html#cfn-as-metricscollection-granularity", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Metrics": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-metricscollection.html#cfn-as-metricscollection-metrics", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::DynamoDB::Table.KeySchema": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html", - "Properties": { - "AttributeName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html#aws-properties-dynamodb-keyschema-attributename", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "KeyType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html#aws-properties-dynamodb-keyschema-keytype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.ReplicationConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration.html", - "Properties": { - "Role": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration.html#cfn-s3-bucket-replicationconfiguration-role", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Rules": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration.html#cfn-s3-bucket-replicationconfiguration-rules", - "DuplicatesAllowed": false, - "ItemType": "ReplicationRule", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisAnalytics::Application.Input": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-input.html", - "Properties": { - "NamePrefix": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-input.html#cfn-kinesisanalytics-application-input-nameprefix", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "InputSchema": { - "Type": "InputSchema", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-input.html#cfn-kinesisanalytics-application-input-inputschema", - "UpdateType": "Mutable" - }, - "KinesisStreamsInput": { - "Type": "KinesisStreamsInput", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-input.html#cfn-kinesisanalytics-application-input-kinesisstreamsinput", - "UpdateType": "Mutable" - }, - "KinesisFirehoseInput": { - "Type": "KinesisFirehoseInput", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-input.html#cfn-kinesisanalytics-application-input-kinesisfirehoseinput", - "UpdateType": "Mutable" - }, - "InputProcessingConfiguration": { - "Type": "InputProcessingConfiguration", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-input.html#cfn-kinesisanalytics-application-input-inputprocessingconfiguration", - "UpdateType": "Mutable" - }, - "InputParallelism": { - "Type": "InputParallelism", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-input.html#cfn-kinesisanalytics-application-input-inputparallelism", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisAnalytics::Application.InputSchema": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputschema.html", - "Properties": { - "RecordEncoding": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputschema.html#cfn-kinesisanalytics-application-inputschema-recordencoding", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "RecordColumns": { - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputschema.html#cfn-kinesisanalytics-application-inputschema-recordcolumns", - "ItemType": "RecordColumn", - "UpdateType": "Mutable" - }, - "RecordFormat": { - "Type": "RecordFormat", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputschema.html#cfn-kinesisanalytics-application-inputschema-recordformat", - "UpdateType": "Mutable" - } - } - }, - "AWS::SSM::PatchBaseline.Rule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-rule.html", - "Properties": { - "EnableNonSecurity": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-rule.html#cfn-ssm-patchbaseline-rule-enablenonsecurity", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "PatchFilterGroup": { - "Type": "PatchFilterGroup", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-rule.html#cfn-ssm-patchbaseline-rule-patchfiltergroup", - "UpdateType": "Mutable" - }, - "ApproveAfterDays": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-rule.html#cfn-ssm-patchbaseline-rule-approveafterdays", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "ComplianceLevel": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-rule.html#cfn-ssm-patchbaseline-rule-compliancelevel", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudFront::Distribution.ViewerCertificate": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html", - "Properties": { - "IamCertificateId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html#cfn-cloudfront-distribution-viewercertificate-iamcertificateid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "SslSupportMethod": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html#cfn-cloudfront-distribution-viewercertificate-sslsupportmethod", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "MinimumProtocolVersion": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html#cfn-cloudfront-distribution-viewercertificate-minimumprotocolversion", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "CloudFrontDefaultCertificate": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html#cfn-cloudfront-distribution-viewercertificate-cloudfrontdefaultcertificate", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "AcmCertificateArn": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html#cfn-cloudfront-distribution-viewercertificate-acmcertificatearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.SseKmsEncryptedObjects": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ssekmsencryptedobjects.html", - "Properties": { - "Status": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ssekmsencryptedobjects.html#cfn-s3-bucket-ssekmsencryptedobjects-status", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::SES::ConfigurationSetEventDestination.CloudWatchDestination": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-cloudwatchdestination.html", - "Properties": { - "DimensionConfigurations": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-cloudwatchdestination.html#cfn-ses-configurationseteventdestination-cloudwatchdestination-dimensionconfigurations", - "ItemType": "DimensionConfiguration", - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::Cluster.Configuration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-configuration.html", - "Properties": { - "Classification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-configuration.html#cfn-elasticmapreduce-cluster-configuration-classification", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ConfigurationProperties": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-configuration.html#cfn-elasticmapreduce-cluster-configuration-configurationproperties", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "Configurations": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-configuration.html#cfn-elasticmapreduce-cluster-configuration-configurations", - "DuplicatesAllowed": false, - "ItemType": "Configuration", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::InstanceFleetConfig.InstanceTypeConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancetypeconfig.html", - "Properties": { - "BidPrice": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancetypeconfig.html#cfn-elasticmapreduce-instancefleetconfig-instancetypeconfig-bidprice", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "BidPriceAsPercentageOfOnDemandPrice": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancetypeconfig.html#cfn-elasticmapreduce-instancefleetconfig-instancetypeconfig-bidpriceaspercentageofondemandprice", - "PrimitiveType": "Double", - "Required": false, - "UpdateType": "Immutable" - }, - "Configurations": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancetypeconfig.html#cfn-elasticmapreduce-instancefleetconfig-instancetypeconfig-configurations", - "DuplicatesAllowed": false, - "ItemType": "Configuration", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "EbsConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancetypeconfig.html#cfn-elasticmapreduce-instancefleetconfig-instancetypeconfig-ebsconfiguration", - "Required": false, - "Type": "EbsConfiguration", - "UpdateType": "Immutable" - }, - "InstanceType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancetypeconfig.html#cfn-elasticmapreduce-instancefleetconfig-instancetypeconfig-instancetype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "WeightedCapacity": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancetypeconfig.html#cfn-elasticmapreduce-instancefleetconfig-instancetypeconfig-weightedcapacity", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::WAFRegional::XssMatchSet.XssMatchTuple": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-xssmatchset-xssmatchtuple.html", - "Properties": { - "TextTransformation": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-xssmatchset-xssmatchtuple.html#cfn-wafregional-xssmatchset-xssmatchtuple-texttransformation", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "FieldToMatch": { - "Type": "FieldToMatch", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-xssmatchset-xssmatchtuple.html#cfn-wafregional-xssmatchset-xssmatchtuple-fieldtomatch", - "UpdateType": "Mutable" - } - } - }, - "AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predefinedmetricspecification.html", - "Properties": { - "PredefinedMetricType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predefinedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-predefinedmetricspecification-predefinedmetrictype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "ResourceLabel": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predefinedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-predefinedmetricspecification-resourcelabel", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::TaskDefinition.HostEntry": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-hostentry.html", - "Properties": { - "Hostname": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-hostentry.html#cfn-ecs-taskdefinition-containerdefinition-hostentry-hostname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "IpAddress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-hostentry.html#cfn-ecs-taskdefinition-containerdefinition-hostentry-ipaddress", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::Cognito::UserPool.EmailConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-emailconfiguration.html", - "Properties": { - "ReplyToEmailAddress": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-emailconfiguration.html#cfn-cognito-userpool-emailconfiguration-replytoemailaddress", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "SourceArn": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-emailconfiguration.html#cfn-cognito-userpool-emailconfiguration-sourcearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.Rule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html", - "Properties": { - "AbortIncompleteMultipartUpload": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-rule-abortincompletemultipartupload", - "Required": false, - "Type": "AbortIncompleteMultipartUpload", - "UpdateType": "Mutable" - }, - "ExpirationDate": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-lifecycleconfig-rule-expirationdate", - "PrimitiveType": "Timestamp", - "Required": false, - "UpdateType": "Mutable" - }, - "ExpirationInDays": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-lifecycleconfig-rule-expirationindays", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "Id": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-lifecycleconfig-rule-id", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "NoncurrentVersionExpirationInDays": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-lifecycleconfig-rule-noncurrentversionexpirationindays", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "NoncurrentVersionTransition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-lifecycleconfig-rule-noncurrentversiontransition", - "Required": false, - "Type": "NoncurrentVersionTransition", - "UpdateType": "Mutable" - }, - "NoncurrentVersionTransitions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-lifecycleconfig-rule-noncurrentversiontransitions", - "DuplicatesAllowed": false, - "ItemType": "NoncurrentVersionTransition", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Prefix": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-lifecycleconfig-rule-prefix", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Status": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-lifecycleconfig-rule-status", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "TagFilters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-rule-tagfilters", - "DuplicatesAllowed": false, - "ItemType": "TagFilter", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Transition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-lifecycleconfig-rule-transition", - "Required": false, - "Type": "Transition", - "UpdateType": "Mutable" - }, - "Transitions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-lifecycleconfig-rule-transitions", - "DuplicatesAllowed": false, - "ItemType": "Transition", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::TaskDefinition.KernelCapabilities": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-kernelcapabilities.html", - "Properties": { - "Add": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-kernelcapabilities.html#cfn-ecs-taskdefinition-kernelcapabilities-add", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "Drop": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-kernelcapabilities.html#cfn-ecs-taskdefinition-kernelcapabilities-drop", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - } - } - }, - "AWS::S3::Bucket.QueueConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-queueconfig.html", - "Properties": { - "Event": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-queueconfig.html#cfn-s3-bucket-notificationconfig-queueconfig-event", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Filter": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-queueconfig.html#cfn-s3-bucket-notificationconfig-queueconfig-filter", - "Required": false, - "Type": "NotificationFilter", - "UpdateType": "Mutable" - }, - "Queue": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-queueconfig.html#cfn-s3-bucket-notificationconfig-queueconfig-queue", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::InstanceGroupConfig.ScalingAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingaction.html", - "Properties": { - "Market": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingaction.html#cfn-elasticmapreduce-instancegroupconfig-scalingaction-market", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "SimpleScalingPolicyConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingaction.html#cfn-elasticmapreduce-instancegroupconfig-scalingaction-simplescalingpolicyconfiguration", - "Required": true, - "Type": "SimpleScalingPolicyConfiguration", - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticLoadBalancing::LoadBalancer.Listeners": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-listener.html", - "Properties": { - "InstancePort": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-listener.html#cfn-ec2-elb-listener-instanceport", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "InstanceProtocol": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-listener.html#cfn-ec2-elb-listener-instanceprotocol", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "LoadBalancerPort": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-listener.html#cfn-ec2-elb-listener-loadbalancerport", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "PolicyNames": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-listener.html#cfn-ec2-elb-listener-policynames", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Protocol": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-listener.html#cfn-ec2-elb-listener-protocol", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "SSLCertificateId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-listener.html#cfn-ec2-elb-listener-sslcertificateid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::InstanceGroupConfig.ScalingTrigger": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingtrigger.html", - "Properties": { - "CloudWatchAlarmDefinition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingtrigger.html#cfn-elasticmapreduce-instancegroupconfig-scalingtrigger-cloudwatchalarmdefinition", - "Required": true, - "Type": "CloudWatchAlarmDefinition", - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.TopicConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-topicconfig.html", - "Properties": { - "Event": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-topicconfig.html#cfn-s3-bucket-notificationconfig-topicconfig-event", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Filter": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-topicconfig.html#cfn-s3-bucket-notificationconfig-topicconfig-filter", - "Required": false, - "Type": "NotificationFilter", - "UpdateType": "Mutable" - }, - "Topic": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-topicconfig.html#cfn-s3-bucket-notificationconfig-topicconfig-topic", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Connection.PhysicalConnectionRequirements": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-physicalconnectionrequirements.html", - "Properties": { - "AvailabilityZone": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-physicalconnectionrequirements.html#cfn-glue-connection-physicalconnectionrequirements-availabilityzone", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "SecurityGroupIdList": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-physicalconnectionrequirements.html#cfn-glue-connection-physicalconnectionrequirements-securitygroupidlist", - "UpdateType": "Mutable" - }, - "SubnetId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-physicalconnectionrequirements.html#cfn-glue-connection-physicalconnectionrequirements-subnetid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudFront::Distribution.S3OriginConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-s3originconfig.html", - "Properties": { - "OriginAccessIdentity": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-s3originconfig.html#cfn-cloudfront-distribution-s3originconfig-originaccessidentity", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattributes.html", - "Properties": { - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattributes.html#cfn-elasticloadbalancingv2-loadbalancer-loadbalancerattributes-key", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattributes.html#cfn-elasticloadbalancingv2-loadbalancer-loadbalancerattributes-value", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::LaunchTemplate.ElasticGpuSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-elasticgpuspecification.html", - "Properties": { - "Type": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-elasticgpuspecification.html#cfn-ec2-launchtemplate-elasticgpuspecification-type", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-taskdefinitionplacementconstraint.html", - "Properties": { - "Expression": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-taskdefinitionplacementconstraint.html#cfn-ecs-taskdefinition-taskdefinitionplacementconstraint-expression", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-taskdefinitionplacementconstraint.html#cfn-ecs-taskdefinition-taskdefinitionplacementconstraint-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordFormat": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-recordformat.html", - "Properties": { - "MappingParameters": { - "Type": "MappingParameters", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-recordformat.html#cfn-kinesisanalytics-applicationreferencedatasource-recordformat-mappingparameters", - "UpdateType": "Mutable" - }, - "RecordFormatType": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-recordformat.html#cfn-kinesisanalytics-applicationreferencedatasource-recordformat-recordformattype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::SSM::Association.ParameterValues": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-parametervalues.html", - "Properties": { - "ParameterValues": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-parametervalues.html#cfn-ssm-association-parametervalues-parametervalues", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisAnalytics::Application.RecordColumn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-recordcolumn.html", - "Properties": { - "Mapping": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-recordcolumn.html#cfn-kinesisanalytics-application-recordcolumn-mapping", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "SqlType": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-recordcolumn.html#cfn-kinesisanalytics-application-recordcolumn-sqltype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Name": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-recordcolumn.html#cfn-kinesisanalytics-application-recordcolumn-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::Cognito::UserPool.LambdaConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html", - "Properties": { - "CreateAuthChallenge": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html#cfn-cognito-userpool-lambdaconfig-createauthchallenge", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "PreAuthentication": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html#cfn-cognito-userpool-lambdaconfig-preauthentication", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DefineAuthChallenge": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html#cfn-cognito-userpool-lambdaconfig-defineauthchallenge", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "PreSignUp": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html#cfn-cognito-userpool-lambdaconfig-presignup", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "PostAuthentication": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html#cfn-cognito-userpool-lambdaconfig-postauthentication", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "PostConfirmation": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html#cfn-cognito-userpool-lambdaconfig-postconfirmation", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "CustomMessage": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html#cfn-cognito-userpool-lambdaconfig-custommessage", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "VerifyAuthChallengeResponse": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html#cfn-cognito-userpool-lambdaconfig-verifyauthchallengeresponse", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::SSM::PatchBaseline.PatchFilterGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchfiltergroup.html", - "Properties": { - "PatchFilters": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchfiltergroup.html#cfn-ssm-patchbaseline-patchfiltergroup-patchfilters", - "ItemType": "PatchFilter", - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Crawler.JdbcTarget": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-jdbctarget.html", - "Properties": { - "ConnectionName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-jdbctarget.html#cfn-glue-crawler-jdbctarget-connectionname", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Path": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-jdbctarget.html#cfn-glue-crawler-jdbctarget-path", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Exclusions": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-jdbctarget.html#cfn-glue-crawler-jdbctarget-exclusions", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::NetworkInterface.PrivateIpAddressSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-interface-privateipspec.html", - "Properties": { - "Primary": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-interface-privateipspec.html#cfn-ec2-networkinterface-privateipspecification-primary", - "PrimitiveType": "Boolean", - "Required": true, - "UpdateType": "Mutable" - }, - "PrivateIpAddress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-interface-privateipspec.html#cfn-ec2-networkinterface-privateipspecification-privateipaddress", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Table.TableInput": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html", - "Properties": { - "Owner": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-owner", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ViewOriginalText": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-vieworiginaltext", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "TableType": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-tabletype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Parameters": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-parameters", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - }, - "ViewExpandedText": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-viewexpandedtext", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "StorageDescriptor": { - "Type": "StorageDescriptor", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-storagedescriptor", - "UpdateType": "Mutable" - }, - "PartitionKeys": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-partitionkeys", - "ItemType": "Column", - "UpdateType": "Mutable" - }, - "Retention": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-retention", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::CodeBuild::Project.ProjectCache": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectcache.html", - "Properties": { - "Type": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectcache.html#cfn-codebuild-project-projectcache-type", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Location": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectcache.html#cfn-codebuild-project-projectcache-location", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::WAF::SizeConstraintSet.FieldToMatch": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint-fieldtomatch.html", - "Properties": { - "Data": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint-fieldtomatch.html#cfn-waf-sizeconstraintset-sizeconstraint-fieldtomatch-data", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint-fieldtomatch.html#cfn-waf-sizeconstraintset-sizeconstraint-fieldtomatch-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::IoT::TopicRule.LambdaAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-lambdaaction.html", - "Properties": { - "FunctionArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-lambdaaction.html#cfn-iot-topicrule-lambdaaction-functionarn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Lambda::Function.TracingConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-tracingconfig.html", - "Properties": { - "Mode": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-tracingconfig.html#cfn-lambda-function-tracingconfig-mode", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::Cluster.ScriptBootstrapActionConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scriptbootstrapactionconfig.html", - "Properties": { - "Args": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scriptbootstrapactionconfig.html#cfn-elasticmapreduce-cluster-scriptbootstrapactionconfig-args", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Path": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scriptbootstrapactionconfig.html#cfn-elasticmapreduce-cluster-scriptbootstrapactionconfig-path", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::AutoScaling::LaunchConfiguration.BlockDevice": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html", - "Properties": { - "DeleteOnTermination": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html#cfn-as-launchconfig-blockdev-template-deleteonterm", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Encrypted": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html#cfn-as-launchconfig-blockdev-template-encrypted", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Iops": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html#cfn-as-launchconfig-blockdev-template-iops", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "SnapshotId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html#cfn-as-launchconfig-blockdev-template-snapshotid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "VolumeSize": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html#cfn-as-launchconfig-blockdev-template-volumesize", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "VolumeType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html#cfn-as-launchconfig-blockdev-template-volumetype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.MetricsConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metricsconfiguration.html", - "Properties": { - "Id": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metricsconfiguration.html#cfn-s3-bucket-metricsconfiguration-id", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Prefix": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metricsconfiguration.html#cfn-s3-bucket-metricsconfiguration-prefix", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "TagFilters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metricsconfiguration.html#cfn-s3-bucket-metricsconfiguration-tagfilters", - "DuplicatesAllowed": false, - "ItemType": "TagFilter", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::Service.DeploymentConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentconfiguration.html", - "Properties": { - "MaximumPercent": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentconfiguration.html#cfn-ecs-service-deploymentconfiguration-maximumpercent", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "MinimumHealthyPercent": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentconfiguration.html#cfn-ecs-service-deploymentconfiguration-minimumhealthypercent", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::OpsWorks::Layer.AutoScalingThresholds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-loadbasedautoscaling-autoscalingthresholds.html", - "Properties": { - "CpuThreshold": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-loadbasedautoscaling-autoscalingthresholds.html#cfn-opsworks-layer-loadbasedautoscaling-autoscalingthresholds-cputhreshold", - "PrimitiveType": "Double", - "Required": false, - "UpdateType": "Mutable" - }, - "IgnoreMetricsTime": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-loadbasedautoscaling-autoscalingthresholds.html#cfn-opsworks-layer-loadbasedautoscaling-autoscalingthresholds-ignoremetricstime", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "InstanceCount": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-loadbasedautoscaling-autoscalingthresholds.html#cfn-opsworks-layer-loadbasedautoscaling-autoscalingthresholds-instancecount", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "LoadThreshold": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-loadbasedautoscaling-autoscalingthresholds.html#cfn-opsworks-layer-loadbasedautoscaling-autoscalingthresholds-loadthreshold", - "PrimitiveType": "Double", - "Required": false, - "UpdateType": "Mutable" - }, - "MemoryThreshold": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-loadbasedautoscaling-autoscalingthresholds.html#cfn-opsworks-layer-loadbasedautoscaling-autoscalingthresholds-memorythreshold", - "PrimitiveType": "Double", - "Required": false, - "UpdateType": "Mutable" - }, - "ThresholdsWaitTime": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-loadbasedautoscaling-autoscalingthresholds.html#cfn-opsworks-layer-loadbasedautoscaling-autoscalingthresholds-thresholdwaittime", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Batch::JobDefinition.MountPoints": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html", - "Properties": { - "ReadOnly": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html#cfn-batch-jobdefinition-mountpoints-readonly", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "SourceVolume": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html#cfn-batch-jobdefinition-mountpoints-sourcevolume", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ContainerPath": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html#cfn-batch-jobdefinition-mountpoints-containerpath", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeDeploy::DeploymentGroup.DeploymentStyle": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentstyle.html", - "Properties": { - "DeploymentOption": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentstyle.html#cfn-codedeploy-deploymentgroup-deploymentstyle-deploymentoption", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DeploymentType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentstyle.html#cfn-codedeploy-deploymentgroup-deploymentstyle-deploymenttype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Cognito::UserPool.AdminCreateUserConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-admincreateuserconfig.html", - "Properties": { - "InviteMessageTemplate": { - "Type": "InviteMessageTemplate", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-admincreateuserconfig.html#cfn-cognito-userpool-admincreateuserconfig-invitemessagetemplate", - "UpdateType": "Mutable" - }, - "UnusedAccountValidityDays": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-admincreateuserconfig.html#cfn-cognito-userpool-admincreateuserconfig-unusedaccountvaliditydays", - "PrimitiveType": "Double", - "UpdateType": "Mutable" - }, - "AllowAdminCreateUserOnly": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-admincreateuserconfig.html#cfn-cognito-userpool-admincreateuserconfig-allowadmincreateuseronly", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::Instance.Ebs": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-template.html", - "Properties": { - "DeleteOnTermination": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-template.html#cfn-ec2-blockdev-template-deleteontermination", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Encrypted": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-template.html#cfn-ec2-blockdev-template-encrypted", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Iops": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-template.html#cfn-ec2-blockdev-template-iops", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "SnapshotId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-template.html#cfn-ec2-blockdev-template-snapshotid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "VolumeSize": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-template.html#cfn-ec2-blockdev-template-volumesize", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "VolumeType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-template.html#cfn-ec2-blockdev-template-volumetype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeDeploy::DeploymentGroup.Alarm": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarm.html", - "Properties": { - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarm.html#cfn-codedeploy-deploymentgroup-alarm-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Cognito::UserPool.SchemaAttribute": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-schemaattribute.html", - "Properties": { - "DeveloperOnlyAttribute": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-schemaattribute.html#cfn-cognito-userpool-schemaattribute-developeronlyattribute", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "Mutable": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-schemaattribute.html#cfn-cognito-userpool-schemaattribute-mutable", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "AttributeDataType": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-schemaattribute.html#cfn-cognito-userpool-schemaattribute-attributedatatype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "StringAttributeConstraints": { - "Type": "StringAttributeConstraints", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-schemaattribute.html#cfn-cognito-userpool-schemaattribute-stringattributeconstraints", - "UpdateType": "Mutable" - }, - "Required": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-schemaattribute.html#cfn-cognito-userpool-schemaattribute-required", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "NumberAttributeConstraints": { - "Type": "NumberAttributeConstraints", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-schemaattribute.html#cfn-cognito-userpool-schemaattribute-numberattributeconstraints", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-schemaattribute.html#cfn-cognito-userpool-schemaattribute-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordColumn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-recordcolumn.html", - "Properties": { - "Mapping": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-recordcolumn.html#cfn-kinesisanalytics-applicationreferencedatasource-recordcolumn-mapping", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "SqlType": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-recordcolumn.html#cfn-kinesisanalytics-applicationreferencedatasource-recordcolumn-sqltype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Name": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-recordcolumn.html#cfn-kinesisanalytics-applicationreferencedatasource-recordcolumn-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html", - "Properties": { - "Dimensions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-dimensions", - "DuplicatesAllowed": false, - "ItemType": "MetricDimension", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "MetricName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-metricname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Namespace": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-namespace", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Statistic": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-statistic", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Unit": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-unit", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Classifier.GrokClassifier": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-grokclassifier.html", - "Properties": { - "CustomPatterns": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-grokclassifier.html#cfn-glue-classifier-grokclassifier-custompatterns", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "GrokPattern": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-grokclassifier.html#cfn-glue-classifier-grokclassifier-grokpattern", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Classification": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-grokclassifier.html#cfn-glue-classifier-grokclassifier-classification", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-grokclassifier.html#cfn-glue-classifier-grokclassifier-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::EC2::LaunchTemplate.TagSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-tagspecification.html", - "Properties": { - "ResourceType": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-tagspecification.html#cfn-ec2-launchtemplate-tagspecification-resourcetype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Tags": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-tagspecification.html#cfn-ec2-launchtemplate-tagspecification-tags", - "ItemType": "Tag", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisAnalytics::Application.RecordFormat": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-recordformat.html", - "Properties": { - "MappingParameters": { - "Type": "MappingParameters", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-recordformat.html#cfn-kinesisanalytics-application-recordformat-mappingparameters", - "UpdateType": "Mutable" - }, - "RecordFormatType": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-recordformat.html#cfn-kinesisanalytics-application-recordformat-recordformattype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.TagFilter": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html", - "Properties": { - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html#cfn-s3-bucket-tagfilter-key", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html#cfn-s3-bucket-tagfilter-value", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::WAF::SizeConstraintSet.SizeConstraint": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint.html", - "Properties": { - "ComparisonOperator": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint.html#cfn-waf-sizeconstraintset-sizeconstraint-comparisonoperator", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "FieldToMatch": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint.html#cfn-waf-sizeconstraintset-sizeconstraint-fieldtomatch", - "Required": true, - "Type": "FieldToMatch", - "UpdateType": "Mutable" - }, - "Size": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint.html#cfn-waf-sizeconstraintset-sizeconstraint-size", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - }, - "TextTransformation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint.html#cfn-waf-sizeconstraintset-sizeconstraint-texttransformation", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::GuardDuty::Filter.Condition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-condition.html", - "Properties": { - "Lt": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-condition.html#cfn-guardduty-filter-condition-lt", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "Gte": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-condition.html#cfn-guardduty-filter-condition-gte", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "Neq": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-condition.html#cfn-guardduty-filter-condition-neq", - "UpdateType": "Mutable" - }, - "Eq": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-condition.html#cfn-guardduty-filter-condition-eq", - "UpdateType": "Mutable" - }, - "Lte": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-condition.html#cfn-guardduty-filter-condition-lte", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - } - } - }, - "AWS::OpsWorks::Instance.BlockDeviceMapping": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-blockdevicemapping.html", - "Properties": { - "DeviceName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-blockdevicemapping.html#cfn-opsworks-instance-blockdevicemapping-devicename", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Ebs": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-blockdevicemapping.html#cfn-opsworks-instance-blockdevicemapping-ebs", - "Required": false, - "Type": "EbsBlockDevice", - "UpdateType": "Mutable" - }, - "NoDevice": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-blockdevicemapping.html#cfn-opsworks-instance-blockdevicemapping-nodevice", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "VirtualName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-blockdevicemapping.html#cfn-opsworks-instance-blockdevicemapping-virtualname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::LaunchTemplate.Ipv6Add": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ipv6add.html", - "Properties": { - "Ipv6Address": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ipv6add.html#cfn-ec2-launchtemplate-ipv6add-ipv6address", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::LaunchTemplate.IamInstanceProfile": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-iaminstanceprofile.html", - "Properties": { - "Arn": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-iaminstanceprofile.html#cfn-ec2-launchtemplate-launchtemplatedata-iaminstanceprofile-arn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-iaminstanceprofile.html#cfn-ec2-launchtemplate-launchtemplatedata-iaminstanceprofile-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::Cognito::UserPool.NumberAttributeConstraints": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-numberattributeconstraints.html", - "Properties": { - "MinValue": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-numberattributeconstraints.html#cfn-cognito-userpool-numberattributeconstraints-minvalue", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "MaxValue": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-numberattributeconstraints.html#cfn-cognito-userpool-numberattributeconstraints-maxvalue", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-predefinedscalingmetricspecification.html", - "Properties": { - "ResourceLabel": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-predefinedscalingmetricspecification.html#cfn-autoscalingplans-scalingplan-predefinedscalingmetricspecification-resourcelabel", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "PredefinedScalingMetricType": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-predefinedscalingmetricspecification.html#cfn-autoscalingplans-scalingplan-predefinedscalingmetricspecification-predefinedscalingmetrictype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::SES::ReceiptRule.Rule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-rule.html", - "Properties": { - "ScanEnabled": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-rule.html#cfn-ses-receiptrule-rule-scanenabled", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "Recipients": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-rule.html#cfn-ses-receiptrule-rule-recipients", - "UpdateType": "Mutable" - }, - "Actions": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-rule.html#cfn-ses-receiptrule-rule-actions", - "ItemType": "Action", - "UpdateType": "Mutable" - }, - "Enabled": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-rule.html#cfn-ses-receiptrule-rule-enabled", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-rule.html#cfn-ses-receiptrule-rule-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "TlsPolicy": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-rule.html#cfn-ses-receiptrule-rule-tlspolicy", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudTrail::Trail.DataResource": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-dataresource.html", - "Properties": { - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-dataresource.html#cfn-cloudtrail-trail-dataresource-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Values": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-dataresource.html#cfn-cloudtrail-trail-dataresource-values", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::IoT::TopicRule.DynamoDBv2Action": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbv2action.html", - "Properties": { - "PutItem": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbv2action.html#cfn-iot-topicrule-dynamodbv2action-putitem", - "Required": false, - "Type": "PutItemInput", - "UpdateType": "Mutable" - }, - "RoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbv2action.html#cfn-iot-topicrule-dynamodbv2action-rolearn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::OpsWorks::Instance.EbsBlockDevice": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-ebsblockdevice.html", - "Properties": { - "DeleteOnTermination": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-ebsblockdevice.html#cfn-opsworks-instance-ebsblockdevice-deleteontermination", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Iops": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-ebsblockdevice.html#cfn-opsworks-instance-ebsblockdevice-iops", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "SnapshotId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-ebsblockdevice.html#cfn-opsworks-instance-ebsblockdevice-snapshotid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "VolumeSize": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-ebsblockdevice.html#cfn-opsworks-instance-ebsblockdevice-volumesize", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "VolumeType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-ebsblockdevice.html#cfn-opsworks-instance-ebsblockdevice-volumetype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::ApiGateway::UsagePlan.ThrottleSettings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-throttlesettings.html", - "Properties": { - "BurstLimit": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-throttlesettings.html#cfn-apigateway-usageplan-throttlesettings-burstlimit", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "RateLimit": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-throttlesettings.html#cfn-apigateway-usageplan-throttlesettings-ratelimit", - "PrimitiveType": "Double", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::ApiGateway::DocumentationPart.Location": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-documentationpart-location.html", - "Properties": { - "Method": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-documentationpart-location.html#cfn-apigateway-documentationpart-location-method", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-documentationpart-location.html#cfn-apigateway-documentationpart-location-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Path": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-documentationpart-location.html#cfn-apigateway-documentationpart-location-path", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "StatusCode": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-documentationpart-location.html#cfn-apigateway-documentationpart-location-statuscode", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-documentationpart-location.html#cfn-apigateway-documentationpart-location-type", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::DataPipeline::Pipeline.PipelineObject": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects.html", - "Properties": { - "Fields": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects.html#cfn-datapipeline-pipeline-pipelineobjects-fields", - "DuplicatesAllowed": true, - "ItemType": "Field", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "Id": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects.html#cfn-datapipeline-pipeline-pipelineobjects-id", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects.html#cfn-datapipeline-pipeline-pipelineobjects-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::Instance.NoDevice": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-nodevice.html", - "Properties": {} - }, - "AWS::Glue::Table.SerdeInfo": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-serdeinfo.html", - "Properties": { - "Parameters": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-serdeinfo.html#cfn-glue-table-serdeinfo-parameters", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - }, - "SerializationLibrary": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-serdeinfo.html#cfn-glue-table-serdeinfo-serializationlibrary", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-serdeinfo.html#cfn-glue-table-serdeinfo-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::AutoScaling::ScalingPolicy.StepAdjustment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-stepadjustments.html", - "Properties": { - "MetricIntervalLowerBound": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-stepadjustments.html#cfn-autoscaling-scalingpolicy-stepadjustment-metricintervallowerbound", - "PrimitiveType": "Double", - "Required": false, - "UpdateType": "Mutable" - }, - "MetricIntervalUpperBound": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-stepadjustments.html#cfn-autoscaling-scalingpolicy-stepadjustment-metricintervalupperbound", - "PrimitiveType": "Double", - "Required": false, - "UpdateType": "Mutable" - }, - "ScalingAdjustment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-stepadjustments.html#cfn-autoscaling-scalingpolicy-stepadjustment-scalingadjustment", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::IAM::Role.Policy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html", - "Properties": { - "PolicyDocument": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html#cfn-iam-policies-policydocument", - "PrimitiveType": "Json", - "Required": true, - "UpdateType": "Mutable" - }, - "PolicyName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html#cfn-iam-policies-policyname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Batch::JobDefinition.Environment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-environment.html", - "Properties": { - "Value": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-environment.html#cfn-batch-jobdefinition-environment-value", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-environment.html#cfn-batch-jobdefinition-environment-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::Instance.SsmAssociation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations.html", - "Properties": { - "AssociationParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations.html#cfn-ec2-instance-ssmassociations-associationparameters", - "DuplicatesAllowed": true, - "ItemType": "AssociationParameter", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "DocumentName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations.html#cfn-ec2-instance-ssmassociations-documentname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::Cluster.CloudWatchAlarmDefinition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-cloudwatchalarmdefinition.html", - "Properties": { - "ComparisonOperator": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-cluster-cloudwatchalarmdefinition-comparisonoperator", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Dimensions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-cluster-cloudwatchalarmdefinition-dimensions", - "DuplicatesAllowed": false, - "ItemType": "MetricDimension", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "EvaluationPeriods": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-cluster-cloudwatchalarmdefinition-evaluationperiods", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "MetricName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-cluster-cloudwatchalarmdefinition-metricname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Namespace": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-cluster-cloudwatchalarmdefinition-namespace", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Period": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-cluster-cloudwatchalarmdefinition-period", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - }, - "Statistic": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-cluster-cloudwatchalarmdefinition-statistic", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Threshold": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-cluster-cloudwatchalarmdefinition-threshold", - "PrimitiveType": "Double", - "Required": true, - "UpdateType": "Mutable" - }, - "Unit": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-cluster-cloudwatchalarmdefinition-unit", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Crawler.Schedule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-schedule.html", - "Properties": { - "ScheduleExpression": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-schedule.html#cfn-glue-crawler-schedule-scheduleexpression", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::SSM::PatchBaseline.PatchSource": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchsource.html", - "Properties": { - "Products": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchsource.html#cfn-ssm-patchbaseline-patchsource-products", - "UpdateType": "Mutable" - }, - "Configuration": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchsource.html#cfn-ssm-patchbaseline-patchsource-configuration", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchsource.html#cfn-ssm-patchbaseline-patchsource-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisAnalytics::Application.KinesisFirehoseInput": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-kinesisfirehoseinput.html", - "Properties": { - "ResourceARN": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-kinesisfirehoseinput.html#cfn-kinesisanalytics-application-kinesisfirehoseinput-resourcearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "RoleARN": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-kinesisfirehoseinput.html#cfn-kinesisanalytics-application-kinesisfirehoseinput-rolearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::OpsWorks::Stack.StackConfigurationManager": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-stackconfigmanager.html", - "Properties": { - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-stackconfigmanager.html#cfn-opsworks-configmanager-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Version": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-stackconfigmanager.html#cfn-opsworks-configmanager-version", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudFront::StreamingDistribution.S3Origin": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-s3origin.html", - "Properties": { - "DomainName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-s3origin.html#cfn-cloudfront-streamingdistribution-s3origin-domainname", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "OriginAccessIdentity": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-s3origin.html#cfn-cloudfront-streamingdistribution-s3origin-originaccessidentity", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeBuild::Project.VpcConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html", - "Properties": { - "Subnets": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html#cfn-codebuild-project-vpcconfig-subnets", - "UpdateType": "Mutable" - }, - "VpcId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html#cfn-codebuild-project-vpcconfig-vpcid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "SecurityGroupIds": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html#cfn-codebuild-project-vpcconfig-securitygroupids", - "UpdateType": "Mutable" - } - } - }, - "AWS::IoT::TopicRule.ElasticsearchAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html", - "Properties": { - "Endpoint": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html#cfn-iot-topicrule-elasticsearchaction-endpoint", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Id": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html#cfn-iot-topicrule-elasticsearchaction-id", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Index": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html#cfn-iot-topicrule-elasticsearchaction-index", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "RoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html#cfn-iot-topicrule-elasticsearchaction-rolearn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html#cfn-iot-topicrule-elasticsearchaction-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Partition.SkewedInfo": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-skewedinfo.html", - "Properties": { - "SkewedColumnNames": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-skewedinfo.html#cfn-glue-partition-skewedinfo-skewedcolumnnames", - "UpdateType": "Mutable" - }, - "SkewedColumnValues": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-skewedinfo.html#cfn-glue-partition-skewedinfo-skewedcolumnvalues", - "UpdateType": "Mutable" - }, - "SkewedColumnValueLocationMaps": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-skewedinfo.html#cfn-glue-partition-skewedinfo-skewedcolumnvaluelocationmaps", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationversionlifecycleconfig.html", - "Properties": { - "MaxAgeRule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationversionlifecycleconfig.html#cfn-elasticbeanstalk-application-applicationversionlifecycleconfig-maxagerule", - "Required": false, - "Type": "MaxAgeRule", - "UpdateType": "Mutable" - }, - "MaxCountRule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationversionlifecycleconfig.html#cfn-elasticbeanstalk-application-applicationversionlifecycleconfig-maxcountrule", - "Required": false, - "Type": "MaxCountRule", - "UpdateType": "Mutable" - } - } - }, - "AWS::Cognito::UserPool.SmsConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-smsconfiguration.html", - "Properties": { - "ExternalId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-smsconfiguration.html#cfn-cognito-userpool-smsconfiguration-externalid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "SnsCallerArn": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-smsconfiguration.html#cfn-cognito-userpool-smsconfiguration-snscallerarn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::Config::ConfigRule.Source": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source.html", - "Properties": { - "Owner": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source.html#cfn-config-configrule-source-owner", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "SourceDetails": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source.html#cfn-config-configrule-source-sourcedetails", - "DuplicatesAllowed": false, - "ItemType": "SourceDetail", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "SourceIdentifier": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source.html#cfn-config-configrule-source-sourceidentifier", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::ApiGateway::RestApi.S3Location": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html", - "Properties": { - "Bucket": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-bucket", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ETag": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-etag", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-key", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Version": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-version", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::DynamoDB::Table.Projection": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-projectionobject.html", - "Properties": { - "NonKeyAttributes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-projectionobject.html#cfn-dynamodb-projectionobj-nonkeyatt", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "ProjectionType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-projectionobject.html#cfn-dynamodb-projectionobj-projtype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::LaunchTemplate.NetworkInterface": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html", - "Properties": { - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "PrivateIpAddress": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-privateipaddress", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "PrivateIpAddresses": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-privateipaddresses", - "ItemType": "PrivateIpAdd", - "UpdateType": "Mutable" - }, - "SecondaryPrivateIpAddressCount": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-secondaryprivateipaddresscount", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "Ipv6AddressCount": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-ipv6addresscount", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "Groups": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-groups", - "UpdateType": "Mutable" - }, - "DeviceIndex": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-deviceindex", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "SubnetId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-subnetid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Ipv6Addresses": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-ipv6addresses", - "ItemType": "Ipv6Add", - "UpdateType": "Mutable" - }, - "AssociatePublicIpAddress": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-associatepublicipaddress", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "NetworkInterfaceId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-networkinterfaceid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DeleteOnTermination": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-deleteontermination", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticLoadBalancingV2::Listener.Certificate": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-certificates.html", - "Properties": { - "CertificateArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-certificates.html#cfn-elasticloadbalancingv2-listener-certificates-certificatearn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticLoadBalancingV2::TargetGroup.Matcher": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-matcher.html", - "Properties": { - "HttpCode": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-matcher.html#cfn-elasticloadbalancingv2-targetgroup-matcher-httpcode", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::WAFRegional::XssMatchSet.FieldToMatch": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-xssmatchset-fieldtomatch.html", - "Properties": { - "Type": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-xssmatchset-fieldtomatch.html#cfn-wafregional-xssmatchset-fieldtomatch-type", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Data": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-xssmatchset-fieldtomatch.html#cfn-wafregional-xssmatchset-fieldtomatch-data", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::IoT::TopicRule.DynamoDBAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html", - "Properties": { - "HashKeyField": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-hashkeyfield", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "HashKeyType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-hashkeytype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "HashKeyValue": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-hashkeyvalue", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "PayloadField": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-payloadfield", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "RangeKeyField": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-rangekeyfield", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "RangeKeyType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-rangekeytype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "RangeKeyValue": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-rangekeyvalue", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "RoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-rolearn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "TableName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-tablename", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::Service.PlacementConstraint": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-placementconstraint.html", - "Properties": { - "Expression": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-placementconstraint.html#cfn-ecs-service-placementconstraint-expression", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-placementconstraint.html#cfn-ecs-service-placementconstraint-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetdescription.html", - "Properties": { - "AvailabilityZone": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetdescription.html#cfn-elasticloadbalancingv2-targetgroup-targetdescription-availabilityzone", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Id": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetdescription.html#cfn-elasticloadbalancingv2-targetgroup-targetdescription-id", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Port": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetdescription.html#cfn-elasticloadbalancingv2-targetgroup-targetdescription-port", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-minimumhealthyhosts.html", - "Properties": { - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-minimumhealthyhosts.html#cfn-codedeploy-deploymentconfig-minimumhealthyhosts-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-minimumhealthyhosts.html#cfn-codedeploy-deploymentconfig-minimumhealthyhosts-value", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::AutoScalingPlans::ScalingPlan.TagFilter": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-tagfilter.html", - "Properties": { - "Values": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-tagfilter.html#cfn-autoscalingplans-scalingplan-tagfilter-values", - "UpdateType": "Mutable" - }, - "Key": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-tagfilter.html#cfn-autoscalingplans-scalingplan-tagfilter-key", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::Route53::RecordSetGroup.GeoLocation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geolocation.html", - "Properties": { - "ContinentCode": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geolocation.html#cfn-route53-recordsetgroup-geolocation-continentcode", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "CountryCode": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geolocation.html#cfn-route53-recordset-geolocation-countrycode", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "SubdivisionCode": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geolocation.html#cfn-route53-recordset-geolocation-subdivisioncode", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::Instance.CreditSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-creditspecification.html", - "Properties": { - "CPUCredits": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-creditspecification.html#cfn-ec2-instance-creditspecification-cpucredits", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::ApiGateway::RestApi.EndpointConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html", - "Properties": { - "Types": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html#cfn-apigateway-restapi-endpointconfiguration-types", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::InstanceGroupConfig.ScalingConstraints": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingconstraints.html", - "Properties": { - "MaxCapacity": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingconstraints.html#cfn-elasticmapreduce-instancegroupconfig-scalingconstraints-maxcapacity", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - }, - "MinCapacity": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingconstraints.html#cfn-elasticmapreduce-instancegroupconfig-scalingconstraints-mincapacity", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::WAFRegional::SizeConstraintSet.SizeConstraint": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sizeconstraintset-sizeconstraint.html", - "Properties": { - "ComparisonOperator": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sizeconstraintset-sizeconstraint.html#cfn-wafregional-sizeconstraintset-sizeconstraint-comparisonoperator", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Size": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sizeconstraintset-sizeconstraint.html#cfn-wafregional-sizeconstraintset-sizeconstraint-size", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "TextTransformation": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sizeconstraintset-sizeconstraint.html#cfn-wafregional-sizeconstraintset-sizeconstraint-texttransformation", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "FieldToMatch": { - "Type": "FieldToMatch", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sizeconstraintset-sizeconstraint.html#cfn-wafregional-sizeconstraintset-sizeconstraint-fieldtomatch", - "UpdateType": "Mutable" - } - } - }, - "AWS::OpsWorks::Layer.Recipes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-recipes.html", - "Properties": { - "Configure": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-recipes.html#cfn-opsworks-layer-customrecipes-configure", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Deploy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-recipes.html#cfn-opsworks-layer-customrecipes-deploy", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Setup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-recipes.html#cfn-opsworks-layer-customrecipes-setup", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Shutdown": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-recipes.html#cfn-opsworks-layer-customrecipes-shutdown", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Undeploy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-recipes.html#cfn-opsworks-layer-customrecipes-undeploy", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Crawler.S3Target": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-s3target.html", - "Properties": { - "Path": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-s3target.html#cfn-glue-crawler-s3target-path", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Exclusions": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-s3target.html#cfn-glue-crawler-s3target-exclusions", - "UpdateType": "Mutable" - } - } - }, - "AWS::ECR::Repository.LifecyclePolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repository-lifecyclepolicy.html", - "Properties": { - "LifecyclePolicyText": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repository-lifecyclepolicy.html#cfn-ecr-repository-lifecyclepolicy-lifecyclepolicytext", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "RegistryId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repository-lifecyclepolicy.html#cfn-ecr-repository-lifecyclepolicy-registryid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::TaskDefinition.Volume": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes.html", - "Properties": { - "Host": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes.html#cfn-ecs-taskdefinition-volumes-host", - "Required": false, - "Type": "HostVolumeProperties", - "UpdateType": "Immutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes.html#cfn-ecs-taskdefinition-volumes-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::CloudWatch::Alarm.Dimension": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-dimension.html", - "Properties": { - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-dimension.html#cfn-cloudwatch-alarm-dimension-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-dimension.html#cfn-cloudwatch-alarm-dimension-value", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition.html", - "Properties": { - "ComparisonOperator": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition-comparisonoperator", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Dimensions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition-dimensions", - "DuplicatesAllowed": false, - "ItemType": "MetricDimension", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "EvaluationPeriods": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition-evaluationperiods", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "MetricName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition-metricname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Namespace": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition-namespace", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Period": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition-period", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - }, - "Statistic": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition-statistic", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Threshold": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition-threshold", - "PrimitiveType": "Double", - "Required": true, - "UpdateType": "Mutable" - }, - "Unit": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition-unit", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.Transition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-transition.html", - "Properties": { - "StorageClass": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-transition.html#cfn-s3-bucket-lifecycleconfig-rule-transition-storageclass", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "TransitionDate": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-transition.html#cfn-s3-bucket-lifecycleconfig-rule-transition-transitiondate", - "PrimitiveType": "Timestamp", - "Required": false, - "UpdateType": "Mutable" - }, - "TransitionInDays": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-transition.html#cfn-s3-bucket-lifecycleconfig-rule-transition-transitionindays", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Route53::HostedZone.QueryLoggingConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-queryloggingconfig.html", - "Properties": { - "CloudWatchLogsLogGroupArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-queryloggingconfig.html#cfn-route53-hostedzone-queryloggingconfig-cloudwatchlogsloggrouparn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::SpotFleet.InstanceIpv6Address": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instanceipv6address.html", - "Properties": { - "Ipv6Address": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instanceipv6address.html#cfn-ec2-spotfleet-instanceipv6address-ipv6address", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::Cluster.EbsConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ebsconfiguration.html", - "Properties": { - "EbsBlockDeviceConfigs": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ebsconfiguration.html#cfn-elasticmapreduce-cluster-ebsconfiguration-ebsblockdeviceconfigs", - "DuplicatesAllowed": false, - "ItemType": "EbsBlockDeviceConfig", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "EbsOptimized": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ebsconfiguration.html#cfn-elasticmapreduce-cluster-ebsconfiguration-ebsoptimized", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::SSM::Association.S3OutputLocation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-s3outputlocation.html", - "Properties": { - "OutputS3BucketName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-s3outputlocation.html#cfn-ssm-association-s3outputlocation-outputs3bucketname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "OutputS3KeyPrefix": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-s3outputlocation.html#cfn-ssm-association-s3outputlocation-outputs3keyprefix", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.DataExport": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-dataexport.html", - "Properties": { - "Destination": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-dataexport.html#cfn-s3-bucket-dataexport-destination", - "Required": true, - "Type": "Destination", - "UpdateType": "Mutable" - }, - "OutputSchemaVersion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-dataexport.html#cfn-s3-bucket-dataexport-outputschemaversion", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::WAFRegional::WebACL.Action": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-webacl-action.html", - "Properties": { - "Type": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-webacl-action.html#cfn-wafregional-webacl-action-type", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::Lambda::Function.Code": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html", - "Properties": { - "S3Bucket": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3bucket", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "S3Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3key", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "S3ObjectVersion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3objectversion", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ZipFile": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudFront::Distribution.CustomErrorResponse": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customerrorresponse.html", - "Properties": { - "ResponseCode": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customerrorresponse.html#cfn-cloudfront-distribution-customerrorresponse-responsecode", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "ErrorCachingMinTTL": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customerrorresponse.html#cfn-cloudfront-distribution-customerrorresponse-errorcachingminttl", - "PrimitiveType": "Double", - "UpdateType": "Mutable" - }, - "ErrorCode": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customerrorresponse.html#cfn-cloudfront-distribution-customerrorresponse-errorcode", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "ResponsePagePath": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customerrorresponse.html#cfn-cloudfront-distribution-customerrorresponse-responsepagepath", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::SES::ReceiptRule.LambdaAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-lambdaaction.html", - "Properties": { - "FunctionArn": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-lambdaaction.html#cfn-ses-receiptrule-lambdaaction-functionarn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "TopicArn": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-lambdaaction.html#cfn-ses-receiptrule-lambdaaction-topicarn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "InvocationType": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-lambdaaction.html#cfn-ses-receiptrule-lambdaaction-invocationtype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisFirehose::DeliveryStream.Processor": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processor.html", - "Properties": { - "Parameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processor.html#cfn-kinesisfirehose-deliverystream-processor-parameters", - "DuplicatesAllowed": false, - "ItemType": "ProcessorParameter", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processor.html#cfn-kinesisfirehose-deliverystream-processor-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::TaskDefinition.HealthCheck": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html", - "Properties": { - "Command": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html#cfn-ecs-taskdefinition-healthcheck-command", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": true, - "Type": "List", - "UpdateType": "Immutable" - }, - "Interval": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html#cfn-ecs-taskdefinition-healthcheck-interval", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - }, - "Retries": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html#cfn-ecs-taskdefinition-healthcheck-retries", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - }, - "StartPeriod": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html#cfn-ecs-taskdefinition-healthcheck-startperiod", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - }, - "Timeout": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html#cfn-ecs-taskdefinition-healthcheck-timeout", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-subnetmapping.html", - "Properties": { - "AllocationId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-subnetmapping.html#cfn-elasticloadbalancingv2-loadbalancer-subnetmapping-allocationid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "SubnetId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-subnetmapping.html#cfn-elasticloadbalancingv2-loadbalancer-subnetmapping-subnetid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeDeploy::DeploymentGroup.EC2TagFilter": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilters.html", - "Properties": { - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilters.html#cfn-properties-codedeploy-deploymentgroup-ec2tagfilters-key", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilters.html#cfn-properties-codedeploy-deploymentgroup-ec2tagfilters-type", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilters.html#cfn-properties-codedeploy-deploymentgroup-ec2tagfilters-value", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.CorsConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors.html", - "Properties": { - "CorsRules": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors.html#cfn-s3-bucket-cors-corsrule", - "DuplicatesAllowed": false, - "ItemType": "CorsRule", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.ReplicationDestination": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules-destination.html", - "Properties": { - "AccessControlTranslation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules-destination.html#cfn-s3-bucket-replicationdestination-accesscontroltranslation", - "Required": false, - "Type": "AccessControlTranslation", - "UpdateType": "Mutable" - }, - "Account": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules-destination.html#cfn-s3-bucket-replicationdestination-account", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Bucket": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules-destination.html#cfn-s3-bucket-replicationconfiguration-rules-destination-bucket", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "EncryptionConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules-destination.html#cfn-s3-bucket-replicationdestination-encryptionconfiguration", - "Required": false, - "Type": "EncryptionConfiguration", - "UpdateType": "Mutable" - }, - "StorageClass": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules-destination.html#cfn-s3-bucket-replicationconfiguration-rules-destination-storageclass", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::SecurityGroup.Egress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html", - "Properties": { - "CidrIp": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-cidrip", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "CidrIpv6": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-cidripv6", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DestinationPrefixListId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-destinationprefixlistid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DestinationSecurityGroupId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-destsecgroupid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "FromPort": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-fromport", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "IpProtocol": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-ipprotocol", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "ToPort": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-toport", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisAnalytics::Application.InputParallelism": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputparallelism.html", - "Properties": { - "Count": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputparallelism.html#cfn-kinesisanalytics-application-inputparallelism-count", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - } - } - }, - "AWS::ServiceCatalog::CloudFormationProvisionedProduct.ProvisioningParameter": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningparameter.html", - "Properties": { - "Value": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningparameter.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningparameter-value", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Key": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningparameter.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningparameter-key", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::IoT::TopicRule.KinesisAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kinesisaction.html", - "Properties": { - "PartitionKey": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kinesisaction.html#cfn-iot-topicrule-kinesisaction-partitionkey", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "RoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kinesisaction.html#cfn-iot-topicrule-kinesisaction-rolearn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "StreamName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kinesisaction.html#cfn-iot-topicrule-kinesisaction-streamname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::TaskDefinition.PortMapping": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-portmappings.html", - "Properties": { - "ContainerPort": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-portmappings.html#cfn-ecs-taskdefinition-containerdefinition-portmappings-containerport", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - }, - "HostPort": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-portmappings.html#cfn-ecs-taskdefinition-containerdefinition-portmappings-readonly", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - }, - "Protocol": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-portmappings.html#cfn-ecs-taskdefinition-containerdefinition-portmappings-sourcevolume", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::WAFRegional::SizeConstraintSet.FieldToMatch": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sizeconstraintset-fieldtomatch.html", - "Properties": { - "Type": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sizeconstraintset-fieldtomatch.html#cfn-wafregional-sizeconstraintset-fieldtomatch-type", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Data": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sizeconstraintset-fieldtomatch.html#cfn-wafregional-sizeconstraintset-fieldtomatch-data", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::IoT::TopicRule.CloudwatchAlarmAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchalarmaction.html", - "Properties": { - "AlarmName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchalarmaction.html#cfn-iot-topicrule-cloudwatchalarmaction-alarmname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "RoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchalarmaction.html#cfn-iot-topicrule-cloudwatchalarmaction-rolearn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "StateReason": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchalarmaction.html#cfn-iot-topicrule-cloudwatchalarmaction-statereason", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "StateValue": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchalarmaction.html#cfn-iot-topicrule-cloudwatchalarmaction-statevalue", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::TaskDefinition.Ulimit": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-ulimit.html", - "Properties": { - "HardLimit": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-ulimit.html#cfn-ecs-taskdefinition-containerdefinition-ulimit-hardlimit", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Immutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-ulimit.html#cfn-ecs-taskdefinition-containerdefinition-ulimit-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "SoftLimit": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-ulimit.html#cfn-ecs-taskdefinition-containerdefinition-ulimit-softlimit", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::DynamoDB::Table.PointInTimeRecoverySpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-pointintimerecoveryspecification.html", - "Properties": { - "PointInTimeRecoveryEnabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-pointintimerecoveryspecification.html#cfn-dynamodb-table-pointintimerecoveryspecification-pointintimerecoveryenabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisAnalytics::Application.InputProcessingConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputprocessingconfiguration.html", - "Properties": { - "InputLambdaProcessor": { - "Type": "InputLambdaProcessor", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputprocessingconfiguration.html#cfn-kinesisanalytics-application-inputprocessingconfiguration-inputlambdaprocessor", - "UpdateType": "Mutable" - } - } - }, - "AWS::Lambda::Function.Environment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html", - "Properties": { - "Variables": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html#cfn-lambda-function-environment-variables", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - } - } - }, - "AWS::OpsWorks::Layer.LifecycleEventConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-lifecycleeventconfiguration.html", - "Properties": { - "ShutdownEventConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-lifecycleeventconfiguration.html#cfn-opsworks-layer-lifecycleconfiguration-shutdowneventconfiguration", - "Required": false, - "Type": "ShutdownEventConfiguration", - "UpdateType": "Mutable" - } - } - }, - "AWS::OpsWorks::Stack.RdsDbInstance": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-rdsdbinstance.html", - "Properties": { - "DbPassword": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-rdsdbinstance.html#cfn-opsworks-stack-rdsdbinstance-dbpassword", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "DbUser": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-rdsdbinstance.html#cfn-opsworks-stack-rdsdbinstance-dbuser", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "RdsDbInstanceArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-rdsdbinstance.html#cfn-opsworks-stack-rdsdbinstance-rdsdbinstancearn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::SpotFleet.GroupIdentifier": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-securitygroups.html", - "Properties": { - "GroupId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-securitygroups.html#cfn-ec2-spotfleet-groupidentifier-groupid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Budgets::Budget.CostTypes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html", - "Properties": { - "IncludeSupport": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includesupport", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "IncludeOtherSubscription": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includeothersubscription", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "IncludeTax": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includetax", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "IncludeSubscription": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includesubscription", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "UseBlended": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-useblended", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "IncludeUpfront": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includeupfront", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "IncludeDiscount": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includediscount", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "IncludeCredit": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includecredit", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "IncludeRecurring": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includerecurring", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "UseAmortized": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-useamortized", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "IncludeRefund": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includerefund", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::Cluster.ScalingRule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingrule.html", - "Properties": { - "Action": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingrule.html#cfn-elasticmapreduce-cluster-scalingrule-action", - "Required": true, - "Type": "ScalingAction", - "UpdateType": "Mutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingrule.html#cfn-elasticmapreduce-cluster-scalingrule-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingrule.html#cfn-elasticmapreduce-cluster-scalingrule-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Trigger": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingrule.html#cfn-elasticmapreduce-cluster-scalingrule-trigger", - "Required": true, - "Type": "ScalingTrigger", - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudFront::StreamingDistribution.Logging": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-logging.html", - "Properties": { - "Bucket": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-logging.html#cfn-cloudfront-streamingdistribution-logging-bucket", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Enabled": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-logging.html#cfn-cloudfront-streamingdistribution-logging-enabled", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "Prefix": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-logging.html#cfn-cloudfront-streamingdistribution-logging-prefix", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::WAF::ByteMatchSet.FieldToMatch": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples-fieldtomatch.html", - "Properties": { - "Data": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples-fieldtomatch.html#cfn-waf-bytematchset-bytematchtuples-fieldtomatch-data", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples-fieldtomatch.html#cfn-waf-bytematchset-bytematchtuples-fieldtomatch-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::IoT::TopicRule.Action": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html", - "Properties": { - "CloudwatchAlarm": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-cloudwatchalarm", - "Required": false, - "Type": "CloudwatchAlarmAction", - "UpdateType": "Mutable" - }, - "CloudwatchMetric": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-cloudwatchmetric", - "Required": false, - "Type": "CloudwatchMetricAction", - "UpdateType": "Mutable" - }, - "DynamoDB": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-dynamodb", - "Required": false, - "Type": "DynamoDBAction", - "UpdateType": "Mutable" - }, - "DynamoDBv2": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-dynamodbv2", - "Required": false, - "Type": "DynamoDBv2Action", - "UpdateType": "Mutable" - }, - "Elasticsearch": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-elasticsearch", - "Required": false, - "Type": "ElasticsearchAction", - "UpdateType": "Mutable" - }, - "Firehose": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-firehose", - "Required": false, - "Type": "FirehoseAction", - "UpdateType": "Mutable" - }, - "Kinesis": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-kinesis", - "Required": false, - "Type": "KinesisAction", - "UpdateType": "Mutable" - }, - "Lambda": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-lambda", - "Required": false, - "Type": "LambdaAction", - "UpdateType": "Mutable" - }, - "Republish": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-republish", - "Required": false, - "Type": "RepublishAction", - "UpdateType": "Mutable" - }, - "S3": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-s3", - "Required": false, - "Type": "S3Action", - "UpdateType": "Mutable" - }, - "Sns": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-sns", - "Required": false, - "Type": "SnsAction", - "UpdateType": "Mutable" - }, - "Sqs": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-sqs", - "Required": false, - "Type": "SqsAction", - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.AccelerateConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accelerateconfiguration.html", - "Properties": { - "AccelerationStatus": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accelerateconfiguration.html#cfn-s3-bucket-accelerateconfiguration-accelerationstatus", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::SES::ConfigurationSetEventDestination.KinesisFirehoseDestination": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-kinesisfirehosedestination.html", - "Properties": { - "IAMRoleARN": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-kinesisfirehosedestination.html#cfn-ses-configurationseteventdestination-kinesisfirehosedestination-iamrolearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DeliveryStreamARN": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-kinesisfirehosedestination.html#cfn-ses-configurationseteventdestination-kinesisfirehosedestination-deliverystreamarn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Trigger.Condition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-condition.html", - "Properties": { - "State": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-condition.html#cfn-glue-trigger-condition-state", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "LogicalOperator": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-condition.html#cfn-glue-trigger-condition-logicaloperator", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "JobName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-condition.html#cfn-glue-trigger-condition-jobname", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisFirehose::DeliveryStream.CopyCommand": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-copycommand.html", - "Properties": { - "CopyOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-copycommand.html#cfn-kinesisfirehose-deliverystream-copycommand-copyoptions", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DataTableColumns": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-copycommand.html#cfn-kinesisfirehose-deliverystream-copycommand-datatablecolumns", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DataTableName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-copycommand.html#cfn-kinesisfirehose-deliverystream-copycommand-datatablename", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::DataPipeline::Pipeline.ParameterValue": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parametervalues.html", - "Properties": { - "Id": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parametervalues.html#cfn-datapipeline-pipeline-parametervalues-id", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "StringValue": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parametervalues.html#cfn-datapipeline-pipeline-parametervalues-stringvalue", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeBuild::Project.ProjectTriggers": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projecttriggers.html", - "Properties": { - "Webhook": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projecttriggers.html#cfn-codebuild-project-projecttriggers-webhook", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.CSVMappingParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-csvmappingparameters.html", - "Properties": { - "RecordRowDelimiter": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-csvmappingparameters.html#cfn-kinesisanalytics-applicationreferencedatasource-csvmappingparameters-recordrowdelimiter", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "RecordColumnDelimiter": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-csvmappingparameters.html#cfn-kinesisanalytics-applicationreferencedatasource-csvmappingparameters-recordcolumndelimiter", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudFront::Distribution.Logging": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-logging.html", - "Properties": { - "IncludeCookies": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-logging.html#cfn-cloudfront-distribution-logging-includecookies", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "Bucket": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-logging.html#cfn-cloudfront-distribution-logging-bucket", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Prefix": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-logging.html#cfn-cloudfront-distribution-logging-prefix", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudFront::Distribution.DistributionConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html", - "Properties": { - "Logging": { - "Type": "Logging", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-logging", - "UpdateType": "Mutable" - }, - "Comment": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-comment", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DefaultRootObject": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-defaultrootobject", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Origins": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-origins", - "ItemType": "Origin", - "UpdateType": "Mutable" - }, - "ViewerCertificate": { - "Type": "ViewerCertificate", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-viewercertificate", - "UpdateType": "Mutable" - }, - "PriceClass": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-priceclass", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DefaultCacheBehavior": { - "Type": "DefaultCacheBehavior", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-defaultcachebehavior", - "UpdateType": "Mutable" - }, - "CustomErrorResponses": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-customerrorresponses", - "ItemType": "CustomErrorResponse", - "UpdateType": "Mutable" - }, - "Enabled": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-enabled", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "Aliases": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-aliases", - "UpdateType": "Mutable" - }, - "IPV6Enabled": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-ipv6enabled", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "WebACLId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-webaclid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "HttpVersion": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-httpversion", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Restrictions": { - "Type": "Restrictions", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-restrictions", - "UpdateType": "Mutable" - }, - "CacheBehaviors": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-cachebehaviors", - "ItemType": "CacheBehavior", - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.NoncurrentVersionTransition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-noncurrentversiontransition.html", - "Properties": { - "StorageClass": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-noncurrentversiontransition.html#cfn-s3-bucket-lifecycleconfig-rule-noncurrentversiontransition-storageclass", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "TransitionInDays": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-noncurrentversiontransition.html#cfn-s3-bucket-lifecycleconfig-rule-noncurrentversiontransition-transitionindays", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-rulesconfigurationtype.html", - "Properties": { - "Rules": { - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-rulesconfigurationtype.html#cfn-cognito-identitypoolroleattachment-rulesconfigurationtype-rules", - "ItemType": "MappingRule", - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::TaskDefinition.LinuxParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html", - "Properties": { - "Capabilities": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html#cfn-ecs-taskdefinition-linuxparameters-capabilities", - "Required": false, - "Type": "KernelCapabilities", - "UpdateType": "Immutable" - }, - "Devices": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html#cfn-ecs-taskdefinition-linuxparameters-devices", - "DuplicatesAllowed": false, - "ItemType": "Device", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "InitProcessEnabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html#cfn-ecs-taskdefinition-linuxparameters-initprocessenabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::Glue::Job.ExecutionProperty": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-executionproperty.html", - "Properties": { - "MaxConcurrentRuns": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-executionproperty.html#cfn-glue-job-executionproperty-maxconcurrentruns", - "PrimitiveType": "Double", - "UpdateType": "Mutable" - } - } - }, - "AWS::SES::ReceiptRule.S3Action": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-s3action.html", - "Properties": { - "BucketName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-s3action.html#cfn-ses-receiptrule-s3action-bucketname", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "KmsKeyArn": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-s3action.html#cfn-ses-receiptrule-s3action-kmskeyarn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "TopicArn": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-s3action.html#cfn-ses-receiptrule-s3action-topicarn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ObjectKeyPrefix": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-s3action.html#cfn-ses-receiptrule-s3action-objectkeyprefix", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisAnalytics::Application.JSONMappingParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-jsonmappingparameters.html", - "Properties": { - "RecordRowPath": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-jsonmappingparameters.html#cfn-kinesisanalytics-application-jsonmappingparameters-recordrowpath", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::Elasticsearch::Domain.SnapshotOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-snapshotoptions.html", - "Properties": { - "AutomatedSnapshotStartHour": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-snapshotoptions.html#cfn-elasticsearch-domain-snapshotoptions-automatedsnapshotstarthour", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::ServiceDiscovery::Service.HealthCheckConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-healthcheckconfig.html", - "Properties": { - "Type": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-healthcheckconfig.html#cfn-servicediscovery-service-healthcheckconfig-type", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ResourcePath": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-healthcheckconfig.html#cfn-servicediscovery-service-healthcheckconfig-resourcepath", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "FailureThreshold": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-healthcheckconfig.html#cfn-servicediscovery-service-healthcheckconfig-failurethreshold", - "PrimitiveType": "Double", - "UpdateType": "Mutable" - } - } - }, - "AWS::Cognito::UserPool.DeviceConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-deviceconfiguration.html", - "Properties": { - "DeviceOnlyRememberedOnUserPrompt": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-deviceconfiguration.html#cfn-cognito-userpool-deviceconfiguration-deviceonlyrememberedonuserprompt", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "ChallengeRequiredOnNewDevice": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-deviceconfiguration.html#cfn-cognito-userpool-deviceconfiguration-challengerequiredonnewdevice", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - } - } - }, - "AWS::OpsWorks::Layer.LoadBasedAutoScaling": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-loadbasedautoscaling.html", - "Properties": { - "DownScaling": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-loadbasedautoscaling.html#cfn-opsworks-layer-loadbasedautoscaling-downscaling", - "Required": false, - "Type": "AutoScalingThresholds", - "UpdateType": "Mutable" - }, - "Enable": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-loadbasedautoscaling.html#cfn-opsworks-layer-loadbasedautoscaling-enable", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "UpScaling": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-loadbasedautoscaling.html#cfn-opsworks-layer-loadbasedautoscaling-upscaling", - "Required": false, - "Type": "AutoScalingThresholds", - "UpdateType": "Mutable" - } - } - }, - "AWS::Kinesis::Stream.StreamEncryption": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-stream-streamencryption.html", - "Properties": { - "EncryptionType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-stream-streamencryption.html#cfn-kinesis-stream-streamencryption-encryptiontype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "KeyId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-stream-streamencryption.html#cfn-kinesis-stream-streamencryption-keyid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html", - "Properties": { - "CustomizedMetricSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-customizedmetricspecification", - "Required": false, - "Type": "CustomizedMetricSpecification", - "UpdateType": "Mutable" - }, - "DisableScaleIn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-disablescalein", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "PredefinedMetricSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-predefinedmetricspecification", - "Required": false, - "Type": "PredefinedMetricSpecification", - "UpdateType": "Mutable" - }, - "ScaleInCooldown": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-scaleincooldown", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "ScaleOutCooldown": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-scaleoutcooldown", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "TargetValue": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-targetvalue", - "PrimitiveType": "Double", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Batch::JobDefinition.Ulimit": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ulimit.html", - "Properties": { - "SoftLimit": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ulimit.html#cfn-batch-jobdefinition-ulimit-softlimit", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "HardLimit": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ulimit.html#cfn-batch-jobdefinition-ulimit-hardlimit", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "Name": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ulimit.html#cfn-batch-jobdefinition-ulimit-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html", - "Properties": { - "BucketARN": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-bucketarn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "BufferingHints": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-bufferinghints", - "Required": true, - "Type": "BufferingHints", - "UpdateType": "Mutable" - }, - "CloudWatchLoggingOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-cloudwatchloggingoptions", - "Required": false, - "Type": "CloudWatchLoggingOptions", - "UpdateType": "Mutable" - }, - "CompressionFormat": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-compressionformat", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "EncryptionConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-encryptionconfiguration", - "Required": false, - "Type": "EncryptionConfiguration", - "UpdateType": "Mutable" - }, - "Prefix": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-prefix", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "RoleARN": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-rolearn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::SES::ConfigurationSetEventDestination.DimensionConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-dimensionconfiguration.html", - "Properties": { - "DimensionValueSource": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-dimensionconfiguration.html#cfn-ses-configurationseteventdestination-dimensionconfiguration-dimensionvaluesource", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DefaultDimensionValue": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-dimensionconfiguration.html#cfn-ses-configurationseteventdestination-dimensionconfiguration-defaultdimensionvalue", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DimensionName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-dimensionconfiguration.html#cfn-ses-configurationseteventdestination-dimensionconfiguration-dimensionname", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::Batch::JobDefinition.VolumesHost": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumeshost.html", - "Properties": { - "SourcePath": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumeshost.html#cfn-batch-jobdefinition-volumeshost-sourcepath", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html", - "Properties": { - "Logging": { - "Type": "Logging", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html#cfn-cloudfront-streamingdistribution-streamingdistributionconfig-logging", - "UpdateType": "Mutable" - }, - "Comment": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html#cfn-cloudfront-streamingdistribution-streamingdistributionconfig-comment", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "PriceClass": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html#cfn-cloudfront-streamingdistribution-streamingdistributionconfig-priceclass", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "S3Origin": { - "Type": "S3Origin", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html#cfn-cloudfront-streamingdistribution-streamingdistributionconfig-s3origin", - "UpdateType": "Mutable" - }, - "Enabled": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html#cfn-cloudfront-streamingdistribution-streamingdistributionconfig-enabled", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "Aliases": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html#cfn-cloudfront-streamingdistribution-streamingdistributionconfig-aliases", - "UpdateType": "Mutable" - }, - "TrustedSigners": { - "Type": "TrustedSigners", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html#cfn-cloudfront-streamingdistribution-streamingdistributionconfig-trustedsigners", - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Trigger.Predicate": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-predicate.html", - "Properties": { - "Logical": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-predicate.html#cfn-glue-trigger-predicate-logical", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Conditions": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-predicate.html#cfn-glue-trigger-predicate-conditions", - "ItemType": "Condition", - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::Cluster.InstanceTypeConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancetypeconfig.html", - "Properties": { - "BidPrice": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancetypeconfig.html#cfn-elasticmapreduce-cluster-instancetypeconfig-bidprice", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "BidPriceAsPercentageOfOnDemandPrice": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancetypeconfig.html#cfn-elasticmapreduce-cluster-instancetypeconfig-bidpriceaspercentageofondemandprice", - "PrimitiveType": "Double", - "Required": false, - "UpdateType": "Immutable" - }, - "Configurations": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancetypeconfig.html#cfn-elasticmapreduce-cluster-instancetypeconfig-configurations", - "DuplicatesAllowed": false, - "ItemType": "Configuration", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "EbsConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancetypeconfig.html#cfn-elasticmapreduce-cluster-instancetypeconfig-ebsconfiguration", - "Required": false, - "Type": "EbsConfiguration", - "UpdateType": "Immutable" - }, - "InstanceType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancetypeconfig.html#cfn-elasticmapreduce-cluster-instancetypeconfig-instancetype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "WeightedCapacity": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancetypeconfig.html#cfn-elasticmapreduce-cluster-instancetypeconfig-weightedcapacity", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::IAM::Group.Policy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html", - "Properties": { - "PolicyDocument": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html#cfn-iam-policies-policydocument", - "PrimitiveType": "Json", - "Required": true, - "UpdateType": "Mutable" - }, - "PolicyName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html#cfn-iam-policies-policyname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Table.Order": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-order.html", - "Properties": { - "Column": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-order.html#cfn-glue-table-order-column", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "SortOrder": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-order.html#cfn-glue-table-order-sortorder", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::LaunchTemplate.Ebs": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping-ebs.html", - "Properties": { - "SnapshotId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping-ebs.html#cfn-ec2-launchtemplate-blockdevicemapping-ebs-snapshotid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "VolumeType": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping-ebs.html#cfn-ec2-launchtemplate-blockdevicemapping-ebs-volumetype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "KmsKeyId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping-ebs.html#cfn-ec2-launchtemplate-blockdevicemapping-ebs-kmskeyid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Encrypted": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping-ebs.html#cfn-ec2-launchtemplate-blockdevicemapping-ebs-encrypted", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "Iops": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping-ebs.html#cfn-ec2-launchtemplate-blockdevicemapping-ebs-iops", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "VolumeSize": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping-ebs.html#cfn-ec2-launchtemplate-blockdevicemapping-ebs-volumesize", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "DeleteOnTermination": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping-ebs.html#cfn-ec2-launchtemplate-blockdevicemapping-ebs-deleteontermination", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - } - } - }, - "AWS::Batch::JobQueue.ComputeEnvironmentOrder": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-computeenvironmentorder.html", - "Properties": { - "ComputeEnvironment": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-computeenvironmentorder.html#cfn-batch-jobqueue-computeenvironmentorder-computeenvironment", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Order": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-computeenvironmentorder.html#cfn-batch-jobqueue-computeenvironmentorder-order", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisFirehose::DeliveryStream.ElasticsearchRetryOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchretryoptions.html", - "Properties": { - "DurationInSeconds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchretryoptions.html#cfn-kinesisfirehose-deliverystream-elasticsearchretryoptions-durationinseconds", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Route53::HealthCheck.HealthCheckTag": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthchecktag.html", - "Properties": { - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthchecktag.html#cfn-route53-healthchecktags-key", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthchecktag.html#cfn-route53-healthchecktags-value", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeBuild::Project.EnvironmentVariable": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environmentvariable.html", - "Properties": { - "Type": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environmentvariable.html#cfn-codebuild-project-environmentvariable-type", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Value": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environmentvariable.html#cfn-codebuild-project-environmentvariable-value", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Name": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environmentvariable.html#cfn-codebuild-project-environmentvariable-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::SSM::MaintenanceWindowTask.MaintenanceWindowStepFunctionsParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowstepfunctionsparameters.html", - "Properties": { - "Input": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowstepfunctionsparameters.html#cfn-ssm-maintenancewindowtask-maintenancewindowstepfunctionsparameters-input", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowstepfunctionsparameters.html#cfn-ssm-maintenancewindowtask-maintenancewindowstepfunctionsparameters-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::DynamoDB::Table.SSESpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html", - "Properties": { - "SSEEnabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html#cfn-dynamodb-table-ssespecification-sseenabled", - "PrimitiveType": "Boolean", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Route53::RecordSetGroup.AliasTarget": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html", - "Properties": { - "DNSName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-dnshostname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "EvaluateTargetHealth": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-evaluatetargethealth", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "HostedZoneId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-hostedzoneid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Lambda::Alias.AliasRoutingConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-aliasroutingconfiguration.html", - "Properties": { - "AdditionalVersionWeights": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-aliasroutingconfiguration.html#cfn-lambda-alias-aliasroutingconfiguration-additionalversionweights", - "DuplicatesAllowed": false, - "ItemType": "VersionWeight", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::Cognito::UserPool.InviteMessageTemplate": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-invitemessagetemplate.html", - "Properties": { - "EmailMessage": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-invitemessagetemplate.html#cfn-cognito-userpool-invitemessagetemplate-emailmessage", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "SMSMessage": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-invitemessagetemplate.html#cfn-cognito-userpool-invitemessagetemplate-smsmessage", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "EmailSubject": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-invitemessagetemplate.html#cfn-cognito-userpool-invitemessagetemplate-emailsubject", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.AbortIncompleteMultipartUpload": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-abortincompletemultipartupload.html", - "Properties": { - "DaysAfterInitiation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-abortincompletemultipartupload.html#cfn-s3-bucket-abortincompletemultipartupload-daysafterinitiation", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::Cluster.MetricDimension": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-metricdimension.html", - "Properties": { - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-metricdimension.html#cfn-elasticmapreduce-cluster-metricdimension-key", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-metricdimension.html#cfn-elasticmapreduce-cluster-metricdimension-value", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticBeanstalk::Application.MaxCountRule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxcountrule.html", - "Properties": { - "DeleteSourceFromS3": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxcountrule.html#cfn-elasticbeanstalk-application-maxcountrule-deletesourcefroms3", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Enabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxcountrule.html#cfn-elasticbeanstalk-application-maxcountrule-enabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "MaxCount": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxcountrule.html#cfn-elasticbeanstalk-application-maxcountrule-maxcount", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceSchema": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-referenceschema.html", - "Properties": { - "RecordEncoding": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-referenceschema.html#cfn-kinesisanalytics-applicationreferencedatasource-referenceschema-recordencoding", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "RecordColumns": { - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-referenceschema.html#cfn-kinesisanalytics-applicationreferencedatasource-referenceschema-recordcolumns", - "ItemType": "RecordColumn", - "UpdateType": "Mutable" - }, - "RecordFormat": { - "Type": "RecordFormat", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-referenceschema.html#cfn-kinesisanalytics-applicationreferencedatasource-referenceschema-recordformat", - "UpdateType": "Mutable" - } - } - }, - "AWS::CodePipeline::Pipeline.ActionTypeId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html", - "Properties": { - "Category": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html#cfn-codepipeline-pipeline-stages-actions-actiontypeid-category", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Owner": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html#cfn-codepipeline-pipeline-stages-actions-actiontypeid-owner", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Provider": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html#cfn-codepipeline-pipeline-stages-actions-actiontypeid-provider", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Version": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html#cfn-codepipeline-pipeline-stages-actions-actiontypeid-version", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket.FilterRule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key-rules.html", - "Properties": { - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key-rules.html#cfn-s3-bucket-notificationconfiguraiton-config-filter-s3key-rules-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key-rules.html#cfn-s3-bucket-notificationconfiguraiton-config-filter-s3key-rules-value", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::AutoScaling::AutoScalingGroup.TagProperty": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-tags.html", - "Properties": { - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-tags.html#cfn-as-tags-Key", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "PropagateAtLaunch": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-tags.html#cfn-as-tags-PropagateAtLaunch", - "PrimitiveType": "Boolean", - "Required": true, - "UpdateType": "Mutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-tags.html#cfn-as-tags-Value", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::CodePipeline::Pipeline.OutputArtifact": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-outputartifacts.html", - "Properties": { - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-outputartifacts.html#cfn-codepipeline-pipeline-stages-actions-outputartifacts-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Route53::HostedZone.VPC": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone-hostedzonevpcs.html", - "Properties": { - "VPCId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone-hostedzonevpcs.html#cfn-route53-hostedzone-hostedzonevpcs-vpcid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "VPCRegion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone-hostedzonevpcs.html#cfn-route53-hostedzone-hostedzonevpcs-vpcregion", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "Tag": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html", - "Properties": { - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html#cfn-resource-tags-key", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html#cfn-resource-tags-value", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Partition.Column": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-column.html", - "Properties": { - "Comment": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-column.html#cfn-glue-partition-column-comment", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Type": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-column.html#cfn-glue-partition-column-type", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Name": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-column.html#cfn-glue-partition-column-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::Service.AwsVpcConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-awsvpcconfiguration.html", - "Properties": { - "AssignPublicIp": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-awsvpcconfiguration.html#cfn-ecs-service-awsvpcconfiguration-assignpublicip", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "SecurityGroups": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-awsvpcconfiguration.html#cfn-ecs-service-awsvpcconfiguration-securitygroups", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Subnets": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-awsvpcconfiguration.html#cfn-ecs-service-awsvpcconfiguration-subnets", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::IoT::Thing.AttributePayload": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-thing-attributepayload.html", - "Properties": { - "Attributes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-thing-attributepayload.html#cfn-iot-thing-attributepayload-attributes", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - } - } - }, - "AWS::Cognito::IdentityPoolRoleAttachment.RoleMapping": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-rolemapping.html", - "Properties": { - "Type": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-rolemapping.html#cfn-cognito-identitypoolroleattachment-rolemapping-type", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "AmbiguousRoleResolution": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-rolemapping.html#cfn-cognito-identitypoolroleattachment-rolemapping-ambiguousroleresolution", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "RulesConfiguration": { - "Type": "RulesConfigurationType", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-rolemapping.html#cfn-cognito-identitypoolroleattachment-rolemapping-rulesconfiguration", - "UpdateType": "Mutable" - } - } - }, - "AWS::Events::Rule.EcsParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html", - "Properties": { - "TaskCount": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-taskcount", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "TaskDefinitionArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-taskdefinitionarn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Budgets::Budget.TimePeriod": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-timeperiod.html", - "Properties": { - "Start": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-timeperiod.html#cfn-budgets-budget-timeperiod-start", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "End": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-timeperiod.html#cfn-budgets-budget-timeperiod-end", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::Route53::HealthCheck.AlarmIdentifier": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-alarmidentifier.html", - "Properties": { - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-alarmidentifier.html#cfn-route53-healthcheck-alarmidentifier-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Region": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-alarmidentifier.html#cfn-route53-healthcheck-alarmidentifier-region", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::ApiGateway::UsagePlan.QuotaSettings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-quotasettings.html", - "Properties": { - "Limit": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-quotasettings.html#cfn-apigateway-usageplan-quotasettings-limit", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "Offset": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-quotasettings.html#cfn-apigateway-usageplan-quotasettings-offset", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "Period": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-quotasettings.html#cfn-apigateway-usageplan-quotasettings-period", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::Instance.BlockDeviceMapping": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-mapping.html", - "Properties": { - "DeviceName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-mapping.html#cfn-ec2-blockdev-mapping-devicename", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Ebs": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-mapping.html#cfn-ec2-blockdev-mapping-ebs", - "Required": false, - "Type": "Ebs", - "UpdateType": "Mutable" - }, - "NoDevice": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-mapping.html#cfn-ec2-blockdev-mapping-nodevice", - "Required": false, - "Type": "NoDevice", - "UpdateType": "Mutable" - }, - "VirtualName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-mapping.html#cfn-ec2-blockdev-mapping-virtualname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::DataPipeline::Pipeline.Field": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects-fields.html", - "Properties": { - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects-fields.html#cfn-datapipeline-pipeline-pipelineobjects-fields-key", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "RefValue": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects-fields.html#cfn-datapipeline-pipeline-pipelineobjects-fields-refvalue", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "StringValue": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects-fields.html#cfn-datapipeline-pipeline-pipelineobjects-fields-stringvalue", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudFront::Distribution.OriginCustomHeader": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origincustomheader.html", - "Properties": { - "HeaderValue": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origincustomheader.html#cfn-cloudfront-distribution-origincustomheader-headervalue", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "HeaderName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origincustomheader.html#cfn-cloudfront-distribution-origincustomheader-headername", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::AppSync::GraphQLApi.UserPoolConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html", - "Properties": { - "AppIdClientRegex": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html#cfn-appsync-graphqlapi-userpoolconfig-appidclientregex", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "UserPoolId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html#cfn-appsync-graphqlapi-userpoolconfig-userpoolid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "AwsRegion": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html#cfn-appsync-graphqlapi-userpoolconfig-awsregion", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DefaultAction": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html#cfn-appsync-graphqlapi-userpoolconfig-defaultaction", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisFirehose::DeliveryStream.KMSEncryptionConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kmsencryptionconfig.html", - "Properties": { - "AWSKMSKeyARN": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kmsencryptionconfig.html#cfn-kinesisfirehose-deliverystream-kmsencryptionconfig-awskmskeyarn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::GameLift::Build.S3Location": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-build-storagelocation.html", - "Properties": { - "Bucket": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-build-storagelocation.html#cfn-gamelift-build-storage-bucket", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-build-storagelocation.html#cfn-gamelift-build-storage-key", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "RoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-build-storagelocation.html#cfn-gamelift-build-storage-rolearn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceDataSource": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-referencedatasource.html", - "Properties": { - "ReferenceSchema": { - "Type": "ReferenceSchema", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-referencedatasource.html#cfn-kinesisanalytics-applicationreferencedatasource-referencedatasource-referenceschema", - "UpdateType": "Mutable" - }, - "TableName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-referencedatasource.html#cfn-kinesisanalytics-applicationreferencedatasource-referencedatasource-tablename", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "S3ReferenceDataSource": { - "Type": "S3ReferenceDataSource", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-referencedatasource.html#cfn-kinesisanalytics-applicationreferencedatasource-referencedatasource-s3referencedatasource", - "UpdateType": "Mutable" - } - } - }, - "AWS::EKS::Cluster.ResourcesVpcConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html", - "Properties": { - "SecurityGroupIds": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-securitygroupids", - "UpdateType": "Mutable" - }, - "SubnetIds": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-subnetids", - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::Cluster.VolumeSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-volumespecification.html", - "Properties": { - "Iops": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-volumespecification.html#cfn-elasticmapreduce-cluster-volumespecification-iops", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "SizeInGB": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-volumespecification.html#cfn-elasticmapreduce-cluster-volumespecification-sizeingb", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - }, - "VolumeType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-volumespecification.html#cfn-elasticmapreduce-cluster-volumespecification-volumetype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::CodePipeline::CustomActionType.ConfigurationProperties": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html", - "Properties": { - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html#cfn-codepipeline-customactiontype-configurationproperties-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html#cfn-codepipeline-customactiontype-configurationproperties-key", - "PrimitiveType": "Boolean", - "Required": true, - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html#cfn-codepipeline-customactiontype-configurationproperties-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Queryable": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html#cfn-codepipeline-customactiontype-configurationproperties-queryable", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Required": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html#cfn-codepipeline-customactiontype-configurationproperties-required", - "PrimitiveType": "Boolean", - "Required": true, - "UpdateType": "Mutable" - }, - "Secret": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html#cfn-codepipeline-customactiontype-configurationproperties-secret", - "PrimitiveType": "Boolean", - "Required": true, - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html#cfn-codepipeline-customactiontype-configurationproperties-type", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::IoT::TopicRule.CloudwatchMetricAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html", - "Properties": { - "MetricName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html#cfn-iot-topicrule-cloudwatchmetricaction-metricname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "MetricNamespace": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html#cfn-iot-topicrule-cloudwatchmetricaction-metricnamespace", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "MetricTimestamp": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html#cfn-iot-topicrule-cloudwatchmetricaction-metrictimestamp", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "MetricUnit": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html#cfn-iot-topicrule-cloudwatchmetricaction-metricunit", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "MetricValue": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html#cfn-iot-topicrule-cloudwatchmetricaction-metricvalue", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "RoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html#cfn-iot-topicrule-cloudwatchmetricaction-rolearn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::SpotFleet.SpotFleetMonitoring": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-monitoring.html", - "Properties": { - "Enabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-monitoring.html#cfn-ec2-spotfleet-spotfleetmonitoring-enabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::SpotFleet.BlockDeviceMapping": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-blockdevicemappings.html", - "Properties": { - "DeviceName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-blockdevicemappings.html#cfn-ec2-spotfleet-blockdevicemapping-devicename", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Ebs": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-blockdevicemappings.html#cfn-ec2-spotfleet-blockdevicemapping-ebs", - "Required": false, - "Type": "EbsBlockDevice", - "UpdateType": "Mutable" - }, - "NoDevice": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-blockdevicemappings.html#cfn-ec2-spotfleet-blockdevicemapping-nodevice", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "VirtualName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-blockdevicemappings.html#cfn-ec2-spotfleet-blockdevicemapping-virtualname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisAnalytics::Application.InputLambdaProcessor": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputlambdaprocessor.html", - "Properties": { - "ResourceARN": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputlambdaprocessor.html#cfn-kinesisanalytics-application-inputlambdaprocessor-resourcearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "RoleARN": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputlambdaprocessor.html#cfn-kinesisanalytics-application-inputlambdaprocessor-rolearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::WAFRegional::SqlInjectionMatchSet.FieldToMatch": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sqlinjectionmatchset-fieldtomatch.html", - "Properties": { - "Type": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sqlinjectionmatchset-fieldtomatch.html#cfn-wafregional-sqlinjectionmatchset-fieldtomatch-type", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Data": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sqlinjectionmatchset-fieldtomatch.html#cfn-wafregional-sqlinjectionmatchset-fieldtomatch-data", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisAnalytics::ApplicationOutput.LambdaOutput": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-lambdaoutput.html", - "Properties": { - "ResourceARN": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-lambdaoutput.html#cfn-kinesisanalytics-applicationoutput-lambdaoutput-resourcearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "RoleARN": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-lambdaoutput.html#cfn-kinesisanalytics-applicationoutput-lambdaoutput-rolearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::SES::ReceiptRule.AddHeaderAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-addheaderaction.html", - "Properties": { - "HeaderValue": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-addheaderaction.html#cfn-ses-receiptrule-addheaderaction-headervalue", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "HeaderName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-addheaderaction.html#cfn-ses-receiptrule-addheaderaction-headername", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::CodePipeline::Pipeline.EncryptionKey": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore-encryptionkey.html", - "Properties": { - "Id": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore-encryptionkey.html#cfn-codepipeline-pipeline-artifactstore-encryptionkey-id", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore-encryptionkey.html#cfn-codepipeline-pipeline-artifactstore-encryptionkey-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::AppSync::DataSource.DynamoDBConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html", - "Properties": { - "TableName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-tablename", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "AwsRegion": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-awsregion", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "UseCallerCredentials": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-usecallercredentials", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-autorollbackconfiguration.html", - "Properties": { - "Enabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-autorollbackconfiguration.html#cfn-codedeploy-deploymentgroup-autorollbackconfiguration-enabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Events": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-autorollbackconfiguration.html#cfn-codedeploy-deploymentgroup-autorollbackconfiguration-events", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::InstanceGroupConfig.VolumeSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig-volumespecification.html", - "Properties": { - "Iops": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig-volumespecification.html#cfn-emr-ebsconfiguration-ebsblockdeviceconfig-volumespecification-iops", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "SizeInGB": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig-volumespecification.html#cfn-emr-ebsconfiguration-ebsblockdeviceconfig-volumespecification-sizeingb", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - }, - "VolumeType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig-volumespecification.html#cfn-emr-ebsconfiguration-ebsblockdeviceconfig-volumespecification-volumetype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancefleetprovisioningspecifications.html", - "Properties": { - "SpotSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancefleetprovisioningspecifications.html#cfn-elasticmapreduce-instancefleetconfig-instancefleetprovisioningspecifications-spotspecification", - "Required": true, - "Type": "SpotProvisioningSpecification", - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticLoadBalancing::LoadBalancer.Policies": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-policy.html", - "Properties": { - "Attributes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-policy.html#cfn-ec2-elb-policy-attributes", - "DuplicatesAllowed": false, - "PrimitiveItemType": "Json", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "InstancePorts": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-policy.html#cfn-ec2-elb-policy-instanceports", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "LoadBalancerPorts": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-policy.html#cfn-ec2-elb-policy-loadbalancerports", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "PolicyName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-policy.html#cfn-ec2-elb-policy-policyname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "PolicyType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-policy.html#cfn-ec2-elb-policy-policytype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::OpsWorks::Stack.ElasticIp": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-elasticip.html", - "Properties": { - "Ip": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-elasticip.html#cfn-opsworks-stack-elasticip-ip", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-elasticip.html#cfn-opsworks-stack-elasticip-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::RDS::OptionGroup.OptionSetting": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-optiongroup-optionconfigurations-optionsettings.html", - "Properties": { - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-optiongroup-optionconfigurations-optionsettings.html#cfn-rds-optiongroup-optionconfigurations-optionsettings-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-optiongroup-optionconfigurations-optionsettings.html#cfn-rds-optiongroup-optionconfigurations-optionsettings-value", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::WAFRegional::SqlInjectionMatchSet.SqlInjectionMatchTuple": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sqlinjectionmatchset-sqlinjectionmatchtuple.html", - "Properties": { - "TextTransformation": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sqlinjectionmatchset-sqlinjectionmatchtuple.html#cfn-wafregional-sqlinjectionmatchset-sqlinjectionmatchtuple-texttransformation", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "FieldToMatch": { - "Type": "FieldToMatch", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sqlinjectionmatchset-sqlinjectionmatchtuple.html#cfn-wafregional-sqlinjectionmatchset-sqlinjectionmatchtuple-fieldtomatch", - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::Cluster.AutoScalingPolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-autoscalingpolicy.html", - "Properties": { - "Constraints": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-autoscalingpolicy.html#cfn-elasticmapreduce-cluster-autoscalingpolicy-constraints", - "Required": true, - "Type": "ScalingConstraints", - "UpdateType": "Mutable" - }, - "Rules": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-autoscalingpolicy.html#cfn-elasticmapreduce-cluster-autoscalingpolicy-rules", - "DuplicatesAllowed": false, - "ItemType": "ScalingRule", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeDeploy::DeploymentGroup.Deployment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment.html", - "Properties": { - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment.html#cfn-properties-codedeploy-deploymentgroup-deployment-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "IgnoreApplicationStopFailures": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment.html#cfn-properties-codedeploy-deploymentgroup-deployment-ignoreapplicationstopfailures", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Revision": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision", - "Required": true, - "Type": "RevisionLocation", - "UpdateType": "Mutable" - } - } - }, - "AWS::DynamoDB::Table.StreamSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-streamspecification.html", - "Properties": { - "StreamViewType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-streamspecification.html#cfn-dynamodb-streamspecification-streamviewtype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisFirehose::DeliveryStream.ExtendedS3DestinationConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html", - "Properties": { - "BucketARN": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-bucketarn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "BufferingHints": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-bufferinghints", - "Required": true, - "Type": "BufferingHints", - "UpdateType": "Mutable" - }, - "CloudWatchLoggingOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-cloudwatchloggingoptions", - "Required": false, - "Type": "CloudWatchLoggingOptions", - "UpdateType": "Mutable" - }, - "CompressionFormat": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-compressionformat", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "EncryptionConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-encryptionconfiguration", - "Required": false, - "Type": "EncryptionConfiguration", - "UpdateType": "Mutable" - }, - "Prefix": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-prefix", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "ProcessingConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-processingconfiguration", - "Required": false, - "Type": "ProcessingConfiguration", - "UpdateType": "Mutable" - }, - "RoleARN": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-rolearn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "S3BackupConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-s3backupconfiguration", - "Required": false, - "Type": "S3DestinationConfiguration", - "UpdateType": "Mutable" - }, - "S3BackupMode": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-s3backupmode", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Cognito::IdentityPoolRoleAttachment.MappingRule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-mappingrule.html", - "Properties": { - "MatchType": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-mappingrule.html#cfn-cognito-identitypoolroleattachment-mappingrule-matchtype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Value": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-mappingrule.html#cfn-cognito-identitypoolroleattachment-mappingrule-value", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Claim": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-mappingrule.html#cfn-cognito-identitypoolroleattachment-mappingrule-claim", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "RoleARN": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-mappingrule.html#cfn-cognito-identitypoolroleattachment-mappingrule-rolearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeBuild::Project.Source": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html", - "Properties": { - "Type": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html#cfn-codebuild-project-source-type", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Auth": { - "Type": "SourceAuth", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html#cfn-codebuild-project-source-auth", - "UpdateType": "Mutable" - }, - "BuildSpec": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html#cfn-codebuild-project-source-buildspec", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "GitCloneDepth": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html#cfn-codebuild-project-source-gitclonedepth", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "InsecureSsl": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html#cfn-codebuild-project-source-insecuressl", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "Location": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html#cfn-codebuild-project-source-location", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::Instance.PrivateIpAddressSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-interface-privateipspec.html", - "Properties": { - "Primary": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-interface-privateipspec.html#cfn-ec2-networkinterface-privateipspecification-primary", - "PrimitiveType": "Boolean", - "Required": true, - "UpdateType": "Mutable" - }, - "PrivateIpAddress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-interface-privateipspec.html#cfn-ec2-networkinterface-privateipspecification-privateipaddress", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Cognito::IdentityPool.CognitoStreams": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitostreams.html", - "Properties": { - "StreamingStatus": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitostreams.html#cfn-cognito-identitypool-cognitostreams-streamingstatus", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "StreamName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitostreams.html#cfn-cognito-identitypool-cognitostreams-streamname", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "RoleArn": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitostreams.html#cfn-cognito-identitypool-cognitostreams-rolearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::AppSync::DataSource.ElasticsearchConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-elasticsearchconfig.html", - "Properties": { - "AwsRegion": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-elasticsearchconfig.html#cfn-appsync-datasource-elasticsearchconfig-awsregion", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Endpoint": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-elasticsearchconfig.html#cfn-appsync-datasource-elasticsearchconfig-endpoint", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::TaskDefinition.HostVolumeProperties": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes-host.html", - "Properties": { - "SourcePath": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes-host.html#cfn-ecs-taskdefinition-volumes-host-sourcepath", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::IAM::User.Policy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html", - "Properties": { - "PolicyDocument": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html#cfn-iam-policies-policydocument", - "PrimitiveType": "Json", - "Required": true, - "UpdateType": "Mutable" - }, - "PolicyName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html#cfn-iam-policies-policyname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Partition.PartitionInput": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-partitioninput.html", - "Properties": { - "Parameters": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-partitioninput.html#cfn-glue-partition-partitioninput-parameters", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - }, - "StorageDescriptor": { - "Type": "StorageDescriptor", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-partitioninput.html#cfn-glue-partition-partitioninput-storagedescriptor", - "UpdateType": "Mutable" - }, - "Values": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-partitioninput.html#cfn-glue-partition-partitioninput-values", - "UpdateType": "Immutable" - } - } - }, - "AWS::KinesisFirehose::DeliveryStream.RedshiftDestinationConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html", - "Properties": { - "CloudWatchLoggingOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-cloudwatchloggingoptions", - "Required": false, - "Type": "CloudWatchLoggingOptions", - "UpdateType": "Mutable" - }, - "ClusterJDBCURL": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-clusterjdbcurl", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "CopyCommand": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-copycommand", - "Required": true, - "Type": "CopyCommand", - "UpdateType": "Mutable" - }, - "Password": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-password", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "ProcessingConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-processingconfiguration", - "Required": false, - "Type": "ProcessingConfiguration", - "UpdateType": "Mutable" - }, - "RoleARN": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-rolearn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "S3Configuration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-s3configuration", - "Required": true, - "Type": "S3DestinationConfiguration", - "UpdateType": "Mutable" - }, - "Username": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-username", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Elasticsearch::Domain.EBSOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-ebsoptions.html", - "Properties": { - "EBSEnabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-ebsoptions.html#cfn-elasticsearch-domain-ebsoptions-ebsenabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Iops": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-ebsoptions.html#cfn-elasticsearch-domain-ebsoptions-iops", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "VolumeSize": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-ebsoptions.html#cfn-elasticsearch-domain-ebsoptions-volumesize", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "VolumeType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-ebsoptions.html#cfn-elasticsearch-domain-ebsoptions-volumetype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::Service.NetworkConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-networkconfiguration.html", - "Properties": { - "AwsvpcConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-networkconfiguration.html#cfn-ecs-service-networkconfiguration-awsvpcconfiguration", - "Required": false, - "Type": "AwsVpcConfiguration", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisAnalytics::ApplicationOutput.DestinationSchema": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-destinationschema.html", - "Properties": { - "RecordFormatType": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-destinationschema.html#cfn-kinesisanalytics-applicationoutput-destinationschema-recordformattype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ebsblockdeviceconfig.html", - "Properties": { - "VolumeSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ebsblockdeviceconfig.html#cfn-elasticmapreduce-instancefleetconfig-ebsblockdeviceconfig-volumespecification", - "Required": true, - "Type": "VolumeSpecification", - "UpdateType": "Immutable" - }, - "VolumesPerInstance": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ebsblockdeviceconfig.html#cfn-elasticmapreduce-instancefleetconfig-ebsblockdeviceconfig-volumesperinstance", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::OpsWorks::Instance.TimeBasedAutoScaling": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-timebasedautoscaling.html", - "Properties": { - "Friday": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-timebasedautoscaling.html#cfn-opsworks-instance-timebasedautoscaling-friday", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "Monday": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-timebasedautoscaling.html#cfn-opsworks-instance-timebasedautoscaling-monday", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "Saturday": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-timebasedautoscaling.html#cfn-opsworks-instance-timebasedautoscaling-saturday", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "Sunday": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-timebasedautoscaling.html#cfn-opsworks-instance-timebasedautoscaling-sunday", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "Thursday": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-timebasedautoscaling.html#cfn-opsworks-instance-timebasedautoscaling-thursday", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "Tuesday": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-timebasedautoscaling.html#cfn-opsworks-instance-timebasedautoscaling-tuesday", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "Wednesday": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-timebasedautoscaling.html#cfn-opsworks-instance-timebasedautoscaling-wednesday", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - } - } - }, - "AWS::Config::ConfigRule.SourceDetail": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source-sourcedetails.html", - "Properties": { - "EventSource": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source-sourcedetails.html#cfn-config-configrule-source-sourcedetail-eventsource", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "MaximumExecutionFrequency": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source-sourcedetails.html#cfn-config-configrule-sourcedetail-maximumexecutionfrequency", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "MessageType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source-sourcedetails.html#cfn-config-configrule-source-sourcedetail-messagetype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-AppCookieStickinessPolicy.html", - "Properties": { - "CookieName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-AppCookieStickinessPolicy.html#cfn-elb-appcookiestickinesspolicy-cookiename", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "PolicyName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-AppCookieStickinessPolicy.html#cfn-elb-appcookiestickinesspolicy-policyname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::SES::ReceiptFilter.IpFilter": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptfilter-ipfilter.html", - "Properties": { - "Policy": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptfilter-ipfilter.html#cfn-ses-receiptfilter-ipfilter-policy", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Cidr": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptfilter-ipfilter.html#cfn-ses-receiptfilter-ipfilter-cidr", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetprovisioningspecifications.html", - "Properties": { - "SpotSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetprovisioningspecifications.html#cfn-elasticmapreduce-cluster-instancefleetprovisioningspecifications-spotspecification", - "Required": true, - "Type": "SpotProvisioningSpecification", - "UpdateType": "Mutable" - } - } - }, - "AWS::Cloud9::EnvironmentEC2.Repository": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloud9-environmentec2-repository.html", - "Properties": { - "PathComponent": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloud9-environmentec2-repository.html#cfn-cloud9-environmentec2-repository-pathcomponent", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "RepositoryUrl": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloud9-environmentec2-repository.html#cfn-cloud9-environmentec2-repository-repositoryurl", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html", - "Properties": { - "PrimaryAvailabilityZone": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html#cfn-elasticache-replicationgroup-nodegroupconfiguration-primaryavailabilityzone", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ReplicaAvailabilityZones": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html#cfn-elasticache-replicationgroup-nodegroupconfiguration-replicaavailabilityzones", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "ReplicaCount": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html#cfn-elasticache-replicationgroup-nodegroupconfiguration-replicacount", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - }, - "Slots": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html#cfn-elasticache-replicationgroup-nodegroupconfiguration-slots", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::Glue::Table.Column": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-column.html", - "Properties": { - "Comment": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-column.html#cfn-glue-table-column-comment", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Type": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-column.html#cfn-glue-table-column-type", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Name": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-column.html#cfn-glue-table-column-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::RDS::OptionGroup.OptionConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-optiongroup-optionconfigurations.html", - "Properties": { - "DBSecurityGroupMemberships": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-optiongroup-optionconfigurations.html#cfn-rds-optiongroup-optionconfigurations-dbsecuritygroupmemberships", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "OptionName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-optiongroup-optionconfigurations.html#cfn-rds-optiongroup-optionconfigurations-optionname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "OptionSettings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-optiongroup-optionconfigurations.html#cfn-rds-optiongroup-optionconfigurations-optionsettings", - "Required": false, - "Type": "OptionSetting", - "UpdateType": "Mutable" - }, - "OptionVersion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-optiongroup-optionconfigurations.html#cfn-rds-optiongroup-optionconfiguration-optionversion", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Port": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-optiongroup-optionconfigurations.html#cfn-rds-optiongroup-optionconfigurations-port", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "VpcSecurityGroupMemberships": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-optiongroup-optionconfigurations.html#cfn-rds-optiongroup-optionconfigurations-vpcsecuritygroupmemberships", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::DMS::Endpoint.DynamoDbSettings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-dynamodbsettings.html", - "Properties": { - "ServiceAccessRoleArn": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-dynamodbsettings.html#cfn-dms-endpoint-dynamodbsettings-serviceaccessrolearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::Lambda::Alias.VersionWeight": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-versionweight.html", - "Properties": { - "FunctionVersion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-versionweight.html#cfn-lambda-alias-versionweight-functionversion", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "FunctionWeight": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-versionweight.html#cfn-lambda-alias-versionweight-functionweight", - "PrimitiveType": "Double", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::OpsWorks::App.Source": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-source.html", - "Properties": { - "Password": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-source.html#cfn-opsworks-custcookbooksource-pw", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Revision": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-source.html#cfn-opsworks-custcookbooksource-revision", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "SshKey": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-source.html#cfn-opsworks-custcookbooksource-sshkey", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-source.html#cfn-opsworks-custcookbooksource-type", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Url": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-source.html#cfn-opsworks-custcookbooksource-url", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Username": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-source.html#cfn-opsworks-custcookbooksource-username", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::SSM::MaintenanceWindowTask.MaintenanceWindowRunCommandParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowruncommandparameters.html", - "Properties": { - "TimeoutSeconds": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowruncommandparameters.html#cfn-ssm-maintenancewindowtask-maintenancewindowruncommandparameters-timeoutseconds", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "Comment": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowruncommandparameters.html#cfn-ssm-maintenancewindowtask-maintenancewindowruncommandparameters-comment", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "OutputS3KeyPrefix": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowruncommandparameters.html#cfn-ssm-maintenancewindowtask-maintenancewindowruncommandparameters-outputs3keyprefix", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Parameters": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowruncommandparameters.html#cfn-ssm-maintenancewindowtask-maintenancewindowruncommandparameters-parameters", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - }, - "DocumentHashType": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowruncommandparameters.html#cfn-ssm-maintenancewindowtask-maintenancewindowruncommandparameters-documenthashtype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ServiceRoleArn": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowruncommandparameters.html#cfn-ssm-maintenancewindowtask-maintenancewindowruncommandparameters-servicerolearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "NotificationConfig": { - "Type": "NotificationConfig", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowruncommandparameters.html#cfn-ssm-maintenancewindowtask-maintenancewindowruncommandparameters-notificationconfig", - "UpdateType": "Mutable" - }, - "OutputS3BucketName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowruncommandparameters.html#cfn-ssm-maintenancewindowtask-maintenancewindowruncommandparameters-outputs3bucketname", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DocumentHash": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowruncommandparameters.html#cfn-ssm-maintenancewindowtask-maintenancewindowruncommandparameters-documenthash", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::Elasticsearch::Domain.EncryptionAtRestOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-encryptionatrestoptions.html", - "Properties": { - "Enabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-encryptionatrestoptions.html#cfn-elasticsearch-domain-encryptionatrestoptions-enabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "KmsKeyId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-encryptionatrestoptions.html#cfn-elasticsearch-domain-encryptionatrestoptions-kmskeyid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::ElasticBeanstalk::Application.MaxAgeRule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxagerule.html", - "Properties": { - "DeleteSourceFromS3": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxagerule.html#cfn-elasticbeanstalk-application-maxagerule-deletesourcefroms3", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Enabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxagerule.html#cfn-elasticbeanstalk-application-maxagerule-enabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "MaxAgeInDays": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxagerule.html#cfn-elasticbeanstalk-application-maxagerule-maxageindays", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::InstanceGroupConfig.AutoScalingPolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-autoscalingpolicy.html", - "Properties": { - "Constraints": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-autoscalingpolicy.html#cfn-elasticmapreduce-instancegroupconfig-autoscalingpolicy-constraints", - "Required": true, - "Type": "ScalingConstraints", - "UpdateType": "Mutable" - }, - "Rules": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-autoscalingpolicy.html#cfn-elasticmapreduce-instancegroupconfig-autoscalingpolicy-rules", - "DuplicatesAllowed": false, - "ItemType": "ScalingRule", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::InstanceGroupConfig.EbsConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration.html", - "Properties": { - "EbsBlockDeviceConfigs": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration.html#cfn-emr-ebsconfiguration-ebsblockdeviceconfigs", - "DuplicatesAllowed": false, - "ItemType": "EbsBlockDeviceConfig", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "EbsOptimized": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration.html#cfn-emr-ebsconfiguration-ebsoptimized", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EFS::FileSystem.ElasticFileSystemTag": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-filesystemtags.html", - "Properties": { - "Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-filesystemtags.html#cfn-efs-filesystem-filesystemtags-key", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Value": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-filesystemtags.html#cfn-efs-filesystem-filesystemtags-value", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Budgets::Budget.Spend": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-spend.html", - "Properties": { - "Amount": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-spend.html#cfn-budgets-budget-spend-amount", - "PrimitiveType": "Double", - "UpdateType": "Mutable" - }, - "Unit": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-spend.html#cfn-budgets-budget-spend-unit", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::Cluster.ScalingTrigger": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingtrigger.html", - "Properties": { - "CloudWatchAlarmDefinition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingtrigger.html#cfn-elasticmapreduce-cluster-scalingtrigger-cloudwatchalarmdefinition", - "Required": true, - "Type": "CloudWatchAlarmDefinition", - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Crawler.SchemaChangePolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-schemachangepolicy.html", - "Properties": { - "UpdateBehavior": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-schemachangepolicy.html#cfn-glue-crawler-schemachangepolicy-updatebehavior", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DeleteBehavior": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-schemachangepolicy.html#cfn-glue-crawler-schemachangepolicy-deletebehavior", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::Cognito::UserPool.StringAttributeConstraints": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-stringattributeconstraints.html", - "Properties": { - "MinLength": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-stringattributeconstraints.html#cfn-cognito-userpool-stringattributeconstraints-minlength", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "MaxLength": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-stringattributeconstraints.html#cfn-cognito-userpool-stringattributeconstraints-maxlength", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scalabletargetaction.html", - "Properties": { - "MaxCapacity": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scalabletargetaction.html#cfn-applicationautoscaling-scalabletarget-scalabletargetaction-maxcapacity", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "MinCapacity": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scalabletargetaction.html#cfn-applicationautoscaling-scalabletarget-scalabletargetaction-mincapacity", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - } - }, - "ResourceTypes": { - "AWS::ElasticBeanstalk::ConfigurationTemplate": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html", - "Properties": { - "ApplicationName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-applicationname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "EnvironmentId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-environmentid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "OptionSettings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-optionsettings", - "DuplicatesAllowed": true, - "ItemType": "ConfigurationOptionSetting", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "PlatformArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-platformarn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "SolutionStackName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-solutionstackname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "SourceConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-sourceconfiguration", - "Required": false, - "Type": "SourceConfiguration", - "UpdateType": "Immutable" - } - } - }, - "AWS::EC2::RouteTable": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route-table.html", - "Properties": { - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route-table.html#cfn-ec2-routetable-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "VpcId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route-table.html#cfn-ec2-routetable-vpcid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::AppSync::DataSource": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html", - "Attributes": { - "DataSourceArn": { - "PrimitiveType": "String" - }, - "Name": { - "PrimitiveType": "String" - } - }, - "Properties": { - "Type": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-type", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ServiceRoleArn": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-servicerolearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "LambdaConfig": { - "Type": "LambdaConfig", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-lambdaconfig", - "UpdateType": "Mutable" - }, - "ApiId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-apiid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Name": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "DynamoDBConfig": { - "Type": "DynamoDBConfig", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-dynamodbconfig", - "UpdateType": "Mutable" - }, - "ElasticsearchConfig": { - "Type": "ElasticsearchConfig", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-elasticsearchconfig", - "UpdateType": "Mutable" - } - } - }, - "AWS::ServiceCatalog::PortfolioShare": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioshare.html", - "Properties": { - "AccountId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioshare.html#cfn-servicecatalog-portfolioshare-accountid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "AcceptLanguage": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioshare.html#cfn-servicecatalog-portfolioshare-acceptlanguage", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "PortfolioId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioshare.html#cfn-servicecatalog-portfolioshare-portfolioid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::Cognito::IdentityPoolRoleAttachment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypoolroleattachment.html", - "Properties": { - "RoleMappings": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypoolroleattachment.html#cfn-cognito-identitypoolroleattachment-rolemappings", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - }, - "IdentityPoolId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypoolroleattachment.html#cfn-cognito-identitypoolroleattachment-identitypoolid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Roles": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypoolroleattachment.html#cfn-cognito-identitypoolroleattachment-roles", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - } - } - }, - "AWS::Events::Rule": { - "Attributes": { - "Arn": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html", - "Properties": { - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "EventPattern": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern", - "PrimitiveType": "Json", - "Required": false, - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "RoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-rolearn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ScheduleExpression": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-scheduleexpression", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "State": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Targets": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-targets", - "DuplicatesAllowed": false, - "ItemType": "Target", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::WAF::IPSet": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-ipset.html", - "Properties": { - "IPSetDescriptors": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-ipset.html#cfn-waf-ipset-ipsetdescriptors", - "DuplicatesAllowed": false, - "ItemType": "IPSetDescriptor", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-ipset.html#cfn-waf-ipset-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::IAM::Group": { - "Attributes": { - "Arn": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html", - "Properties": { - "GroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html#cfn-iam-group-groupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ManagedPolicyArns": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html#cfn-iam-group-managepolicyarns", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Path": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html#cfn-iam-group-path", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Policies": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html#cfn-iam-group-policies", - "DuplicatesAllowed": false, - "ItemType": "Policy", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::CodePipeline::CustomActionType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html", - "Properties": { - "Category": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-category", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "ConfigurationProperties": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-configurationproperties", - "DuplicatesAllowed": false, - "ItemType": "ConfigurationProperties", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "InputArtifactDetails": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-inputartifactdetails", - "Required": true, - "Type": "ArtifactDetails", - "UpdateType": "Immutable" - }, - "OutputArtifactDetails": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-outputartifactdetails", - "Required": true, - "Type": "ArtifactDetails", - "UpdateType": "Immutable" - }, - "Provider": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-provider", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Settings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-settings", - "Required": false, - "Type": "Settings", - "UpdateType": "Immutable" - }, - "Version": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-version", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::EC2::PlacementGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-placementgroup.html", - "Properties": { - "Strategy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-placementgroup.html#cfn-ec2-placementgroup-strategy", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::EC2::VPCPeeringConnection": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcpeeringconnection.html", - "Properties": { - "PeerOwnerId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcpeeringconnection.html#cfn-ec2-vpcpeeringconnection-peerownerid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "PeerRoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcpeeringconnection.html#cfn-ec2-vpcpeeringconnection-peerrolearn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "PeerVpcId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcpeeringconnection.html#cfn-ec2-vpcpeeringconnection-peervpcid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcpeeringconnection.html#cfn-ec2-vpcpeeringconnection-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "VpcId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcpeeringconnection.html#cfn-ec2-vpcpeeringconnection-vpcid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::Elasticsearch::Domain": { - "Attributes": { - "Arn": { - "PrimitiveType": "String" - }, - "DomainArn": { - "PrimitiveType": "String" - }, - "DomainEndpoint": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html", - "Properties": { - "AccessPolicies": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-accesspolicies", - "PrimitiveType": "Json", - "Required": false, - "UpdateType": "Mutable" - }, - "AdvancedOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-advancedoptions", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "DomainName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-domainname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "EBSOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-ebsoptions", - "Required": false, - "Type": "EBSOptions", - "UpdateType": "Mutable" - }, - "ElasticsearchClusterConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-elasticsearchclusterconfig", - "Required": false, - "Type": "ElasticsearchClusterConfig", - "UpdateType": "Mutable" - }, - "ElasticsearchVersion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-elasticsearchversion", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "EncryptionAtRestOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-encryptionatrestoptions", - "Required": false, - "Type": "EncryptionAtRestOptions", - "UpdateType": "Immutable" - }, - "SnapshotOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-snapshotoptions", - "Required": false, - "Type": "SnapshotOptions", - "UpdateType": "Mutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "VPCOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-vpcoptions", - "Required": false, - "Type": "VPCOptions", - "UpdateType": "Mutable" - } - } - }, - "AWS::ApiGateway::RequestValidator": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-requestvalidator.html", - "Properties": { - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-requestvalidator.html#cfn-apigateway-requestvalidator-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "RestApiId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-requestvalidator.html#cfn-apigateway-requestvalidator-restapiid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "ValidateRequestBody": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-requestvalidator.html#cfn-apigateway-requestvalidator-validaterequestbody", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "ValidateRequestParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-requestvalidator.html#cfn-apigateway-requestvalidator-validaterequestparameters", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::WAFRegional::SizeConstraintSet": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-sizeconstraintset.html", - "Properties": { - "SizeConstraints": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-sizeconstraintset.html#cfn-wafregional-sizeconstraintset-sizeconstraints", - "ItemType": "SizeConstraint", - "UpdateType": "Mutable" - }, - "Name": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-sizeconstraintset.html#cfn-wafregional-sizeconstraintset-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::RDS::DBSecurityGroupIngress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-security-group-ingress.html", - "Properties": { - "CIDRIP": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-security-group-ingress.html#cfn-rds-securitygroup-ingress-cidrip", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DBSecurityGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-security-group-ingress.html#cfn-rds-securitygroup-ingress-dbsecuritygroupname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "EC2SecurityGroupId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-security-group-ingress.html#cfn-rds-securitygroup-ingress-ec2securitygroupid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "EC2SecurityGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-security-group-ingress.html#cfn-rds-securitygroup-ingress-ec2securitygroupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "EC2SecurityGroupOwnerId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-security-group-ingress.html#cfn-rds-securitygroup-ingress-ec2securitygroupownerid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::InstanceFleetConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-instancefleetconfig.html", - "Properties": { - "ClusterId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-instancefleetconfig.html#cfn-elasticmapreduce-instancefleetconfig-clusterid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "InstanceFleetType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-instancefleetconfig.html#cfn-elasticmapreduce-instancefleetconfig-instancefleettype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "InstanceTypeConfigs": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-instancefleetconfig.html#cfn-elasticmapreduce-instancefleetconfig-instancetypeconfigs", - "DuplicatesAllowed": false, - "ItemType": "InstanceTypeConfig", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "LaunchSpecifications": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-instancefleetconfig.html#cfn-elasticmapreduce-instancefleetconfig-launchspecifications", - "Required": false, - "Type": "InstanceFleetProvisioningSpecifications", - "UpdateType": "Immutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-instancefleetconfig.html#cfn-elasticmapreduce-instancefleetconfig-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "TargetOnDemandCapacity": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-instancefleetconfig.html#cfn-elasticmapreduce-instancefleetconfig-targetondemandcapacity", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "TargetSpotCapacity": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-instancefleetconfig.html#cfn-elasticmapreduce-instancefleetconfig-targetspotcapacity", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::WorkSpaces::Workspace": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspace.html", - "Properties": { - "BundleId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspace.html#cfn-workspaces-workspace-bundleid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Conditional" - }, - "DirectoryId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspace.html#cfn-workspaces-workspace-directoryid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Conditional" - }, - "RootVolumeEncryptionEnabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspace.html#cfn-workspaces-workspace-rootvolumeencryptionenabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Conditional" - }, - "UserName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspace.html#cfn-workspaces-workspace-username", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "UserVolumeEncryptionEnabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspace.html#cfn-workspaces-workspace-uservolumeencryptionenabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Conditional" - }, - "VolumeEncryptionKey": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspaces-workspace.html#cfn-workspaces-workspace-volumeencryptionkey", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Conditional" - } - } - }, - "AWS::WAFRegional::SqlInjectionMatchSet": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-sqlinjectionmatchset.html", - "Properties": { - "SqlInjectionMatchTuples": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-sqlinjectionmatchset.html#cfn-wafregional-sqlinjectionmatchset-sqlinjectionmatchtuples", - "ItemType": "SqlInjectionMatchTuple", - "UpdateType": "Mutable" - }, - "Name": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-sqlinjectionmatchset.html#cfn-wafregional-sqlinjectionmatchset-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::Logs::LogGroup": { - "Attributes": { - "Arn": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html", - "Properties": { - "LogGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-cwl-loggroup-loggroupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "RetentionInDays": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-cwl-loggroup-retentionindays", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Kinesis::Stream": { - "Attributes": { - "Arn": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html", - "Properties": { - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html#cfn-kinesis-stream-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "RetentionPeriodHours": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html#cfn-kinesis-stream-retentionperiodhours", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "ShardCount": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html#cfn-kinesis-stream-shardcount", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - }, - "StreamEncryption": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html#cfn-kinesis-stream-streamencryption", - "Required": false, - "Type": "StreamEncryption", - "UpdateType": "Mutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html#cfn-kinesis-stream-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::AutoScaling::LaunchConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html", - "Properties": { - "AssociatePublicIpAddress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cf-as-launchconfig-associatepubip", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "BlockDeviceMappings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-blockdevicemappings", - "DuplicatesAllowed": false, - "ItemType": "BlockDeviceMapping", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "ClassicLinkVPCId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-classiclinkvpcid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ClassicLinkVPCSecurityGroups": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-classiclinkvpcsecuritygroups", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "EbsOptimized": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-ebsoptimized", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "IamInstanceProfile": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-iaminstanceprofile", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ImageId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-imageid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "InstanceId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-instanceid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "InstanceMonitoring": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-instancemonitoring", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "InstanceType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-instancetype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "KernelId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-kernelid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "KeyName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-keyname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "LaunchConfigurationName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-autoscaling-launchconfig-launchconfigurationname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "PlacementTenancy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-placementtenancy", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "RamDiskId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-ramdiskid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "SecurityGroups": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-securitygroups", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "SpotPrice": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-spotprice", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "UserData": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-userdata", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::SQS::Queue": { - "Attributes": { - "Arn": { - "PrimitiveType": "String" - }, - "QueueName": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html", - "Properties": { - "ContentBasedDeduplication": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-contentbaseddeduplication", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "DelaySeconds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-delayseconds", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "FifoQueue": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-fifoqueue", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "KmsDataKeyReusePeriodSeconds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-kmsdatakeyreuseperiodseconds", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "KmsMasterKeyId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-kmsmasterkeyid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "MaximumMessageSize": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-maxmesgsize", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "MessageRetentionPeriod": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-msgretentionperiod", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "QueueName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ReceiveMessageWaitTimeSeconds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-receivemsgwaittime", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "RedrivePolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-redrive", - "PrimitiveType": "Json", - "Required": false, - "UpdateType": "Mutable" - }, - "VisibilityTimeout": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-visiblitytimeout", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::AppSync::Resolver": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html", - "Attributes": { - "TypeName": { - "PrimitiveType": "String" - }, - "ResolverArn": { - "PrimitiveType": "String" - }, - "FieldName": { - "PrimitiveType": "String" - } - }, - "Properties": { - "ResponseMappingTemplateS3Location": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-responsemappingtemplates3location", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "TypeName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-typename", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "DataSourceName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-datasourcename", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "RequestMappingTemplate": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-requestmappingtemplate", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ResponseMappingTemplate": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-responsemappingtemplate", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "RequestMappingTemplateS3Location": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-requestmappingtemplates3location", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ApiId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-apiid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "FieldName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-fieldname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::AutoScalingPlans::ScalingPlan": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscalingplans-scalingplan.html", - "Properties": { - "ApplicationSource": { - "Type": "ApplicationSource", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscalingplans-scalingplan.html#cfn-autoscalingplans-scalingplan-applicationsource", - "UpdateType": "Mutable" - }, - "ScalingInstructions": { - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscalingplans-scalingplan.html#cfn-autoscalingplans-scalingplan-scalinginstructions", - "ItemType": "ScalingInstruction", - "UpdateType": "Mutable" - } - } - }, - "AWS::Route53::RecordSet": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html", - "Properties": { - "AliasTarget": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-aliastarget", - "Required": false, - "Type": "AliasTarget", - "UpdateType": "Mutable" - }, - "Comment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-comment", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Failover": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-failover", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "GeoLocation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-geolocation", - "Required": false, - "Type": "GeoLocation", - "UpdateType": "Mutable" - }, - "HealthCheckId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-healthcheckid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "HostedZoneId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-hostedzoneid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "HostedZoneName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-hostedzonename", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Region": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-region", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ResourceRecords": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-resourcerecords", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "SetIdentifier": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-setidentifier", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "TTL": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-ttl", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Weight": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-weight", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::WAFRegional::XssMatchSet": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-xssmatchset.html", - "Properties": { - "XssMatchTuples": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-xssmatchset.html#cfn-wafregional-xssmatchset-xssmatchtuples", - "ItemType": "XssMatchTuple", - "UpdateType": "Mutable" - }, - "Name": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-xssmatchset.html#cfn-wafregional-xssmatchset-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::WAF::SizeConstraintSet": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-sizeconstraintset.html", - "Properties": { - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-sizeconstraintset.html#cfn-waf-sizeconstraintset-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "SizeConstraints": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-sizeconstraintset.html#cfn-waf-sizeconstraintset-sizeconstraints", - "DuplicatesAllowed": false, - "ItemType": "SizeConstraint", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::NetworkAclEntry": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl-entry.html", - "Properties": { - "CidrBlock": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl-entry.html#cfn-ec2-networkaclentry-cidrblock", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Egress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl-entry.html#cfn-ec2-networkaclentry-egress", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "Icmp": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl-entry.html#cfn-ec2-networkaclentry-icmp", - "Required": false, - "Type": "Icmp", - "UpdateType": "Mutable" - }, - "Ipv6CidrBlock": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl-entry.html#cfn-ec2-networkaclentry-ipv6cidrblock", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "NetworkAclId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl-entry.html#cfn-ec2-networkaclentry-networkaclid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "PortRange": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl-entry.html#cfn-ec2-networkaclentry-portrange", - "Required": false, - "Type": "PortRange", - "UpdateType": "Mutable" - }, - "Protocol": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl-entry.html#cfn-ec2-networkaclentry-protocol", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - }, - "RuleAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl-entry.html#cfn-ec2-networkaclentry-ruleaction", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "RuleNumber": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl-entry.html#cfn-ec2-networkaclentry-rulenumber", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::CloudWatch::Dashboard": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-dashboard.html", - "Properties": { - "DashboardName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-dashboard.html#cfn-cloudwatch-dashboard-dashboardname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "DashboardBody": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-dashboard.html#cfn-cloudwatch-dashboard-dashboardbody", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::Cluster": { - "Attributes": { - "Arn": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html", - "Properties": { - "ClusterName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html#cfn-ecs-cluster-clustername", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::IAM::Policy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html", - "Properties": { - "Groups": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-groups", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "PolicyDocument": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-policydocument", - "PrimitiveType": "Json", - "Required": true, - "UpdateType": "Mutable" - }, - "PolicyName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-policyname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Roles": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-roles", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Users": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-users", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::InternetGateway": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-internetgateway.html", - "Properties": { - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-internetgateway.html#cfn-ec2-internetgateway-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticLoadBalancingV2::ListenerCertificate": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenercertificate.html", - "Properties": { - "Certificates": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenercertificate.html#cfn-elasticloadbalancingv2-listenercertificate-certificates", - "DuplicatesAllowed": false, - "ItemType": "Certificate", - "Required": true, - "Type": "List", - "UpdateType": "Immutable" - }, - "ListenerArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenercertificate.html#cfn-elasticloadbalancingv2-listenercertificate-listenerarn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::IAM::Role": { - "Attributes": { - "Arn": { - "PrimitiveType": "String" - }, - "RoleId": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html", - "Properties": { - "AssumeRolePolicyDocument": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-assumerolepolicydocument", - "PrimitiveType": "Json", - "Required": true, - "UpdateType": "Mutable" - }, - "ManagedPolicyArns": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-managepolicyarns", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "MaxSessionDuration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-maxsessionduration", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "Path": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-path", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Policies": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-policies", - "DuplicatesAllowed": true, - "ItemType": "Policy", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "RoleName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-rolename", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::Neptune::DBParameterGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbparametergroup.html", - "Properties": { - "Description": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbparametergroup.html#cfn-neptune-dbparametergroup-description", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Parameters": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbparametergroup.html#cfn-neptune-dbparametergroup-parameters", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - }, - "Family": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbparametergroup.html#cfn-neptune-dbparametergroup-family", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Tags": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbparametergroup.html#cfn-neptune-dbparametergroup-tags", - "ItemType": "Tag", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbparametergroup.html#cfn-neptune-dbparametergroup-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::StepFunctions::Activity": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-activity.html", - "Attributes": { - "Name": { - "PrimitiveType": "String" - } - }, - "Properties": { - "Name": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-activity.html#cfn-stepfunctions-activity-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::KinesisAnalytics::ApplicationOutput": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-applicationoutput.html", - "Properties": { - "ApplicationName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-applicationoutput.html#cfn-kinesisanalytics-applicationoutput-applicationname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Output": { - "Type": "Output", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-applicationoutput.html#cfn-kinesisanalytics-applicationoutput-output", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::LaunchTemplate": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html", - "Attributes": { - "LatestVersionNumber": { - "PrimitiveType": "String" - }, - "DefaultVersionNumber": { - "PrimitiveType": "String" - } - }, - "Properties": { - "LaunchTemplateName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#cfn-ec2-launchtemplate-launchtemplatename", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "LaunchTemplateData": { - "Type": "LaunchTemplateData", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#cfn-ec2-launchtemplate-launchtemplatedata", - "UpdateType": "Mutable" - } - } - }, - "AWS::OpsWorks::Volume": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-volume.html", - "Properties": { - "Ec2VolumeId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-volume.html#cfn-opsworks-volume-ec2volumeid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "MountPoint": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-volume.html#cfn-opsworks-volume-mountpoint", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-volume.html#cfn-opsworks-volume-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "StackId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-volume.html#cfn-opsworks-volume-stackid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::ServiceCatalog::TagOptionAssociation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-tagoptionassociation.html", - "Properties": { - "TagOptionId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-tagoptionassociation.html#cfn-servicecatalog-tagoptionassociation-tagoptionid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "ResourceId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-tagoptionassociation.html#cfn-servicecatalog-tagoptionassociation-resourceid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::AppSync::GraphQLSchema": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlschema.html", - "Properties": { - "Definition": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlschema.html#cfn-appsync-graphqlschema-definition", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DefinitionS3Location": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlschema.html#cfn-appsync-graphqlschema-definitions3location", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ApiId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlschema.html#cfn-appsync-graphqlschema-apiid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::EC2::Volume": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html", - "Properties": { - "AutoEnableIO": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-autoenableio", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "AvailabilityZone": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-availabilityzone", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Encrypted": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-encrypted", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Iops": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-iops", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "KmsKeyId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-kmskeyid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Size": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-size", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "SnapshotId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-snapshotid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "VolumeType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-volumetype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::ServiceCatalog::LaunchTemplateConstraint": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchtemplateconstraint.html", - "Properties": { - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchtemplateconstraint.html#cfn-servicecatalog-launchtemplateconstraint-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "AcceptLanguage": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchtemplateconstraint.html#cfn-servicecatalog-launchtemplateconstraint-acceptlanguage", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "PortfolioId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchtemplateconstraint.html#cfn-servicecatalog-launchtemplateconstraint-portfolioid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "ProductId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchtemplateconstraint.html#cfn-servicecatalog-launchtemplateconstraint-productid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Rules": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchtemplateconstraint.html#cfn-servicecatalog-launchtemplateconstraint-rules", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::EMR::Cluster": { - "Attributes": { - "MasterPublicDNS": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html", - "Properties": { - "AdditionalInfo": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-additionalinfo", - "PrimitiveType": "Json", - "Required": false, - "UpdateType": "Immutable" - }, - "Applications": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-applications", - "DuplicatesAllowed": false, - "ItemType": "Application", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "AutoScalingRole": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-autoscalingrole", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "BootstrapActions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-bootstrapactions", - "DuplicatesAllowed": false, - "ItemType": "BootstrapActionConfig", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "Configurations": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-configurations", - "DuplicatesAllowed": false, - "ItemType": "Configuration", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "CustomAmiId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-customamiid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "EbsRootVolumeSize": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-ebsrootvolumesize", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - }, - "Instances": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-instances", - "Required": true, - "Type": "JobFlowInstancesConfig", - "UpdateType": "Conditional" - }, - "JobFlowRole": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-jobflowrole", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "LogUri": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-loguri", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "ReleaseLabel": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-releaselabel", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ScaleDownBehavior": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-scaledownbehavior", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "SecurityConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-securityconfiguration", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ServiceRole": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-servicerole", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "VisibleToAllUsers": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-visibletoallusers", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::SpotFleet": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-spotfleet.html", - "Properties": { - "SpotFleetRequestConfigData": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-spotfleet.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata", - "Required": true, - "Type": "SpotFleetRequestConfigData", - "UpdateType": "Conditional" - } - } - }, - "AWS::AppSync::GraphQLApi": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html", - "Attributes": { - "GraphQLUrl": { - "PrimitiveType": "String" - }, - "Arn": { - "PrimitiveType": "String" - }, - "ApiId": { - "PrimitiveType": "String" - } - }, - "Properties": { - "OpenIDConnectConfig": { - "Type": "OpenIDConnectConfig", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-openidconnectconfig", - "UpdateType": "Mutable" - }, - "UserPoolConfig": { - "Type": "UserPoolConfig", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-userpoolconfig", - "UpdateType": "Mutable" - }, - "Name": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "AuthenticationType": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-authenticationtype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "LogConfig": { - "Type": "LogConfig", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-logconfig", - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudFront::StreamingDistribution": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-streamingdistribution.html", - "Attributes": { - "DomainName": { - "PrimitiveType": "String" - } - }, - "Properties": { - "StreamingDistributionConfig": { - "Type": "StreamingDistributionConfig", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-streamingdistribution.html#cfn-cloudfront-streamingdistribution-streamingdistributionconfig", - "UpdateType": "Mutable" - }, - "Tags": { - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-streamingdistribution.html#cfn-cloudfront-streamingdistribution-tags", - "ItemType": "Tag", - "UpdateType": "Mutable" - } - } - }, - "AWS::GameLift::Alias": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-alias.html", - "Properties": { - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-alias.html#cfn-gamelift-alias-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-alias.html#cfn-gamelift-alias-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "RoutingStrategy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-alias.html#cfn-gamelift-alias-routingstrategy", - "Required": true, - "Type": "RoutingStrategy", - "UpdateType": "Mutable" - } - } - }, - "AWS::GuardDuty::Filter": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-filter.html", - "Properties": { - "Action": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-filter.html#cfn-guardduty-filter-action", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Description": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-filter.html#cfn-guardduty-filter-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DetectorId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-filter.html#cfn-guardduty-filter-detectorid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "FindingCriteria": { - "Type": "FindingCriteria", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-filter.html#cfn-guardduty-filter-findingcriteria", - "UpdateType": "Mutable" - }, - "Rank": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-filter.html#cfn-guardduty-filter-rank", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-filter.html#cfn-guardduty-filter-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::EC2::VPNConnectionRoute": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection-route.html", - "Properties": { - "DestinationCidrBlock": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection-route.html#cfn-ec2-vpnconnectionroute-cidrblock", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "VpnConnectionId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection-route.html#cfn-ec2-vpnconnectionroute-connectionid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::WAF::Rule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-rule.html", - "Properties": { - "MetricName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-rule.html#cfn-waf-rule-metricname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-rule.html#cfn-waf-rule-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Predicates": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-rule.html#cfn-waf-rule-predicates", - "DuplicatesAllowed": false, - "ItemType": "Predicate", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::DirectoryService::MicrosoftAD": { - "Attributes": { - "Alias": { - "PrimitiveType": "String" - }, - "DnsIpAddresses": { - "PrimitiveItemType": "String", - "Type": "List" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html", - "Properties": { - "CreateAlias": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html#cfn-directoryservice-microsoftad-createalias", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "Edition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html#cfn-directoryservice-microsoftad-edition", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "EnableSso": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html#cfn-directoryservice-microsoftad-enablesso", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html#cfn-directoryservice-microsoftad-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Password": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html#cfn-directoryservice-microsoftad-password", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "ShortName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html#cfn-directoryservice-microsoftad-shortname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "VpcSettings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html#cfn-directoryservice-microsoftad-vpcsettings", - "Required": true, - "Type": "VpcSettings", - "UpdateType": "Immutable" - } - } - }, - "AWS::SNS::Subscription": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html", - "Properties": { - "Endpoint": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-endpoint", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Protocol": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-protocol", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "TopicArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#topicarn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::EFS::MountTarget": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html", - "Properties": { - "FileSystemId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html#cfn-efs-mounttarget-filesystemid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "IpAddress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html#cfn-efs-mounttarget-ipaddress", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "SecurityGroups": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html#cfn-efs-mounttarget-securitygroups", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "SubnetId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html#cfn-efs-mounttarget-subnetid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::SSM::Document": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html", - "Properties": { - "Content": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html#cfn-ssm-document-content", - "PrimitiveType": "Json", - "Required": true, - "UpdateType": "Immutable" - }, - "DocumentType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html#cfn-ssm-document-documenttype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html#cfn-ssm-document-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::SNS::Topic": { - "Attributes": { - "TopicName": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html", - "Properties": { - "DisplayName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html#cfn-sns-topic-displayname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Subscription": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html#cfn-sns-topic-subscription", - "DuplicatesAllowed": true, - "ItemType": "Subscription", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "TopicName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html#cfn-sns-topic-topicname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::EC2::NetworkInterfacePermission": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfacepermission.html", - "Properties": { - "AwsAccountId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfacepermission.html#cfn-ec2-networkinterfacepermission-awsaccountid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "NetworkInterfaceId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfacepermission.html#cfn-ec2-networkinterfacepermission-networkinterfaceid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Permission": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfacepermission.html#cfn-ec2-networkinterfacepermission-permission", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::Config::DeliveryChannel": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-deliverychannel.html", - "Properties": { - "ConfigSnapshotDeliveryProperties": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-deliverychannel.html#cfn-config-deliverychannel-configsnapshotdeliveryproperties", - "Required": false, - "Type": "ConfigSnapshotDeliveryProperties", - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-deliverychannel.html#cfn-config-deliverychannel-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "S3BucketName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-deliverychannel.html#cfn-config-deliverychannel-s3bucketname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "S3KeyPrefix": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-deliverychannel.html#cfn-config-deliverychannel-s3keyprefix", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "SnsTopicARN": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-deliverychannel.html#cfn-config-deliverychannel-snstopicarn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::GameLift::Build": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-build.html", - "Properties": { - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-build.html#cfn-gamelift-build-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "StorageLocation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-build.html#cfn-gamelift-build-storagelocation", - "Required": false, - "Type": "S3Location", - "UpdateType": "Immutable" - }, - "Version": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-build.html#cfn-gamelift-build-version", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::ServiceCatalog::TagOption": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-tagoption.html", - "Properties": { - "Active": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-tagoption.html#cfn-servicecatalog-tagoption-active", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "Value": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-tagoption.html#cfn-servicecatalog-tagoption-value", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Key": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-tagoption.html#cfn-servicecatalog-tagoption-key", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::Cognito::UserPoolGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolgroup.html", - "Properties": { - "GroupName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolgroup.html#cfn-cognito-userpoolgroup-groupname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolgroup.html#cfn-cognito-userpoolgroup-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "UserPoolId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolgroup.html#cfn-cognito-userpoolgroup-userpoolid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Precedence": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolgroup.html#cfn-cognito-userpoolgroup-precedence", - "PrimitiveType": "Double", - "UpdateType": "Mutable" - }, - "RoleArn": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolgroup.html#cfn-cognito-userpoolgroup-rolearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::ApiGateway::Deployment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-deployment.html", - "Properties": { - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-deployment.html#cfn-apigateway-deployment-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "RestApiId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-deployment.html#cfn-apigateway-deployment-restapiid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "StageDescription": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-deployment.html#cfn-apigateway-deployment-stagedescription", - "Required": false, - "Type": "StageDescription", - "UpdateType": "Mutable" - }, - "StageName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-deployment.html#cfn-apigateway-deployment-stagename", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::KMS::Key": { - "Attributes": { - "Arn": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html", - "Properties": { - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "EnableKeyRotation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-enablekeyrotation", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Enabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-enabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "KeyPolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-keypolicy", - "PrimitiveType": "Json", - "Required": true, - "UpdateType": "Mutable" - }, - "KeyUsage": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-keyusage", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudWatch::Alarm": { - "Attributes": { - "Arn": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html", - "Properties": { - "ActionsEnabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-actionsenabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "AlarmActions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-alarmactions", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "AlarmDescription": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-alarmdescription", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "AlarmName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-alarmname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ComparisonOperator": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-comparisonoperator", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Dimensions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-dimension", - "DuplicatesAllowed": true, - "ItemType": "Dimension", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "EvaluateLowSampleCountPercentile": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-evaluatelowsamplecountpercentile", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "EvaluationPeriods": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-evaluationperiods", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - }, - "ExtendedStatistic": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-extendedstatistic", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "InsufficientDataActions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-insufficientdataactions", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "MetricName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-metricname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Namespace": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-namespace", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "OKActions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-okactions", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Period": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-period", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - }, - "Statistic": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-statistic", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Threshold": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-threshold", - "PrimitiveType": "Double", - "Required": true, - "UpdateType": "Mutable" - }, - "TreatMissingData": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-treatmissingdata", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Unit": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-unit", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Redshift::Cluster": { - "Attributes": { - "Endpoint.Address": { - "PrimitiveType": "String" - }, - "Endpoint.Port": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html", - "Properties": { - "AllowVersionUpgrade": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-allowversionupgrade", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "AutomatedSnapshotRetentionPeriod": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-automatedsnapshotretentionperiod", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "AvailabilityZone": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-availabilityzone", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ClusterIdentifier": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-clusteridentifier", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ClusterParameterGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-clusterparametergroupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ClusterSecurityGroups": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-clustersecuritygroups", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "ClusterSubnetGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-clustersubnetgroupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ClusterType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-clustertype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "ClusterVersion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-clusterversion", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DBName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-dbname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "ElasticIp": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-elasticip", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Encrypted": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-encrypted", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "HsmClientCertificateIdentifier": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-hsmclientcertidentifier", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "HsmConfigurationIdentifier": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-HsmConfigurationIdentifier", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "IamRoles": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-iamroles", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "KmsKeyId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-kmskeyid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "LoggingProperties": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-loggingproperties", - "Required": false, - "Type": "LoggingProperties", - "UpdateType": "Mutable" - }, - "MasterUserPassword": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-masteruserpassword", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "MasterUsername": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-masterusername", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "NodeType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-nodetype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "NumberOfNodes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-nodetype", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "OwnerAccount": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-owneraccount", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Port": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-port", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - }, - "PreferredMaintenanceWindow": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-preferredmaintenancewindow", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "PubliclyAccessible": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-publiclyaccessible", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "SnapshotClusterIdentifier": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-snapshotclusteridentifier", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "SnapshotIdentifier": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-snapshotidentifier", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "VpcSecurityGroupIds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-vpcsecuritygroupids", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::OpsWorks::App": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-app.html", - "Properties": { - "AppSource": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-app.html#cfn-opsworks-app-appsource", - "Required": false, - "Type": "Source", - "UpdateType": "Mutable" - }, - "Attributes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-app.html#cfn-opsworks-app-attributes", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "DataSources": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-app.html#cfn-opsworks-app-datasources", - "DuplicatesAllowed": false, - "ItemType": "DataSource", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-app.html#cfn-opsworks-app-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Domains": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-app.html#cfn-opsworks-app-domains", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "EnableSsl": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-app.html#cfn-opsworks-app-enablessl", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Environment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-app.html#cfn-opsworks-app-environment", - "DuplicatesAllowed": true, - "ItemType": "EnvironmentVariable", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-app.html#cfn-opsworks-app-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Shortname": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-app.html#cfn-opsworks-app-shortname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "SslConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-app.html#cfn-opsworks-app-sslconfiguration", - "Required": false, - "Type": "SslConfiguration", - "UpdateType": "Mutable" - }, - "StackId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-app.html#cfn-opsworks-app-stackid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-app.html#cfn-opsworks-app-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Lambda::EventSourceMapping": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html", - "Properties": { - "BatchSize": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-batchsize", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "Enabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-enabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "EventSourceArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-eventsourcearn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "FunctionName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-functionname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "StartingPosition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingposition", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::CertificateManager::Certificate": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html", - "Properties": { - "DomainName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html#cfn-certificatemanager-certificate-domainname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "DomainValidationOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html#cfn-certificatemanager-certificate-domainvalidationoptions", - "DuplicatesAllowed": false, - "ItemType": "DomainValidationOption", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "SubjectAlternativeNames": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html#cfn-certificatemanager-certificate-subjectalternativenames", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html#cfn-certificatemanager-certificate-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "ValidationMethod": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html#cfn-certificatemanager-certificate-validationmethod", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::ApiGateway::Authorizer": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html", - "Properties": { - "AuthType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-authtype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "AuthorizerCredentials": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-authorizercredentials", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "AuthorizerResultTtlInSeconds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-authorizerresultttlinseconds", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "AuthorizerUri": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-authorizeruri", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "IdentitySource": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-identitysource", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "IdentityValidationExpression": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-identityvalidationexpression", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ProviderARNs": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-providerarns", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "RestApiId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-restapiid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-type", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::EIP": { - "Attributes": { - "AllocationId": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip.html", - "Properties": { - "Domain": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip.html#cfn-ec2-eip-domain", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "InstanceId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip.html#cfn-ec2-eip-instanceid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Inspector::ResourceGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-resourcegroup.html", - "Attributes": { - "Arn": { - "PrimitiveType": "String" - } - }, - "Properties": { - "ResourceGroupTags": { - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-resourcegroup.html#cfn-inspector-resourcegroup-resourcegrouptags", - "ItemType": "Tag", - "UpdateType": "Immutable" - } - } - }, - "AWS::ApiGateway::DomainName": { - "Attributes": { - "DistributionDomainName": { - "PrimitiveType": "String" - }, - "DistributionHostedZoneId": { - "PrimitiveType": "String" - }, - "RegionalDomainName": { - "PrimitiveType": "String" - }, - "RegionalHostedZoneId": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html", - "Properties": { - "CertificateArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-certificatearn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DomainName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-domainname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "EndpointConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-endpointconfiguration", - "Required": false, - "Type": "EndpointConfiguration", - "UpdateType": "Mutable" - }, - "RegionalCertificateArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-regionalcertificatearn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Batch::JobDefinition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html", - "Properties": { - "Type": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-type", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Parameters": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-parameters", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - }, - "Timeout": { - "Type": "Timeout", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-timeout", - "UpdateType": "Mutable" - }, - "ContainerProperties": { - "Type": "ContainerProperties", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-containerproperties", - "UpdateType": "Mutable" - }, - "JobDefinitionName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-jobdefinitionname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "RetryStrategy": { - "Type": "RetryStrategy", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-retrystrategy", - "UpdateType": "Mutable" - } - } - }, - "AWS::ServiceCatalog::PortfolioPrincipalAssociation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioprincipalassociation.html", - "Properties": { - "PrincipalARN": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioprincipalassociation.html#cfn-servicecatalog-portfolioprincipalassociation-principalarn", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "AcceptLanguage": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioprincipalassociation.html#cfn-servicecatalog-portfolioprincipalassociation-acceptlanguage", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "PortfolioId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioprincipalassociation.html#cfn-servicecatalog-portfolioprincipalassociation-portfolioid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "PrincipalType": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioprincipalassociation.html#cfn-servicecatalog-portfolioprincipalassociation-principaltype", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::GameLift::Fleet": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html", - "Properties": { - "BuildId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-buildid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DesiredEC2Instances": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-desiredec2instances", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - }, - "EC2InboundPermissions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-ec2inboundpermissions", - "DuplicatesAllowed": false, - "ItemType": "IpPermission", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "EC2InstanceType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-ec2instancetype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "LogPaths": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-logpaths", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "MaxSize": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-maxsize", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "MinSize": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-minsize", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "ServerLaunchParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-serverlaunchparameters", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ServerLaunchPath": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-serverlaunchpath", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::EC2::SecurityGroupIngress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html", - "Properties": { - "CidrIp": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-cidrip", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "CidrIpv6": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-cidripv6", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "FromPort": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-fromport", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - }, - "GroupId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-groupid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "GroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-groupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "IpProtocol": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-ipprotocol", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "SourceSecurityGroupId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-sourcesecuritygroupid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "SourceSecurityGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-sourcesecuritygroupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "SourceSecurityGroupOwnerId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-sourcesecuritygroupownerid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ToPort": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-toport", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::ApiGateway::DocumentationPart": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html", - "Properties": { - "Location": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html#cfn-apigateway-documentationpart-location", - "Required": true, - "Type": "Location", - "UpdateType": "Immutable" - }, - "Properties": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html#cfn-apigateway-documentationpart-properties", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "RestApiId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html#cfn-apigateway-documentationpart-restapiid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::RDS::DBCluster": { - "Attributes": { - "Endpoint.Address": { - "PrimitiveType": "String" - }, - "Endpoint.Port": { - "PrimitiveType": "String" - }, - "ReadEndpoint.Address": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html", - "Properties": { - "AvailabilityZones": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-availabilityzones", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "BackupRetentionPeriod": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-backuprententionperiod", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "DBClusterIdentifier": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-dbclusteridentifier", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "DBClusterParameterGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-dbclusterparametergroupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DBSubnetGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-dbsubnetgroupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "DatabaseName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-databasename", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Engine": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-engine", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "EngineVersion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-engineversion", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "KmsKeyId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-kmskeyid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "MasterUserPassword": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-masteruserpassword", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "MasterUsername": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-masterusername", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Port": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-port", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "PreferredBackupWindow": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-preferredbackupwindow", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "PreferredMaintenanceWindow": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-preferredmaintenancewindow", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ReplicationSourceIdentifier": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-replicationsourceidentifier", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "SnapshotIdentifier": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-snapshotidentifier", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "StorageEncrypted": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-storageencrypted", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "VpcSecurityGroupIds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-vpcsecuritygroupids", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::Service": { - "Attributes": { - "Name": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html", - "Properties": { - "Cluster": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-cluster", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "DeploymentConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-deploymentconfiguration", - "Required": false, - "Type": "DeploymentConfiguration", - "UpdateType": "Mutable" - }, - "DesiredCount": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-desiredcount", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "HealthCheckGracePeriodSeconds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-healthcheckgraceperiodseconds", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "LaunchType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-launchtype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "LoadBalancers": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-loadbalancers", - "DuplicatesAllowed": false, - "ItemType": "LoadBalancer", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "NetworkConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-networkconfiguration", - "Required": false, - "Type": "NetworkConfiguration", - "UpdateType": "Mutable" - }, - "PlacementConstraints": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-placementconstraints", - "DuplicatesAllowed": false, - "ItemType": "PlacementConstraint", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "PlacementStrategies": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-placementstrategies", - "DuplicatesAllowed": false, - "ItemType": "PlacementStrategy", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "PlatformVersion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-platformversion", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Role": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-role", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ServiceName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-servicename", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ServiceRegistries": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-serviceregistries", - "DuplicatesAllowed": false, - "ItemType": "ServiceRegistry", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "TaskDefinition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-taskdefinition", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::IAM::UserToGroupAddition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html", - "Properties": { - "GroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html#cfn-iam-addusertogroup-groupname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Users": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html#cfn-iam-addusertogroup-users", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::RDS::DBSubnetGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsubnet-group.html", - "Properties": { - "DBSubnetGroupDescription": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsubnet-group.html#cfn-rds-dbsubnetgroup-dbsubnetgroupdescription", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "DBSubnetGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsubnet-group.html#cfn-rds-dbsubnetgroup-dbsubnetgroupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "SubnetIds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsubnet-group.html#cfn-rds-dbsubnetgroup-subnetids", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsubnet-group.html#cfn-rds-dbsubnetgroup-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::Batch::JobQueue": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html", - "Properties": { - "ComputeEnvironmentOrder": { - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-computeenvironmentorder", - "ItemType": "ComputeEnvironmentOrder", - "UpdateType": "Mutable" - }, - "Priority": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-priority", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "State": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-state", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "JobQueueName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-jobqueuename", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::IoT::Thing": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thing.html", - "Properties": { - "AttributePayload": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thing.html#cfn-iot-thing-attributepayload", - "Required": false, - "Type": "AttributePayload", - "UpdateType": "Mutable" - }, - "ThingName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thing.html#cfn-iot-thing-thingname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::ElasticLoadBalancing::LoadBalancer": { - "Attributes": { - "CanonicalHostedZoneName": { - "PrimitiveType": "String" - }, - "CanonicalHostedZoneNameID": { - "PrimitiveType": "String" - }, - "DNSName": { - "PrimitiveType": "String" - }, - "SourceSecurityGroup.GroupName": { - "PrimitiveType": "String" - }, - "SourceSecurityGroup.OwnerAlias": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html", - "Properties": { - "AccessLoggingPolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-accessloggingpolicy", - "Required": false, - "Type": "AccessLoggingPolicy", - "UpdateType": "Mutable" - }, - "AppCookieStickinessPolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-appcookiestickinesspolicy", - "DuplicatesAllowed": false, - "ItemType": "AppCookieStickinessPolicy", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "AvailabilityZones": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-availabilityzones", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Conditional" - }, - "ConnectionDrainingPolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-connectiondrainingpolicy", - "Required": false, - "Type": "ConnectionDrainingPolicy", - "UpdateType": "Mutable" - }, - "ConnectionSettings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-connectionsettings", - "Required": false, - "Type": "ConnectionSettings", - "UpdateType": "Mutable" - }, - "CrossZone": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-crosszone", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "HealthCheck": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-healthcheck", - "Required": false, - "Type": "HealthCheck", - "UpdateType": "Conditional" - }, - "Instances": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-instances", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "LBCookieStickinessPolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-lbcookiestickinesspolicy", - "DuplicatesAllowed": false, - "ItemType": "LBCookieStickinessPolicy", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Listeners": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-listeners", - "DuplicatesAllowed": false, - "ItemType": "Listeners", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "LoadBalancerName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-elbname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Policies": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-policies", - "DuplicatesAllowed": false, - "ItemType": "Policies", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Scheme": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-scheme", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "SecurityGroups": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-securitygroups", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Subnets": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-subnets", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Conditional" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-elasticloadbalancing-loadbalancer-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::OpsWorks::Layer": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html", - "Properties": { - "Attributes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html#cfn-opsworks-layer-attributes", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "AutoAssignElasticIps": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html#cfn-opsworks-layer-autoassignelasticips", - "PrimitiveType": "Boolean", - "Required": true, - "UpdateType": "Mutable" - }, - "AutoAssignPublicIps": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html#cfn-opsworks-layer-autoassignpublicips", - "PrimitiveType": "Boolean", - "Required": true, - "UpdateType": "Mutable" - }, - "CustomInstanceProfileArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html#cfn-opsworks-layer-custominstanceprofilearn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "CustomJson": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html#cfn-opsworks-layer-customjson", - "PrimitiveType": "Json", - "Required": false, - "UpdateType": "Mutable" - }, - "CustomRecipes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html#cfn-opsworks-layer-customrecipes", - "Required": false, - "Type": "Recipes", - "UpdateType": "Mutable" - }, - "CustomSecurityGroupIds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html#cfn-opsworks-layer-customsecuritygroupids", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "EnableAutoHealing": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html#cfn-opsworks-layer-enableautohealing", - "PrimitiveType": "Boolean", - "Required": true, - "UpdateType": "Mutable" - }, - "InstallUpdatesOnBoot": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html#cfn-opsworks-layer-installupdatesonboot", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "LifecycleEventConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html#cfn-opsworks-layer-lifecycleeventconfiguration", - "Required": false, - "Type": "LifecycleEventConfiguration", - "UpdateType": "Mutable" - }, - "LoadBasedAutoScaling": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html#cfn-opsworks-layer-loadbasedautoscaling", - "Required": false, - "Type": "LoadBasedAutoScaling", - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html#cfn-opsworks-layer-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Packages": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html#cfn-opsworks-layer-packages", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Shortname": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html#cfn-opsworks-layer-shortname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "StackId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html#cfn-opsworks-layer-stackid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html#cfn-opsworks-layer-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html#cfn-opsworks-layer-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "UseEbsOptimizedInstances": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html#cfn-opsworks-layer-useebsoptimizedinstances", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "VolumeConfigurations": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-layer.html#cfn-opsworks-layer-volumeconfigurations", - "DuplicatesAllowed": true, - "ItemType": "VolumeConfiguration", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::DMS::Certificate": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-certificate.html", - "Properties": { - "CertificateIdentifier": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-certificate.html#cfn-dms-certificate-certificateidentifier", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "CertificatePem": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-certificate.html#cfn-dms-certificate-certificatepem", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "CertificateWallet": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-certificate.html#cfn-dms-certificate-certificatewallet", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::ApiGateway::ApiKey": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html", - "Properties": { - "CustomerId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-customerid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Enabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-enabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "GenerateDistinctId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-generatedistinctid", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "StageKeys": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-stagekeys", - "DuplicatesAllowed": false, - "ItemType": "StageKey", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Table": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-table.html", - "Properties": { - "TableInput": { - "Type": "TableInput", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-table.html#cfn-glue-table-tableinput", - "UpdateType": "Mutable" - }, - "DatabaseName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-table.html#cfn-glue-table-databasename", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "CatalogId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-table.html#cfn-glue-table-catalogid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::EC2::SubnetRouteTableAssociation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet-route-table-assoc.html", - "Properties": { - "RouteTableId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet-route-table-assoc.html#cfn-ec2-subnetroutetableassociation-routetableid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "SubnetId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet-route-table-assoc.html#cfn-ec2-subnetroutetableassociation-subnetid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::ElastiCache::SecurityGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group.html", - "Properties": { - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group.html#cfn-elasticache-securitygroup-description", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::IoT::Policy": { - "Attributes": { - "Arn": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policy.html", - "Properties": { - "PolicyDocument": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policy.html#cfn-iot-policy-policydocument", - "PrimitiveType": "Json", - "Required": true, - "UpdateType": "Immutable" - }, - "PolicyName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policy.html#cfn-iot-policy-policyname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::IAM::InstanceProfile": { - "Attributes": { - "Arn": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html", - "Properties": { - "InstanceProfileName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html#cfn-iam-instanceprofile-instanceprofilename", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Path": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html#cfn-iam-instanceprofile-path", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Roles": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html#cfn-iam-instanceprofile-roles", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeDeploy::DeploymentGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html", - "Properties": { - "AlarmConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-alarmconfiguration", - "Required": false, - "Type": "AlarmConfiguration", - "UpdateType": "Mutable" - }, - "ApplicationName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-applicationname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "AutoRollbackConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-autorollbackconfiguration", - "Required": false, - "Type": "AutoRollbackConfiguration", - "UpdateType": "Mutable" - }, - "AutoScalingGroups": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-autoscalinggroups", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Deployment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-deployment", - "Required": false, - "Type": "Deployment", - "UpdateType": "Mutable" - }, - "DeploymentConfigName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-deploymentconfigname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DeploymentGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-deploymentgroupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "DeploymentStyle": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-deploymentstyle", - "Required": false, - "Type": "DeploymentStyle", - "UpdateType": "Mutable" - }, - "Ec2TagFilters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-ec2tagfilters", - "DuplicatesAllowed": false, - "ItemType": "EC2TagFilter", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "LoadBalancerInfo": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-loadbalancerinfo", - "Required": false, - "Type": "LoadBalancerInfo", - "UpdateType": "Mutable" - }, - "OnPremisesInstanceTagFilters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-onpremisesinstancetagfilters", - "DuplicatesAllowed": false, - "ItemType": "TagFilter", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "ServiceRoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-servicerolearn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "TriggerConfigurations": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-triggerconfigurations", - "DuplicatesAllowed": false, - "ItemType": "TriggerConfig", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::Batch::ComputeEnvironment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html", - "Properties": { - "Type": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-type", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "ServiceRole": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-servicerole", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ComputeEnvironmentName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-computeenvironmentname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "ComputeResources": { - "Type": "ComputeResources", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-computeresources", - "UpdateType": "Mutable" - }, - "State": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-state", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::ApiGateway::Model": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html", - "Properties": { - "ContentType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html#cfn-apigateway-model-contenttype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html#cfn-apigateway-model-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html#cfn-apigateway-model-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "RestApiId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html#cfn-apigateway-model-restapiid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Schema": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html#cfn-apigateway-model-schema", - "PrimitiveType": "Json", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::Route": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html", - "Properties": { - "DestinationCidrBlock": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-destinationcidrblock", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "DestinationIpv6CidrBlock": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-destinationipv6cidrblock", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "EgressOnlyInternetGatewayId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-egressonlyinternetgatewayid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "GatewayId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-gatewayid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "InstanceId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-instanceid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "NatGatewayId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-natgatewayid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "NetworkInterfaceId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-networkinterfaceid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "RouteTableId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-routetableid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "VpcPeeringConnectionId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-vpcpeeringconnectionid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::GuardDuty::ThreatIntelSet": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatintelset.html", - "Properties": { - "Format": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatintelset.html#cfn-guardduty-threatintelset-format", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Activate": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatintelset.html#cfn-guardduty-threatintelset-activate", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "DetectorId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatintelset.html#cfn-guardduty-threatintelset-detectorid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatintelset.html#cfn-guardduty-threatintelset-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Location": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatintelset.html#cfn-guardduty-threatintelset-location", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::Logs::MetricFilter": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html", - "Properties": { - "FilterPattern": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-cwl-metricfilter-filterpattern", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "LogGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-cwl-metricfilter-loggroupname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "MetricTransformations": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-cwl-metricfilter-metrictransformations", - "DuplicatesAllowed": false, - "ItemType": "MetricTransformation", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::ApiGateway::Resource": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html", - "Properties": { - "ParentId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html#cfn-apigateway-resource-parentid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "PathPart": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html#cfn-apigateway-resource-pathpart", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "RestApiId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html#cfn-apigateway-resource-restapiid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::Glue::Connection": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-connection.html", - "Properties": { - "ConnectionInput": { - "Type": "ConnectionInput", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-connection.html#cfn-glue-connection-connectioninput", - "UpdateType": "Mutable" - }, - "CatalogId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-connection.html#cfn-glue-connection-catalogid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::SES::ReceiptFilter": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptfilter.html", - "Properties": { - "Filter": { - "Type": "Filter", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptfilter.html#cfn-ses-receiptfilter-filter", - "UpdateType": "Immutable" - } - } - }, - "AWS::EC2::FlowLog": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html", - "Properties": { - "DeliverLogsPermissionArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-deliverlogspermissionarn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "LogGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-loggroupname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "ResourceId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-resourceid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "ResourceType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-resourcetype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "TrafficType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-traffictype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::Cognito::IdentityPool": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html", - "Attributes": { - "Name": { - "PrimitiveType": "String" - } - }, - "Properties": { - "PushSync": { - "Type": "PushSync", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html#cfn-cognito-identitypool-pushsync", - "UpdateType": "Mutable" - }, - "CognitoIdentityProviders": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html#cfn-cognito-identitypool-cognitoidentityproviders", - "ItemType": "CognitoIdentityProvider", - "UpdateType": "Mutable" - }, - "CognitoEvents": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html#cfn-cognito-identitypool-cognitoevents", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - }, - "DeveloperProviderName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html#cfn-cognito-identitypool-developerprovidername", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "CognitoStreams": { - "Type": "CognitoStreams", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html#cfn-cognito-identitypool-cognitostreams", - "UpdateType": "Mutable" - }, - "IdentityPoolName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html#cfn-cognito-identitypool-identitypoolname", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "AllowUnauthenticatedIdentities": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html#cfn-cognito-identitypool-allowunauthenticatedidentities", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "SupportedLoginProviders": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html#cfn-cognito-identitypool-supportedloginproviders", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - }, - "SamlProviderARNs": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html#cfn-cognito-identitypool-samlproviderarns", - "UpdateType": "Mutable" - }, - "OpenIdConnectProviderARNs": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html#cfn-cognito-identitypool-openidconnectproviderarns", - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticBeanstalk::Application": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk.html", - "Properties": { - "ApplicationName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk.html#cfn-elasticbeanstalk-application-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk.html#cfn-elasticbeanstalk-application-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ResourceLifecycleConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk.html#cfn-elasticbeanstalk-application-resourcelifecycleconfig", - "Required": false, - "Type": "ApplicationResourceLifecycleConfig", - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticLoadBalancingV2::LoadBalancer": { - "Attributes": { - "CanonicalHostedZoneID": { - "PrimitiveType": "String" - }, - "DNSName": { - "PrimitiveType": "String" - }, - "LoadBalancerFullName": { - "PrimitiveType": "String" - }, - "LoadBalancerName": { - "PrimitiveType": "String" - }, - "SecurityGroups": { - "PrimitiveItemType": "String", - "Type": "List" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", - "Properties": { - "IpAddressType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-ipaddresstype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "LoadBalancerAttributes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-loadbalancerattributes", - "DuplicatesAllowed": false, - "ItemType": "LoadBalancerAttribute", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Scheme": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-scheme", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "SecurityGroups": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-securitygroups", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "SubnetMappings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-subnetmappings", - "DuplicatesAllowed": false, - "ItemType": "SubnetMapping", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "Subnets": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-subnets", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-type", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::IAM::AccessKey": { - "Attributes": { - "SecretAccessKey": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html", - "Properties": { - "Serial": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html#cfn-iam-accesskey-serial", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - }, - "Status": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html#cfn-iam-accesskey-status", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "UserName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html#cfn-iam-accesskey-username", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::SES::ReceiptRule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptrule.html", - "Properties": { - "After": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptrule.html#cfn-ses-receiptrule-after", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Rule": { - "Type": "Rule", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptrule.html#cfn-ses-receiptrule-rule", - "UpdateType": "Mutable" - }, - "RuleSetName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptrule.html#cfn-ses-receiptrule-rulesetname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::DMS::ReplicationSubnetGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html", - "Properties": { - "ReplicationSubnetGroupDescription": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html#cfn-dms-replicationsubnetgroup-replicationsubnetgroupdescription", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ReplicationSubnetGroupIdentifier": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html#cfn-dms-replicationsubnetgroup-replicationsubnetgroupidentifier", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "SubnetIds": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html#cfn-dms-replicationsubnetgroup-subnetids", - "UpdateType": "Mutable" - }, - "Tags": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html#cfn-dms-replicationsubnetgroup-tags", - "ItemType": "Tag", - "UpdateType": "Immutable" - } - } - }, - "AWS::SES::ConfigurationSetEventDestination": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-configurationseteventdestination.html", - "Properties": { - "ConfigurationSetName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-configurationseteventdestination.html#cfn-ses-configurationseteventdestination-configurationsetname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "EventDestination": { - "Type": "EventDestination", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-configurationseteventdestination.html#cfn-ses-configurationseteventdestination-eventdestination", - "UpdateType": "Mutable" - } - } - }, - "AWS::ElastiCache::SubnetGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-subnetgroup.html", - "Properties": { - "CacheSubnetGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-subnetgroup.html#cfn-elasticache-subnetgroup-cachesubnetgroupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-subnetgroup.html#cfn-elasticache-subnetgroup-description", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "SubnetIds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-subnetgroup.html#cfn-elasticache-subnetgroup-subnetids", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeBuild::Project": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html", - "Attributes": { - "Arn": { - "PrimitiveType": "String" - } - }, - "Properties": { - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "VpcConfig": { - "Type": "VpcConfig", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-vpcconfig", - "UpdateType": "Mutable" - }, - "EncryptionKey": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-encryptionkey", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Triggers": { - "Type": "ProjectTriggers", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-triggers", - "UpdateType": "Mutable" - }, - "Source": { - "Type": "Source", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-source", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Artifacts": { - "Type": "Artifacts", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-artifacts", - "UpdateType": "Mutable" - }, - "BadgeEnabled": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-badgeenabled", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "ServiceRole": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-servicerole", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Environment": { - "Type": "Environment", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-environment", - "UpdateType": "Mutable" - }, - "Tags": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-tags", - "ItemType": "Tag", - "UpdateType": "Mutable" - }, - "TimeoutInMinutes": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-timeoutinminutes", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "Cache": { - "Type": "ProjectCache", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-cache", - "UpdateType": "Mutable" - } - } - }, - "AWS::Budgets::Budget": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budget.html", - "Properties": { - "NotificationsWithSubscribers": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budget.html#cfn-budgets-budget-notificationswithsubscribers", - "ItemType": "NotificationWithSubscribers", - "UpdateType": "Immutable" - }, - "Budget": { - "Type": "BudgetData", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budget.html#cfn-budgets-budget-budget", - "UpdateType": "Mutable" - } - } - }, - "AWS::SNS::TopicPolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html", - "Properties": { - "PolicyDocument": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html#cfn-sns-topicpolicy-policydocument", - "PrimitiveType": "Json", - "Required": true, - "UpdateType": "Mutable" - }, - "Topics": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html#cfn-sns-topicpolicy-topics", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::Lambda::Alias": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html", - "Properties": { - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "FunctionName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-functionname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "FunctionVersion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-functionversion", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "RoutingConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-routingconfig", - "Required": false, - "Type": "AliasRoutingConfiguration", - "UpdateType": "Mutable" - } - } - }, - "AWS::WAFRegional::ByteMatchSet": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-bytematchset.html", - "Properties": { - "ByteMatchTuples": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-bytematchset.html#cfn-wafregional-bytematchset-bytematchtuples", - "ItemType": "ByteMatchTuple", - "UpdateType": "Mutable" - }, - "Name": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-bytematchset.html#cfn-wafregional-bytematchset-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::EC2::SecurityGroupEgress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-egress.html", - "Properties": { - "CidrIp": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-egress.html#cfn-ec2-securitygroupegress-cidrip", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "CidrIpv6": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-egress.html#cfn-ec2-securitygroupegress-cidripv6", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-egress.html#cfn-ec2-securitygroupegress-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DestinationPrefixListId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-egress.html#cfn-ec2-securitygroupegress-destinationprefixlistid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "DestinationSecurityGroupId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-egress.html#cfn-ec2-securitygroupegress-destinationsecuritygroupid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "FromPort": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-egress.html#cfn-ec2-securitygroupegress-fromport", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - }, - "GroupId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-egress.html#cfn-ec2-securitygroupegress-groupid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "IpProtocol": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-egress.html#cfn-ec2-securitygroupegress-ipprotocol", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "ToPort": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-egress.html#cfn-ec2-securitygroupegress-toport", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::ElasticLoadBalancingV2::Listener": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html", - "Properties": { - "Certificates": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html#cfn-elasticloadbalancingv2-listener-certificates", - "DuplicatesAllowed": false, - "ItemType": "Certificate", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "DefaultActions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html#cfn-elasticloadbalancingv2-listener-defaultactions", - "DuplicatesAllowed": false, - "ItemType": "Action", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "LoadBalancerArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html#cfn-elasticloadbalancingv2-listener-loadbalancerarn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Port": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html#cfn-elasticloadbalancingv2-listener-port", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - }, - "Protocol": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html#cfn-elasticloadbalancingv2-listener-protocol", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "SslPolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html#cfn-elasticloadbalancingv2-listener-sslpolicy", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::NetworkInterface": { - "Attributes": { - "PrimaryPrivateIpAddress": { - "PrimitiveType": "String" - }, - "SecondaryPrivateIpAddresses": { - "PrimitiveItemType": "String", - "Type": "List" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface.html", - "Properties": { - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface.html#cfn-awsec2networkinterface-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "GroupSet": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface.html#cfn-awsec2networkinterface-groupset", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "InterfaceType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface.html#cfn-ec2-networkinterface-interfacetype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Ipv6AddressCount": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface.html#cfn-ec2-networkinterface-ipv6addresscount", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "Ipv6Addresses": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface.html#cfn-ec2-networkinterface-ipv6addresses", - "Required": false, - "Type": "InstanceIpv6Address", - "UpdateType": "Mutable" - }, - "PrivateIpAddress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface.html#cfn-awsec2networkinterface-privateipaddress", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "PrivateIpAddresses": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface.html#cfn-awsec2networkinterface-privateipaddresses", - "DuplicatesAllowed": false, - "ItemType": "PrivateIpAddressSpecification", - "Required": false, - "Type": "List", - "UpdateType": "Conditional" - }, - "SecondaryPrivateIpAddressCount": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface.html#cfn-awsec2networkinterface-secondaryprivateipcount", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "SourceDestCheck": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface.html#cfn-awsec2networkinterface-sourcedestcheck", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "SubnetId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface.html#cfn-awsec2networkinterface-subnetid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface.html#cfn-awsec2networkinterface-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::DAX::SubnetGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html", - "Properties": { - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html#cfn-dax-subnetgroup-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "SubnetGroupName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html#cfn-dax-subnetgroup-subnetgroupname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "SubnetIds": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html#cfn-dax-subnetgroup-subnetids", - "UpdateType": "Mutable" - } - } - }, - "AWS::OpsWorks::Stack": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html", - "Properties": { - "AgentVersion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#cfn-opsworks-stack-agentversion", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Attributes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#cfn-opsworks-stack-attributes", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "ChefConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#cfn-opsworks-stack-chefconfiguration", - "Required": false, - "Type": "ChefConfiguration", - "UpdateType": "Mutable" - }, - "CloneAppIds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#cfn-opsworks-stack-cloneappids", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "ClonePermissions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#cfn-opsworks-stack-clonepermissions", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "ConfigurationManager": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#cfn-opsworks-stack-configmanager", - "Required": false, - "Type": "StackConfigurationManager", - "UpdateType": "Mutable" - }, - "CustomCookbooksSource": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#cfn-opsworks-stack-custcookbooksource", - "Required": false, - "Type": "Source", - "UpdateType": "Mutable" - }, - "CustomJson": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#cfn-opsworks-stack-custjson", - "PrimitiveType": "Json", - "Required": false, - "UpdateType": "Mutable" - }, - "DefaultAvailabilityZone": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#cfn-opsworks-stack-defaultaz", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DefaultInstanceProfileArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#cfn-opsworks-stack-defaultinstanceprof", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "DefaultOs": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#cfn-opsworks-stack-defaultos", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DefaultRootDeviceType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#cfn-opsworks-stack-defaultrootdevicetype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DefaultSshKeyName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#cfn-opsworks-stack-defaultsshkeyname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DefaultSubnetId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#defaultsubnet", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "EcsClusterArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#cfn-opsworks-stack-ecsclusterarn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ElasticIps": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#cfn-opsworks-stack-elasticips", - "DuplicatesAllowed": false, - "ItemType": "ElasticIp", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "HostnameTheme": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#cfn-opsworks-stack-hostnametheme", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#cfn-opsworks-stack-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "RdsDbInstances": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#cfn-opsworks-stack-rdsdbinstances", - "DuplicatesAllowed": false, - "ItemType": "RdsDbInstance", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "ServiceRoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#cfn-opsworks-stack-servicerolearn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "SourceStackId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#cfn-opsworks-stack-sourcestackid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#cfn-opsworks-stack-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "UseCustomCookbooks": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#usecustcookbooks", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "UseOpsworksSecurityGroups": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#cfn-opsworks-stack-useopsworkssecuritygroups", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "VpcId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html#cfn-opsworks-stack-vpcid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::DataPipeline::Pipeline": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datapipeline-pipeline.html", - "Properties": { - "Activate": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datapipeline-pipeline.html#cfn-datapipeline-pipeline-activate", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datapipeline-pipeline.html#cfn-datapipeline-pipeline-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datapipeline-pipeline.html#cfn-datapipeline-pipeline-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "ParameterObjects": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datapipeline-pipeline.html#cfn-datapipeline-pipeline-parameterobjects", - "DuplicatesAllowed": true, - "ItemType": "ParameterObject", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "ParameterValues": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datapipeline-pipeline.html#cfn-datapipeline-pipeline-parametervalues", - "DuplicatesAllowed": true, - "ItemType": "ParameterValue", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "PipelineObjects": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datapipeline-pipeline.html#cfn-datapipeline-pipeline-pipelineobjects", - "DuplicatesAllowed": true, - "ItemType": "PipelineObject", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "PipelineTags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datapipeline-pipeline.html#cfn-datapipeline-pipeline-pipelinetags", - "DuplicatesAllowed": true, - "ItemType": "PipelineTag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::StepFunctions::StateMachine": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html", - "Attributes": { - "Name": { - "PrimitiveType": "String" - } - }, - "Properties": { - "DefinitionString": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitionstring", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "StateMachineName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinename", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "RoleArn": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-rolearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeDeploy::DeploymentConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentconfig.html", - "Properties": { - "DeploymentConfigName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentconfig.html#cfn-codedeploy-deploymentconfig-deploymentconfigname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "MinimumHealthyHosts": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentconfig.html#cfn-codedeploy-deploymentconfig-minimumhealthyhosts", - "Required": false, - "Type": "MinimumHealthyHosts", - "UpdateType": "Immutable" - } - } - }, - "AWS::DMS::EventSubscription": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html", - "Properties": { - "SourceType": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-sourcetype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "EventCategories": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-eventcategories", - "UpdateType": "Mutable" - }, - "Enabled": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-enabled", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "SubscriptionName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-subscriptionname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "SnsTopicArn": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-snstopicarn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "SourceIds": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-sourceids", - "UpdateType": "Immutable" - }, - "Tags": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-tags", - "ItemType": "Tag", - "UpdateType": "Immutable" - } - } - }, - "AWS::DAX::ParameterGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html", - "Properties": { - "ParameterNameValues": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html#cfn-dax-parametergroup-parameternamevalues", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - }, - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html#cfn-dax-parametergroup-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ParameterGroupName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html#cfn-dax-parametergroup-parametergroupname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::EC2::SubnetNetworkAclAssociation": { - "Attributes": { - "AssociationId": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet-network-acl-assoc.html", - "Properties": { - "NetworkAclId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet-network-acl-assoc.html#cfn-ec2-subnetnetworkaclassociation-networkaclid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "SubnetId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet-network-acl-assoc.html#cfn-ec2-subnetnetworkaclassociation-associationid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::ApiGateway::Account": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-account.html", - "Properties": { - "CloudWatchRoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-account.html#cfn-apigateway-account-cloudwatchrolearn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::SES::Template": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-template.html", - "Properties": { - "Template": { - "Type": "Template", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-template.html#cfn-ses-template-template", - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudFront::Distribution": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html", - "Attributes": { - "DomainName": { - "PrimitiveType": "String" - } - }, - "Properties": { - "DistributionConfig": { - "Type": "DistributionConfig", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html#cfn-cloudfront-distribution-distributionconfig", - "UpdateType": "Mutable" - }, - "Tags": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html#cfn-cloudfront-distribution-tags", - "ItemType": "Tag", - "UpdateType": "Mutable" - } - } - }, - "AWS::Redshift::ClusterParameterGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clusterparametergroup.html", - "Properties": { - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clusterparametergroup.html#cfn-redshift-clusterparametergroup-description", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "ParameterGroupFamily": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clusterparametergroup.html#cfn-redshift-clusterparametergroup-parametergroupfamily", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Parameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clusterparametergroup.html#cfn-redshift-clusterparametergroup-parameters", - "DuplicatesAllowed": true, - "ItemType": "Parameter", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clusterparametergroup.html#cfn-redshift-clusterparametergroup-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudTrail::Trail": { - "Attributes": { - "Arn": { - "PrimitiveType": "String" - }, - "SnsTopicArn": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html", - "Properties": { - "CloudWatchLogsLogGroupArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-cloudwatchlogsloggrouparn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "CloudWatchLogsRoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-cloudwatchlogsrolearn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "EnableLogFileValidation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-enablelogfilevalidation", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "EventSelectors": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-eventselectors", - "DuplicatesAllowed": false, - "ItemType": "EventSelector", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "IncludeGlobalServiceEvents": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-includeglobalserviceevents", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "IsLogging": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-islogging", - "PrimitiveType": "Boolean", - "Required": true, - "UpdateType": "Mutable" - }, - "IsMultiRegionTrail": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-ismultiregiontrail", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "KMSKeyId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-kmskeyid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "S3BucketName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-s3bucketname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "S3KeyPrefix": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-s3keyprefix", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "SnsTopicName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-snstopicname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "TrailName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-trailname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::ServiceCatalog::LaunchRoleConstraint": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchroleconstraint.html", - "Properties": { - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchroleconstraint.html#cfn-servicecatalog-launchroleconstraint-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "AcceptLanguage": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchroleconstraint.html#cfn-servicecatalog-launchroleconstraint-acceptlanguage", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "PortfolioId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchroleconstraint.html#cfn-servicecatalog-launchroleconstraint-portfolioid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "ProductId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchroleconstraint.html#cfn-servicecatalog-launchroleconstraint-productid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "RoleArn": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchroleconstraint.html#cfn-servicecatalog-launchroleconstraint-rolearn", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::ServiceCatalog::CloudFormationProvisionedProduct": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html", - "Attributes": { - "CloudformationStackArn": { - "PrimitiveType": "String" - }, - "RecordId": { - "PrimitiveType": "String" - } - }, - "Properties": { - "PathId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-pathid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ProvisioningParameters": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningparameters", - "ItemType": "ProvisioningParameter", - "UpdateType": "Mutable" - }, - "ProductName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-productname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "ProvisioningArtifactName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningartifactname", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "NotificationArns": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-notificationarns", - "UpdateType": "Immutable" - }, - "AcceptLanguage": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-acceptlanguage", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ProductId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-productid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Tags": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-tags", - "ItemType": "Tag", - "UpdateType": "Immutable" - }, - "ProvisionedProductName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisionedproductname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "ProvisioningArtifactId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningartifactid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::InstanceGroupConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html", - "Properties": { - "AutoScalingPolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-elasticmapreduce-instancegroupconfig-autoscalingpolicy", - "Required": false, - "Type": "AutoScalingPolicy", - "UpdateType": "Mutable" - }, - "BidPrice": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-bidprice", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Configurations": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-configurations", - "DuplicatesAllowed": false, - "ItemType": "Configuration", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "EbsConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-ebsconfiguration", - "Required": false, - "Type": "EbsConfiguration", - "UpdateType": "Immutable" - }, - "InstanceCount": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfiginstancecount-", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - }, - "InstanceRole": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-instancerole", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "InstanceType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-instancetype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "JobFlowId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-jobflowid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Market": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-market", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::Neptune::DBClusterParameterGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbclusterparametergroup.html", - "Properties": { - "Description": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbclusterparametergroup.html#cfn-neptune-dbclusterparametergroup-description", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Parameters": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbclusterparametergroup.html#cfn-neptune-dbclusterparametergroup-parameters", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - }, - "Family": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbclusterparametergroup.html#cfn-neptune-dbclusterparametergroup-family", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Tags": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbclusterparametergroup.html#cfn-neptune-dbclusterparametergroup-tags", - "ItemType": "Tag", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbclusterparametergroup.html#cfn-neptune-dbclusterparametergroup-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::EC2::SubnetCidrBlock": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetcidrblock.html", - "Properties": { - "Ipv6CidrBlock": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetcidrblock.html#cfn-ec2-subnetcidrblock-ipv6cidrblock", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "SubnetId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetcidrblock.html#cfn-ec2-subnetcidrblock-subnetid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::AutoScaling::LifecycleHook": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-lifecyclehook.html", - "Properties": { - "AutoScalingGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-lifecyclehook.html#cfn-as-lifecyclehook-autoscalinggroupname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "DefaultResult": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-lifecyclehook.html#cfn-as-lifecyclehook-defaultresult", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "HeartbeatTimeout": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-lifecyclehook.html#cfn-as-lifecyclehook-heartbeattimeout", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "LifecycleHookName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-lifecyclehook.html#cfn-autoscaling-lifecyclehook-lifecyclehookname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "LifecycleTransition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-lifecyclehook.html#cfn-as-lifecyclehook-lifecycletransition", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "NotificationMetadata": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-lifecyclehook.html#cfn-as-lifecyclehook-notificationmetadata", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "NotificationTargetARN": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-lifecyclehook.html#cfn-as-lifecyclehook-notificationtargetarn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "RoleARN": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-lifecyclehook.html#cfn-as-lifecyclehook-rolearn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticLoadBalancingV2::ListenerRule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenerrule.html", - "Properties": { - "Actions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenerrule.html#cfn-elasticloadbalancingv2-listenerrule-actions", - "DuplicatesAllowed": false, - "ItemType": "Action", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "Conditions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenerrule.html#cfn-elasticloadbalancingv2-listenerrule-conditions", - "DuplicatesAllowed": false, - "ItemType": "RuleCondition", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "ListenerArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenerrule.html#cfn-elasticloadbalancingv2-listenerrule-listenerarn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Priority": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenerrule.html#cfn-elasticloadbalancingv2-listenerrule-priority", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::CodePipeline::Pipeline": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html", - "Properties": { - "ArtifactStore": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-artifactstore", - "Required": true, - "Type": "ArtifactStore", - "UpdateType": "Mutable" - }, - "DisableInboundStageTransitions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-disableinboundstagetransitions", - "DuplicatesAllowed": false, - "ItemType": "StageTransition", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "RestartExecutionOnUpdate": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-restartexecutiononupdate", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "RoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-rolearn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Stages": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-stages", - "DuplicatesAllowed": false, - "ItemType": "StageDeclaration", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::Redshift::ClusterSecurityGroupIngress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersecuritygroupingress.html", - "Properties": { - "CIDRIP": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersecuritygroupingress.html#cfn-redshift-clustersecuritygroupingress-cidrip", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ClusterSecurityGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersecuritygroupingress.html#cfn-redshift-clustersecuritygroupingress-clustersecuritygroupname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "EC2SecurityGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersecuritygroupingress.html#cfn-redshift-clustersecuritygroupingress-ec2securitygroupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "EC2SecurityGroupOwnerId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersecuritygroupingress.html#cfn-redshift-clustersecuritygroupingress-ec2securitygroupownerid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::RDS::OptionGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-optiongroup.html", - "Properties": { - "EngineName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-optiongroup.html#cfn-rds-optiongroup-enginename", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "MajorEngineVersion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-optiongroup.html#cfn-rds-optiongroup-majorengineversion", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "OptionConfigurations": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-optiongroup.html#cfn-rds-optiongroup-optionconfigurations", - "DuplicatesAllowed": true, - "ItemType": "OptionConfiguration", - "Required": true, - "Type": "List", - "UpdateType": "Immutable" - }, - "OptionGroupDescription": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-optiongroup.html#cfn-rds-optiongroup-optiongroupdescription", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-optiongroup.html#cfn-rds-optiongroup-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::NatGateway": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-natgateway.html", - "Properties": { - "AllocationId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-natgateway.html#cfn-ec2-natgateway-allocationid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "SubnetId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-natgateway.html#cfn-ec2-natgateway-subnetid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-natgateway.html#cfn-ec2-natgateway-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::ElastiCache::SecurityGroupIngress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group-ingress.html", - "Properties": { - "CacheSecurityGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group-ingress.html#cfn-elasticache-securitygroupingress-cachesecuritygroupname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "EC2SecurityGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group-ingress.html#cfn-elasticache-securitygroupingress-ec2securitygroupname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "EC2SecurityGroupOwnerId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group-ingress.html#cfn-elasticache-securitygroupingress-ec2securitygroupownerid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::IoT::TopicRule": { - "Attributes": { - "Arn": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicrule.html", - "Properties": { - "RuleName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicrule.html#cfn-iot-topicrule-rulename", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "TopicRulePayload": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicrule.html#cfn-iot-topicrule-topicrulepayload", - "Required": true, - "Type": "TopicRulePayload", - "UpdateType": "Mutable" - } - } - }, - "AWS::OpsWorks::ElasticLoadBalancerAttachment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-elbattachment.html", - "Properties": { - "ElasticLoadBalancerName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-elbattachment.html#cfn-opsworks-elbattachment-elbname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "LayerId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-elbattachment.html#cfn-opsworks-elbattachment-layerid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::ElastiCache::ReplicationGroup": { - "Attributes": { - "ConfigurationEndPoint.Address": { - "PrimitiveType": "String" - }, - "ConfigurationEndPoint.Port": { - "PrimitiveType": "String" - }, - "PrimaryEndPoint.Address": { - "PrimitiveType": "String" - }, - "PrimaryEndPoint.Port": { - "PrimitiveType": "String" - }, - "ReadEndPoint.Addresses": { - "PrimitiveType": "String" - }, - "ReadEndPoint.Addresses.List": { - "PrimitiveItemType": "String", - "Type": "List" - }, - "ReadEndPoint.Ports": { - "PrimitiveType": "String" - }, - "ReadEndPoint.Ports.List": { - "PrimitiveItemType": "String", - "Type": "List" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html", - "Properties": { - "AtRestEncryptionEnabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-atrestencryptionenabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "AuthToken": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-authtoken", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "AutoMinorVersionUpgrade": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-autominorversionupgrade", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "AutomaticFailoverEnabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-automaticfailoverenabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "CacheNodeType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-cachenodetype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "CacheParameterGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-cacheparametergroupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "CacheSecurityGroupNames": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-cachesecuritygroupnames", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "CacheSubnetGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-cachesubnetgroupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Engine": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-engine", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "EngineVersion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-engineversion", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "NodeGroupConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-nodegroupconfiguration", - "DuplicatesAllowed": false, - "ItemType": "NodeGroupConfiguration", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "NotificationTopicArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-notificationtopicarn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "NumCacheClusters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-numcacheclusters", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "NumNodeGroups": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-numnodegroups", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - }, - "Port": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-port", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - }, - "PreferredCacheClusterAZs": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-preferredcacheclusterazs", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "PreferredMaintenanceWindow": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-preferredmaintenancewindow", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "PrimaryClusterId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-primaryclusterid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ReplicasPerNodeGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-replicaspernodegroup", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - }, - "ReplicationGroupDescription": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-replicationgroupdescription", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "ReplicationGroupId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-replicationgroupid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "SecurityGroupIds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-securitygroupids", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "SnapshotArns": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-snapshotarns", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "SnapshotName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-snapshotname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "SnapshotRetentionLimit": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-snapshotretentionlimit", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "SnapshotWindow": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-snapshotwindow", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "SnapshottingClusterId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-snapshottingclusterid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "TransitEncryptionEnabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-transitencryptionenabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::Cognito::UserPoolUser": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html", - "Properties": { - "ValidationData": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html#cfn-cognito-userpooluser-validationdata", - "ItemType": "AttributeType", - "UpdateType": "Immutable" - }, - "UserPoolId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html#cfn-cognito-userpooluser-userpoolid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Username": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html#cfn-cognito-userpooluser-username", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "MessageAction": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html#cfn-cognito-userpooluser-messageaction", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "DesiredDeliveryMediums": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html#cfn-cognito-userpooluser-desireddeliverymediums", - "UpdateType": "Immutable" - }, - "ForceAliasCreation": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html#cfn-cognito-userpooluser-forcealiascreation", - "PrimitiveType": "Boolean", - "UpdateType": "Immutable" - }, - "UserAttributes": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html#cfn-cognito-userpooluser-userattributes", - "ItemType": "AttributeType", - "UpdateType": "Immutable" - } - } - }, - "AWS::WAFRegional::WebACLAssociation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-webaclassociation.html", - "Properties": { - "ResourceArn": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-webaclassociation.html#cfn-wafregional-webaclassociation-resourcearn", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "WebACLId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-webaclassociation.html#cfn-wafregional-webaclassociation-webaclid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::ServiceCatalog::CloudFormationProduct": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationproduct.html", - "Attributes": { - "ProductName": { - "PrimitiveType": "String" - }, - "ProvisioningArtifactIds": { - "PrimitiveType": "String" - }, - "ProvisioningArtifactNames": { - "PrimitiveType": "String" - } - }, - "Properties": { - "Owner": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationproduct.html#cfn-servicecatalog-cloudformationproduct-owner", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "SupportDescription": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationproduct.html#cfn-servicecatalog-cloudformationproduct-supportdescription", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationproduct.html#cfn-servicecatalog-cloudformationproduct-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Distributor": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationproduct.html#cfn-servicecatalog-cloudformationproduct-distributor", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "SupportEmail": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationproduct.html#cfn-servicecatalog-cloudformationproduct-supportemail", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "AcceptLanguage": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationproduct.html#cfn-servicecatalog-cloudformationproduct-acceptlanguage", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "SupportUrl": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationproduct.html#cfn-servicecatalog-cloudformationproduct-supporturl", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Tags": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationproduct.html#cfn-servicecatalog-cloudformationproduct-tags", - "ItemType": "Tag", - "UpdateType": "Mutable" - }, - "Name": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationproduct.html#cfn-servicecatalog-cloudformationproduct-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ProvisioningArtifactParameters": { - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationproduct.html#cfn-servicecatalog-cloudformationproduct-provisioningartifactparameters", - "ItemType": "ProvisioningArtifactProperties", - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudFormation::WaitCondition": { - "Attributes": { - "Data": { - "PrimitiveType": "Json" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html", - "Properties": { - "Count": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html#cfn-waitcondition-count", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "Handle": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html#cfn-waitcondition-handle", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Timeout": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html#cfn-waitcondition-timeout", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::SecurityGroup": { - "Attributes": { - "GroupId": { - "PrimitiveType": "String" - }, - "VpcId": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html", - "Properties": { - "GroupDescription": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html#cfn-ec2-securitygroup-groupdescription", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "GroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html#cfn-ec2-securitygroup-groupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "SecurityGroupEgress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html#cfn-ec2-securitygroup-securitygroupegress", - "DuplicatesAllowed": true, - "ItemType": "Egress", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "SecurityGroupIngress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html#cfn-ec2-securitygroup-securitygroupingress", - "DuplicatesAllowed": true, - "ItemType": "Ingress", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html#cfn-ec2-securitygroup-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "VpcId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html#cfn-ec2-securitygroup-vpcid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::Cloud9::EnvironmentEC2": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html", - "Attributes": { - "Arn": { - "PrimitiveType": "String" - }, - "Name": { - "PrimitiveType": "String" - } - }, - "Properties": { - "Repositories": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-repositories", - "ItemType": "Repository", - "UpdateType": "Immutable" - }, - "OwnerArn": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-ownerarn", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-description", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "AutomaticStopTimeMinutes": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-automaticstoptimeminutes", - "PrimitiveType": "Integer", - "UpdateType": "Immutable" - }, - "SubnetId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-subnetid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "InstanceType": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-instancetype", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::WAFRegional::WebACL": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-webacl.html", - "Properties": { - "MetricName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-webacl.html#cfn-wafregional-webacl-metricname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "DefaultAction": { - "Type": "Action", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-webacl.html#cfn-wafregional-webacl-defaultaction", - "UpdateType": "Mutable" - }, - "Rules": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-webacl.html#cfn-wafregional-webacl-rules", - "ItemType": "Rule", - "UpdateType": "Mutable" - }, - "Name": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-webacl.html#cfn-wafregional-webacl-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::WAFRegional::Rule": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-rule.html", - "Properties": { - "MetricName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-rule.html#cfn-wafregional-rule-metricname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Predicates": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-rule.html#cfn-wafregional-rule-predicates", - "ItemType": "Predicate", - "UpdateType": "Mutable" - }, - "Name": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-rule.html#cfn-wafregional-rule-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::CloudFront::CloudFrontOriginAccessIdentity": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-cloudfrontoriginaccessidentity.html", - "Attributes": { - "S3CanonicalUserId": { - "PrimitiveType": "String" - } - }, - "Properties": { - "CloudFrontOriginAccessIdentityConfig": { - "Type": "CloudFrontOriginAccessIdentityConfig", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-cloudfrontoriginaccessidentity.html#cfn-cloudfront-cloudfrontoriginaccessidentity-cloudfrontoriginaccessidentityconfig", - "UpdateType": "Mutable" - } - } - }, - "AWS::AppSync::ApiKey": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html", - "Attributes": { - "ApiKey": { - "PrimitiveType": "String" - }, - "Arn": { - "PrimitiveType": "String" - } - }, - "Properties": { - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Expires": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-expires", - "PrimitiveType": "Double", - "UpdateType": "Mutable" - }, - "ApiId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-apiid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::Route53::HostedZone": { - "Attributes": { - "NameServers": { - "PrimitiveItemType": "String", - "Type": "List" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html", - "Properties": { - "HostedZoneConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html#cfn-route53-hostedzone-hostedzoneconfig", - "Required": false, - "Type": "HostedZoneConfig", - "UpdateType": "Mutable" - }, - "HostedZoneTags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html#cfn-route53-hostedzone-hostedzonetags", - "DuplicatesAllowed": true, - "ItemType": "HostedZoneTag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html#cfn-route53-hostedzone-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "QueryLoggingConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html#cfn-route53-hostedzone-queryloggingconfig", - "Required": false, - "Type": "QueryLoggingConfig", - "UpdateType": "Mutable" - }, - "VPCs": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html#cfn-route53-hostedzone-vpcs", - "DuplicatesAllowed": true, - "ItemType": "VPC", - "Required": false, - "Type": "List", - "UpdateType": "Conditional" - } - } - }, - "AWS::ApiGateway::RestApi": { - "Attributes": { - "RootResourceId": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html", - "Properties": { - "ApiKeySourceType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-apikeysourcetype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "BinaryMediaTypes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-binarymediatypes", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Body": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body", - "PrimitiveType": "Json", - "Required": false, - "UpdateType": "Mutable" - }, - "BodyS3Location": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-bodys3location", - "Required": false, - "Type": "S3Location", - "UpdateType": "Mutable" - }, - "CloneFrom": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-clonefrom", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "EndpointConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-endpointconfiguration", - "Required": false, - "Type": "EndpointConfiguration", - "UpdateType": "Mutable" - }, - "FailOnWarnings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-failonwarnings", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "MinimumCompressionSize": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-minimumcompressionsize", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Parameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-parameters", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "Policy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-policy", - "PrimitiveType": "Json", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::Subnet": { - "Attributes": { - "AvailabilityZone": { - "PrimitiveType": "String" - }, - "Ipv6CidrBlocks": { - "PrimitiveItemType": "String", - "Type": "List" - }, - "NetworkAclAssociationId": { - "PrimitiveType": "String" - }, - "VpcId": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html", - "Properties": { - "AssignIpv6AddressOnCreation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-assignipv6addressoncreation", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "AvailabilityZone": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-availabilityzone", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "CidrBlock": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-cidrblock", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Ipv6CidrBlock": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-ipv6cidrblock", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "MapPublicIpOnLaunch": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-mappubliciponlaunch", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "VpcId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-awsec2subnet-prop-vpcid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::CodeDeploy::Application": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html", - "Properties": { - "ApplicationName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html#cfn-codedeploy-application-applicationname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ComputePlatform": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html#cfn-codedeploy-application-computeplatform", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::ServiceCatalog::PortfolioProductAssociation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioproductassociation.html", - "Properties": { - "SourcePortfolioId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioproductassociation.html#cfn-servicecatalog-portfolioproductassociation-sourceportfolioid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "AcceptLanguage": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioproductassociation.html#cfn-servicecatalog-portfolioproductassociation-acceptlanguage", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "PortfolioId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioproductassociation.html#cfn-servicecatalog-portfolioproductassociation-portfolioid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "ProductId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioproductassociation.html#cfn-servicecatalog-portfolioproductassociation-productid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::ServiceDiscovery::Instance": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html", - "Properties": { - "InstanceAttributes": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html#cfn-servicediscovery-instance-instanceattributes", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - }, - "InstanceId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html#cfn-servicediscovery-instance-instanceid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "ServiceId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html#cfn-servicediscovery-instance-serviceid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::EC2::VPC": { - "Attributes": { - "CidrBlock": { - "PrimitiveType": "String" - }, - "CidrBlockAssociations": { - "PrimitiveItemType": "String", - "Type": "List" - }, - "DefaultNetworkAcl": { - "PrimitiveType": "String" - }, - "DefaultSecurityGroup": { - "PrimitiveType": "String" - }, - "Ipv6CidrBlocks": { - "PrimitiveItemType": "String", - "Type": "List" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html", - "Properties": { - "CidrBlock": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html#cfn-aws-ec2-vpc-cidrblock", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "EnableDnsHostnames": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html#cfn-aws-ec2-vpc-EnableDnsHostnames", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "EnableDnsSupport": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html#cfn-aws-ec2-vpc-EnableDnsSupport", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "InstanceTenancy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html#cfn-aws-ec2-vpc-instancetenancy", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html#cfn-aws-ec2-vpc-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::Instance": { - "Attributes": { - "AvailabilityZone": { - "PrimitiveType": "String" - }, - "PrivateDnsName": { - "PrimitiveType": "String" - }, - "PrivateIp": { - "PrimitiveType": "String" - }, - "PublicDnsName": { - "PrimitiveType": "String" - }, - "PublicIp": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html", - "Properties": { - "AdditionalInfo": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-additionalinfo", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Conditional" - }, - "Affinity": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-affinity", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Conditional" - }, - "AvailabilityZone": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-availabilityzone", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "BlockDeviceMappings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-blockdevicemappings", - "DuplicatesAllowed": true, - "ItemType": "BlockDeviceMapping", - "Required": false, - "Type": "List", - "UpdateType": "Conditional" - }, - "CreditSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-creditspecification", - "Required": false, - "Type": "CreditSpecification", - "UpdateType": "Mutable" - }, - "DisableApiTermination": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-disableapitermination", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "EbsOptimized": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-ebsoptimized", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Conditional" - }, - "ElasticGpuSpecifications": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-elasticgpuspecifications", - "DuplicatesAllowed": false, - "ItemType": "ElasticGpuSpecification", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "HostId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-hostid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Conditional" - }, - "IamInstanceProfile": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-iaminstanceprofile", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ImageId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-imageid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "InstanceInitiatedShutdownBehavior": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-instanceinitiatedshutdownbehavior", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "InstanceType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-instancetype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Conditional" - }, - "Ipv6AddressCount": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-ipv6addresscount", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - }, - "Ipv6Addresses": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-ipv6addresses", - "DuplicatesAllowed": true, - "ItemType": "InstanceIpv6Address", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "KernelId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-kernelid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Conditional" - }, - "KeyName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-keyname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "LaunchTemplate": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-launchtemplate", - "Required": false, - "Type": "LaunchTemplateSpecification", - "UpdateType": "Immutable" - }, - "Monitoring": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-monitoring", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "NetworkInterfaces": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-networkinterfaces", - "DuplicatesAllowed": true, - "ItemType": "NetworkInterface", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "PlacementGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-placementgroupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "PrivateIpAddress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-privateipaddress", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "RamdiskId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-ramdiskid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Conditional" - }, - "SecurityGroupIds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-securitygroupids", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Conditional" - }, - "SecurityGroups": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-securitygroups", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "SourceDestCheck": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-sourcedestcheck", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "SsmAssociations": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-ssmassociations", - "DuplicatesAllowed": true, - "ItemType": "SsmAssociation", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "SubnetId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-subnetid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Tenancy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-tenancy", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Conditional" - }, - "UserData": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-userdata", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Conditional" - }, - "Volumes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-volumes", - "DuplicatesAllowed": true, - "ItemType": "Volume", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::EKS::Cluster": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html", - "Attributes": { - "Endpoint": { - "PrimitiveType": "String" - }, - "Arn": { - "PrimitiveType": "String" - }, - "CertificateAuthorityData": { - "PrimitiveType": "String" - } - }, - "Properties": { - "Version": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-version", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "RoleArn": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-rolearn", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "ResourcesVpcConfig": { - "Type": "ResourcesVpcConfig", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-resourcesvpcconfig", - "UpdateType": "Immutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::CloudFormation::Stack": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html", - "Properties": { - "NotificationARNs": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-notificationarns", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Parameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-parameters", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "TemplateURL": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-templateurl", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "TimeoutInMinutes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-timeoutinminutes", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::ElastiCache::ParameterGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-parameter-group.html", - "Properties": { - "CacheParameterGroupFamily": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-parameter-group.html#cfn-elasticache-parametergroup-cacheparametergroupfamily", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-parameter-group.html#cfn-elasticache-parametergroup-description", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Properties": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-parameter-group.html#cfn-elasticache-parametergroup-properties", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - } - } - }, - "AWS::WAF::ByteMatchSet": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-bytematchset.html", - "Properties": { - "ByteMatchTuples": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-bytematchset.html#cfn-waf-bytematchset-bytematchtuples", - "DuplicatesAllowed": false, - "ItemType": "ByteMatchTuple", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-bytematchset.html#cfn-waf-bytematchset-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::SQS::QueuePolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html", - "Properties": { - "PolicyDocument": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html#cfn-sqs-queuepolicy-policydoc", - "PrimitiveType": "Json", - "Required": true, - "UpdateType": "Mutable" - }, - "Queues": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html#cfn-sqs-queuepolicy-queues", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::EFS::FileSystem": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html", - "Properties": { - "Encrypted": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-encrypted", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "FileSystemTags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-filesystemtags", - "DuplicatesAllowed": false, - "ItemType": "ElasticFileSystemTag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "KmsKeyId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-kmskeyid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "PerformanceMode": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-performancemode", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::WAF::SqlInjectionMatchSet": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-sqlinjectionmatchset.html", - "Properties": { - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-sqlinjectionmatchset.html#cfn-waf-sqlinjectionmatchset-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "SqlInjectionMatchTuples": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-sqlinjectionmatchset.html#cfn-waf-sqlinjectionmatchset-sqlinjectionmatchtuples", - "DuplicatesAllowed": false, - "ItemType": "SqlInjectionMatchTuple", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::DAX::Cluster": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html", - "Attributes": { - "ClusterDiscoveryEndpoint": { - "PrimitiveType": "String" - }, - "Arn": { - "PrimitiveType": "String" - } - }, - "Properties": { - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ReplicationFactor": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-replicationfactor", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "ParameterGroupName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-parametergroupname", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "AvailabilityZones": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-availabilityzones", - "UpdateType": "Mutable" - }, - "NodeType": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-nodetype", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "IAMRoleARN": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-iamrolearn", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "SubnetGroupName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-subnetgroupname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "ClusterName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-clustername", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "PreferredMaintenanceWindow": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-preferredmaintenancewindow", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "NotificationTopicARN": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-notificationtopicarn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "SecurityGroupIds": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-securitygroupids", - "UpdateType": "Mutable" - }, - "Tags": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-tags", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - } - } - }, - "AWS::ApplicationAutoScaling::ScalingPolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html", - "Properties": { - "PolicyName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-policyname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "PolicyType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-policytype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "ResourceId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-resourceid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ScalableDimension": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-scalabledimension", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ScalingTargetId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-scalingtargetid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ServiceNamespace": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-servicenamespace", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "StepScalingPolicyConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration", - "Required": false, - "Type": "StepScalingPolicyConfiguration", - "UpdateType": "Mutable" - }, - "TargetTrackingScalingPolicyConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration", - "Required": false, - "Type": "TargetTrackingScalingPolicyConfiguration", - "UpdateType": "Mutable" - } - } - }, - "AWS::CodeCommit::Repository": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codecommit-repository.html", - "Attributes": { - "CloneUrlHttp": { - "PrimitiveType": "String" - }, - "CloneUrlSsh": { - "PrimitiveType": "String" - }, - "Arn": { - "PrimitiveType": "String" - }, - "Name": { - "PrimitiveType": "String" - } - }, - "Properties": { - "RepositoryName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codecommit-repository.html#cfn-codecommit-repository-repositoryname", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Triggers": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codecommit-repository.html#cfn-codecommit-repository-triggers", - "ItemType": "RepositoryTrigger", - "UpdateType": "Conditional" - }, - "RepositoryDescription": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codecommit-repository.html#cfn-codecommit-repository-repositorydescription", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::SSM::PatchBaseline": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-patchbaseline.html", - "Properties": { - "OperatingSystem": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-patchbaseline.html#cfn-ssm-patchbaseline-operatingsystem", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "ApprovedPatches": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-patchbaseline.html#cfn-ssm-patchbaseline-approvedpatches", - "UpdateType": "Mutable" - }, - "PatchGroups": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-patchbaseline.html#cfn-ssm-patchbaseline-patchgroups", - "UpdateType": "Mutable" - }, - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-patchbaseline.html#cfn-ssm-patchbaseline-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ApprovedPatchesComplianceLevel": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-patchbaseline.html#cfn-ssm-patchbaseline-approvedpatchescompliancelevel", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ApprovedPatchesEnableNonSecurity": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-patchbaseline.html#cfn-ssm-patchbaseline-approvedpatchesenablenonsecurity", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "ApprovalRules": { - "Type": "RuleGroup", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-patchbaseline.html#cfn-ssm-patchbaseline-approvalrules", - "UpdateType": "Mutable" - }, - "GlobalFilters": { - "Type": "PatchFilterGroup", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-patchbaseline.html#cfn-ssm-patchbaseline-globalfilters", - "UpdateType": "Mutable" - }, - "Sources": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-patchbaseline.html#cfn-ssm-patchbaseline-sources", - "ItemType": "PatchSource", - "UpdateType": "Mutable" - }, - "Name": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-patchbaseline.html#cfn-ssm-patchbaseline-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "RejectedPatches": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-patchbaseline.html#cfn-ssm-patchbaseline-rejectedpatches", - "UpdateType": "Mutable" - } - } - }, - "AWS::ServiceCatalog::Portfolio": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolio.html", - "Attributes": { - "PortfolioName": { - "PrimitiveType": "String" - } - }, - "Properties": { - "ProviderName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolio.html#cfn-servicecatalog-portfolio-providername", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolio.html#cfn-servicecatalog-portfolio-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DisplayName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolio.html#cfn-servicecatalog-portfolio-displayname", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "AcceptLanguage": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolio.html#cfn-servicecatalog-portfolio-acceptlanguage", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Tags": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolio.html#cfn-servicecatalog-portfolio-tags", - "ItemType": "Tag", - "UpdateType": "Mutable" - } - } - }, - "AWS::GuardDuty::Member": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-member.html", - "Properties": { - "Status": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-member.html#cfn-guardduty-member-status", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "MemberId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-member.html#cfn-guardduty-member-memberid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Email": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-member.html#cfn-guardduty-member-email", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Message": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-member.html#cfn-guardduty-member-message", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DisableEmailNotification": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-member.html#cfn-guardduty-member-disableemailnotification", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "DetectorId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-member.html#cfn-guardduty-member-detectorid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::RDS::DBParameterGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbparametergroup.html", - "Properties": { - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbparametergroup.html#cfn-rds-dbparametergroup-description", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Family": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbparametergroup.html#cfn-rds-dbparametergroup-family", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Parameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbparametergroup.html#cfn-rds-dbparametergroup-parameters", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbparametergroup.html#cfn-rds-dbparametergroup-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::ServiceCatalog::AcceptedPortfolioShare": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-acceptedportfolioshare.html", - "Properties": { - "AcceptLanguage": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-acceptedportfolioshare.html#cfn-servicecatalog-acceptedportfolioshare-acceptlanguage", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "PortfolioId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-acceptedportfolioshare.html#cfn-servicecatalog-acceptedportfolioshare-portfolioid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::ServiceDiscovery::Service": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-service.html", - "Attributes": { - "Id": { - "PrimitiveType": "String" - }, - "Arn": { - "PrimitiveType": "String" - }, - "Name": { - "PrimitiveType": "String" - } - }, - "Properties": { - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-service.html#cfn-servicediscovery-service-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DnsConfig": { - "Type": "DnsConfig", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-service.html#cfn-servicediscovery-service-dnsconfig", - "UpdateType": "Mutable" - }, - "HealthCheckConfig": { - "Type": "HealthCheckConfig", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-service.html#cfn-servicediscovery-service-healthcheckconfig", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-service.html#cfn-servicediscovery-service-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::Logs::LogStream": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html", - "Properties": { - "LogGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html#cfn-logs-logstream-loggroupname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "LogStreamName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html#cfn-logs-logstream-logstreamname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::AutoScaling::ScalingPolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html", - "Properties": { - "AdjustmentType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html#cfn-as-scalingpolicy-adjustmenttype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "AutoScalingGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html#cfn-as-scalingpolicy-autoscalinggroupname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Cooldown": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html#cfn-as-scalingpolicy-cooldown", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "EstimatedInstanceWarmup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html#cfn-as-scalingpolicy-estimatedinstancewarmup", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "MetricAggregationType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html#cfn-as-scalingpolicy-metricaggregationtype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "MinAdjustmentMagnitude": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html#cfn-as-scalingpolicy-minadjustmentmagnitude", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "PolicyType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html#cfn-as-scalingpolicy-policytype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ScalingAdjustment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html#cfn-as-scalingpolicy-scalingadjustment", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "StepAdjustments": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html#cfn-as-scalingpolicy-stepadjustments", - "DuplicatesAllowed": false, - "ItemType": "StepAdjustment", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "TargetTrackingConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html#cfn-autoscaling-scalingpolicy-targettrackingconfiguration", - "Required": false, - "Type": "TargetTrackingConfiguration", - "UpdateType": "Mutable" - } - } - }, - "AWS::EMR::Step": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-step.html", - "Properties": { - "ActionOnFailure": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-step.html#cfn-elasticmapreduce-step-actiononfailure", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "HadoopJarStep": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-step.html#cfn-elasticmapreduce-step-hadoopjarstep", - "Required": true, - "Type": "HadoopJarStepConfig", - "UpdateType": "Immutable" - }, - "JobFlowId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-step.html#cfn-elasticmapreduce-step-jobflowid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-step.html#cfn-elasticmapreduce-step-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::Config::ConfigurationRecorder": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configurationrecorder.html", - "Properties": { - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configurationrecorder.html#cfn-config-configurationrecorder-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "RecordingGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configurationrecorder.html#cfn-config-configurationrecorder-recordinggroup", - "Required": false, - "Type": "RecordingGroup", - "UpdateType": "Mutable" - }, - "RoleARN": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configurationrecorder.html#cfn-config-configurationrecorder-rolearn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::RDS::EventSubscription": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-eventsubscription.html", - "Properties": { - "Enabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-eventsubscription.html#cfn-rds-eventsubscription-enabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "EventCategories": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-eventsubscription.html#cfn-rds-eventsubscription-eventcategories", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "SnsTopicArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-eventsubscription.html#cfn-rds-eventsubscription-snstopicarn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "SourceIds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-eventsubscription.html#cfn-rds-eventsubscription-sourceids", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "SourceType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-eventsubscription.html#cfn-rds-eventsubscription-sourcetype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Conditional" - } - } - }, - "AWS::ElasticBeanstalk::Environment": { - "Attributes": { - "EndpointURL": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html", - "Properties": { - "ApplicationName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-applicationname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "CNAMEPrefix": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-cnameprefix", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "EnvironmentName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "OptionSettings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-optionsettings", - "DuplicatesAllowed": true, - "ItemType": "OptionSetting", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "PlatformArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-platformarn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "SolutionStackName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-solutionstackname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-elasticbeanstalk-environment-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "TemplateName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-templatename", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Tier": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-tier", - "Required": false, - "Type": "Tier", - "UpdateType": "Conditional" - }, - "VersionLabel": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-versionlabel", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Lambda::Function": { - "Attributes": { - "Arn": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html", - "Properties": { - "Code": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-code", - "Required": true, - "Type": "Code", - "UpdateType": "Mutable" - }, - "DeadLetterConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-deadletterconfig", - "Required": false, - "Type": "DeadLetterConfig", - "UpdateType": "Mutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Environment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-environment", - "Required": false, - "Type": "Environment", - "UpdateType": "Mutable" - }, - "FunctionName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-functionname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Handler": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-handler", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "KmsKeyArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-kmskeyarn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "MemorySize": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-memorysize", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "ReservedConcurrentExecutions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-reservedconcurrentexecutions", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "Role": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-role", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Runtime": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Timeout": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-timeout", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "TracingConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig", - "Required": false, - "Type": "TracingConfig", - "UpdateType": "Mutable" - }, - "VpcConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-vpcconfig", - "Required": false, - "Type": "VpcConfig", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::DHCPOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcp-options.html", - "Properties": { - "DomainName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcp-options.html#cfn-ec2-dhcpoptions-domainname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "DomainNameServers": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcp-options.html#cfn-ec2-dhcpoptions-domainnameservers", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "NetbiosNameServers": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcp-options.html#cfn-ec2-dhcpoptions-netbiosnameservers", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "NetbiosNodeType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcp-options.html#cfn-ec2-dhcpoptions-netbiosnodetype", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - }, - "NtpServers": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcp-options.html#cfn-ec2-dhcpoptions-ntpservers", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcp-options.html#cfn-ec2-dhcpoptions-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::ApiGateway::UsagePlan": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html", - "Properties": { - "ApiStages": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-apistages", - "DuplicatesAllowed": false, - "ItemType": "ApiStage", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Quota": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-quota", - "Required": false, - "Type": "QuotaSettings", - "UpdateType": "Mutable" - }, - "Throttle": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-throttle", - "Required": false, - "Type": "ThrottleSettings", - "UpdateType": "Mutable" - }, - "UsagePlanName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-usageplanname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::IAM::User": { - "Attributes": { - "Arn": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html", - "Properties": { - "Groups": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-groups", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "LoginProfile": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-loginprofile", - "Required": false, - "Type": "LoginProfile", - "UpdateType": "Mutable" - }, - "ManagedPolicyArns": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-managepolicyarns", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Path": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-path", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Policies": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-policies", - "DuplicatesAllowed": true, - "ItemType": "Policy", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "UserName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-username", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::EC2::NetworkAcl": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl.html", - "Properties": { - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl.html#cfn-ec2-networkacl-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "VpcId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl.html#cfn-ec2-networkacl-vpcid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::OpsWorks::Instance": { - "Attributes": { - "AvailabilityZone": { - "PrimitiveType": "String" - }, - "PrivateDnsName": { - "PrimitiveType": "String" - }, - "PrivateIp": { - "PrimitiveType": "String" - }, - "PublicDnsName": { - "PrimitiveType": "String" - }, - "PublicIp": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html", - "Properties": { - "AgentVersion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html#cfn-opsworks-instance-agentversion", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "AmiId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html#cfn-opsworks-instance-amiid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Architecture": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html#cfn-opsworks-instance-architecture", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "AutoScalingType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html#cfn-opsworks-instance-autoscalingtype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "AvailabilityZone": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html#cfn-opsworks-instance-availabilityzone", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "BlockDeviceMappings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html#cfn-opsworks-instance-blockdevicemappings", - "DuplicatesAllowed": false, - "ItemType": "BlockDeviceMapping", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "EbsOptimized": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html#cfn-opsworks-instance-ebsoptimized", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "ElasticIps": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html#cfn-opsworks-instance-elasticips", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Hostname": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html#cfn-opsworks-instance-hostname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "InstallUpdatesOnBoot": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html#cfn-opsworks-instance-installupdatesonboot", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "InstanceType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html#cfn-opsworks-instance-instancetype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "LayerIds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html#cfn-opsworks-instance-layerids", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "Os": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html#cfn-opsworks-instance-os", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "RootDeviceType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html#cfn-opsworks-instance-rootdevicetype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "SshKeyName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html#cfn-opsworks-instance-sshkeyname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "StackId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html#cfn-opsworks-instance-stackid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "SubnetId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html#cfn-opsworks-instance-subnetid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Tenancy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html#cfn-opsworks-instance-tenancy", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "TimeBasedAutoScaling": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html#cfn-opsworks-instance-timebasedautoscaling", - "Required": false, - "Type": "TimeBasedAutoScaling", - "UpdateType": "Immutable" - }, - "VirtualizationType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html#cfn-opsworks-instance-virtualizationtype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Volumes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-instance.html#cfn-opsworks-instance-volumes", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::Config::ConfigRule": { - "Attributes": { - "Arn": { - "PrimitiveType": "String" - }, - "Compliance.Type": { - "PrimitiveType": "String" - }, - "ConfigRuleId": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configrule.html", - "Properties": { - "ConfigRuleName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configrule.html#cfn-config-configrule-configrulename", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configrule.html#cfn-config-configrule-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "InputParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configrule.html#cfn-config-configrule-inputparameters", - "PrimitiveType": "Json", - "Required": false, - "UpdateType": "Mutable" - }, - "MaximumExecutionFrequency": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configrule.html#cfn-config-configrule-maximumexecutionfrequency", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Scope": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configrule.html#cfn-config-configrule-scope", - "Required": false, - "Type": "Scope", - "UpdateType": "Mutable" - }, - "Source": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configrule.html#cfn-config-configrule-source", - "Required": true, - "Type": "Source", - "UpdateType": "Mutable" - } - } - }, - "AWS::SES::ConfigurationSet": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-configurationset.html", - "Properties": { - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-configurationset.html#cfn-ses-configurationset-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::Glue::Partition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-partition.html", - "Properties": { - "TableName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-partition.html#cfn-glue-partition-tablename", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "DatabaseName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-partition.html#cfn-glue-partition-databasename", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "CatalogId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-partition.html#cfn-glue-partition-catalogid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "PartitionInput": { - "Type": "PartitionInput", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-partition.html#cfn-glue-partition-partitioninput", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::VPNGatewayRoutePropagation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gatewayrouteprop.html", - "Properties": { - "RouteTableIds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gatewayrouteprop.html#cfn-ec2-vpngatewayrouteprop-routetableids", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "VpnGatewayId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gatewayrouteprop.html#cfn-ec2-vpngatewayrouteprop-vpngatewayid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::WAF::WebACL": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-webacl.html", - "Properties": { - "DefaultAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-webacl.html#cfn-waf-webacl-defaultaction", - "Required": true, - "Type": "WafAction", - "UpdateType": "Mutable" - }, - "MetricName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-webacl.html#cfn-waf-webacl-metricname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-webacl.html#cfn-waf-webacl-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Rules": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-webacl.html#cfn-waf-webacl-rules", - "DuplicatesAllowed": false, - "ItemType": "ActivatedRule", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Job": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html", - "Properties": { - "Role": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-role", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DefaultArguments": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-defaultarguments", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - }, - "Connections": { - "Type": "ConnectionsList", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-connections", - "UpdateType": "Mutable" - }, - "MaxRetries": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-maxretries", - "PrimitiveType": "Double", - "UpdateType": "Mutable" - }, - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "LogUri": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-loguri", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Command": { - "Type": "JobCommand", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-command", - "UpdateType": "Mutable" - }, - "AllocatedCapacity": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-allocatedcapacity", - "PrimitiveType": "Double", - "UpdateType": "Mutable" - }, - "ExecutionProperty": { - "Type": "ExecutionProperty", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-executionproperty", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::Neptune::DBCluster": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html", - "Attributes": { - "ClusterResourceId": { - "PrimitiveType": "String" - }, - "Endpoint": { - "PrimitiveType": "String" - }, - "Port": { - "PrimitiveType": "String" - }, - "ReadEndpoint": { - "PrimitiveType": "String" - } - }, - "Properties": { - "StorageEncrypted": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html#cfn-neptune-dbcluster-storageencrypted", - "PrimitiveType": "Boolean", - "UpdateType": "Immutable" - }, - "KmsKeyId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html#cfn-neptune-dbcluster-kmskeyid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "AvailabilityZones": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html#cfn-neptune-dbcluster-availabilityzones", - "UpdateType": "Immutable" - }, - "SnapshotIdentifier": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html#cfn-neptune-dbcluster-snapshotidentifier", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Port": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html#cfn-neptune-dbcluster-port", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "DBClusterIdentifier": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html#cfn-neptune-dbcluster-dbclusteridentifier", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "PreferredMaintenanceWindow": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html#cfn-neptune-dbcluster-preferredmaintenancewindow", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "IamAuthEnabled": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html#cfn-neptune-dbcluster-iamauthenabled", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "DBSubnetGroupName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html#cfn-neptune-dbcluster-dbsubnetgroupname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "PreferredBackupWindow": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html#cfn-neptune-dbcluster-preferredbackupwindow", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "VpcSecurityGroupIds": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html#cfn-neptune-dbcluster-vpcsecuritygroupids", - "UpdateType": "Mutable" - }, - "DBClusterParameterGroupName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html#cfn-neptune-dbcluster-dbclusterparametergroupname", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "BackupRetentionPeriod": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html#cfn-neptune-dbcluster-backupretentionperiod", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "Tags": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html#cfn-neptune-dbcluster-tags", - "ItemType": "Tag", - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::Bucket": { - "Attributes": { - "Arn": { - "PrimitiveType": "String" - }, - "DomainName": { - "PrimitiveType": "String" - }, - "DualStackDomainName": { - "PrimitiveType": "String" - }, - "WebsiteURL": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html", - "Properties": { - "AccelerateConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-accelerateconfiguration", - "Required": false, - "Type": "AccelerateConfiguration", - "UpdateType": "Mutable" - }, - "AccessControl": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-accesscontrol", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "AnalyticsConfigurations": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-analyticsconfigurations", - "DuplicatesAllowed": false, - "ItemType": "AnalyticsConfiguration", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "BucketEncryption": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-bucketencryption", - "Required": false, - "Type": "BucketEncryption", - "UpdateType": "Mutable" - }, - "BucketName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "CorsConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-crossoriginconfig", - "Required": false, - "Type": "CorsConfiguration", - "UpdateType": "Mutable" - }, - "InventoryConfigurations": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-inventoryconfigurations", - "DuplicatesAllowed": false, - "ItemType": "InventoryConfiguration", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "LifecycleConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-lifecycleconfig", - "Required": false, - "Type": "LifecycleConfiguration", - "UpdateType": "Mutable" - }, - "LoggingConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-loggingconfig", - "Required": false, - "Type": "LoggingConfiguration", - "UpdateType": "Mutable" - }, - "MetricsConfigurations": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-metricsconfigurations", - "DuplicatesAllowed": false, - "ItemType": "MetricsConfiguration", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "NotificationConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-notification", - "Required": false, - "Type": "NotificationConfiguration", - "UpdateType": "Mutable" - }, - "ReplicationConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-replicationconfiguration", - "Required": false, - "Type": "ReplicationConfiguration", - "UpdateType": "Mutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "VersioningConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-versioning", - "Required": false, - "Type": "VersioningConfiguration", - "UpdateType": "Mutable" - }, - "WebsiteConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-websiteconfiguration", - "Required": false, - "Type": "WebsiteConfiguration", - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudFormation::WaitConditionHandle": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitconditionhandle.html", - "Properties": {} - }, - "AWS::Lambda::Version": { - "Attributes": { - "Version": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html", - "Properties": { - "CodeSha256": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html#cfn-lambda-version-codesha256", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html#cfn-lambda-version-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "FunctionName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html#cfn-lambda-version-functionname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::ApiGateway::BasePathMapping": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html", - "Properties": { - "BasePath": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-basepath", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "DomainName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-domainname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "RestApiId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-restapiid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Stage": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-stage", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Cognito::UserPool": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html", - "Attributes": { - "ProviderName": { - "PrimitiveType": "String" - }, - "ProviderURL": { - "PrimitiveType": "String" - }, - "Arn": { - "PrimitiveType": "String" - } - }, - "Properties": { - "UserPoolTags": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-userpooltags", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - }, - "Policies": { - "Type": "Policies", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-policies", - "UpdateType": "Mutable" - }, - "MfaConfiguration": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-mfaconfiguration", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Schema": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-schema", - "ItemType": "SchemaAttribute", - "UpdateType": "Immutable" - }, - "AdminCreateUserConfig": { - "Type": "AdminCreateUserConfig", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-admincreateuserconfig", - "UpdateType": "Mutable" - }, - "SmsAuthenticationMessage": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-smsauthenticationmessage", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "UserPoolName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-userpoolname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "SmsVerificationMessage": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-smsverificationmessage", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "EmailConfiguration": { - "Type": "EmailConfiguration", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-emailconfiguration", - "UpdateType": "Mutable" - }, - "SmsConfiguration": { - "Type": "SmsConfiguration", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-smsconfiguration", - "UpdateType": "Mutable" - }, - "AliasAttributes": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-aliasattributes", - "UpdateType": "Immutable" - }, - "EmailVerificationSubject": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-emailverificationsubject", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "LambdaConfig": { - "Type": "LambdaConfig", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-lambdaconfig", - "UpdateType": "Mutable" - }, - "UsernameAttributes": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-usernameattributes", - "UpdateType": "Immutable" - }, - "AutoVerifiedAttributes": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-autoverifiedattributes", - "UpdateType": "Mutable" - }, - "DeviceConfiguration": { - "Type": "DeviceConfiguration", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-deviceconfiguration", - "UpdateType": "Mutable" - }, - "EmailVerificationMessage": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-emailverificationmessage", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::EgressOnlyInternetGateway": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-egressonlyinternetgateway.html", - "Properties": { - "VpcId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-egressonlyinternetgateway.html#cfn-ec2-egressonlyinternetgateway-vpcid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::Route53::RecordSetGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordsetgroup.html", - "Properties": { - "Comment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordsetgroup.html#cfn-route53-recordsetgroup-comment", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "HostedZoneId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordsetgroup.html#cfn-route53-recordsetgroup-hostedzoneid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "HostedZoneName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordsetgroup.html#cfn-route53-recordsetgroup-hostedzonename", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "RecordSets": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordsetgroup.html#cfn-route53-recordsetgroup-recordsets", - "DuplicatesAllowed": false, - "ItemType": "RecordSet", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisFirehose::DeliveryStream": { - "Attributes": { - "Arn": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html", - "Properties": { - "DeliveryStreamName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-deliverystreamname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "DeliveryStreamType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-deliverystreamtype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ElasticsearchDestinationConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration", - "Required": false, - "Type": "ElasticsearchDestinationConfiguration", - "UpdateType": "Mutable" - }, - "ExtendedS3DestinationConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration", - "Required": false, - "Type": "ExtendedS3DestinationConfiguration", - "UpdateType": "Mutable" - }, - "KinesisStreamSourceConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration", - "Required": false, - "Type": "KinesisStreamSourceConfiguration", - "UpdateType": "Mutable" - }, - "RedshiftDestinationConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration", - "Required": false, - "Type": "RedshiftDestinationConfiguration", - "UpdateType": "Mutable" - }, - "S3DestinationConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration", - "Required": false, - "Type": "S3DestinationConfiguration", - "UpdateType": "Mutable" - }, - "SplunkDestinationConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration", - "Required": false, - "Type": "SplunkDestinationConfiguration", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::NetworkInterfaceAttachment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface-attachment.html", - "Properties": { - "DeleteOnTermination": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface-attachment.html#cfn-ec2-network-interface-attachment-deleteonterm", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "DeviceIndex": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface-attachment.html#cfn-ec2-network-interface-attachment-deviceindex", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "InstanceId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface-attachment.html#cfn-ec2-network-interface-attachment-instanceid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "NetworkInterfaceId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface-attachment.html#cfn-ec2-network-interface-attachment-networkinterfaceid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::IAM::ManagedPolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html", - "Properties": { - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Groups": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-groups", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "ManagedPolicyName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-managedpolicyname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Path": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-ec2-dhcpoptions-path", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "PolicyDocument": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-policydocument", - "PrimitiveType": "Json", - "Required": true, - "UpdateType": "Mutable" - }, - "Roles": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-roles", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Users": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-users", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::WAFRegional::IPSet": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-ipset.html", - "Properties": { - "IPSetDescriptors": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-ipset.html#cfn-wafregional-ipset-ipsetdescriptors", - "ItemType": "IPSetDescriptor", - "UpdateType": "Mutable" - }, - "Name": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafregional-ipset.html#cfn-wafregional-ipset-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::RDS::DBInstance": { - "Attributes": { - "Endpoint.Address": { - "PrimitiveType": "String" - }, - "Endpoint.Port": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html", - "Properties": { - "AllocatedStorage": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-allocatedstorage", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "AllowMajorVersionUpgrade": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-allowmajorversionupgrade", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "AutoMinorVersionUpgrade": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-autominorversionupgrade", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Conditional" - }, - "AvailabilityZone": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-availabilityzone", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "BackupRetentionPeriod": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-backupretentionperiod", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Conditional" - }, - "CharacterSetName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-charactersetname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "CopyTagsToSnapshot": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-copytagstosnapshot", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "DBClusterIdentifier": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbclusteridentifier", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "DBInstanceClass": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbinstanceclass", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "DBInstanceIdentifier": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbinstanceidentifier", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "DBName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "DBParameterGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbparametergroupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Conditional" - }, - "DBSecurityGroups": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsecuritygroups", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "DBSnapshotIdentifier": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsnapshotidentifier", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "DBSubnetGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsubnetgroupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Domain": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-domain", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DomainIAMRoleName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-domainiamrolename", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Engine": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-engine", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "EngineVersion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-engineversion", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Conditional" - }, - "Iops": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-iops", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "KmsKeyId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-kmskeyid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "LicenseModel": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-licensemodel", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "MasterUserPassword": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-masteruserpassword", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "MasterUsername": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-masterusername", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "MonitoringInterval": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-monitoringinterval", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Conditional" - }, - "MonitoringRoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-monitoringrolearn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "MultiAZ": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-multiaz", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "OptionGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-optiongroupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Port": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-port", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "PreferredBackupWindow": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-preferredbackupwindow", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "PreferredMaintenanceWindow": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-preferredmaintenancewindow", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Conditional" - }, - "PubliclyAccessible": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-publiclyaccessible", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "SourceDBInstanceIdentifier": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-sourcedbinstanceidentifier", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "SourceRegion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-sourceregion", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "StorageEncrypted": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-storageencrypted", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "StorageType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-storagetype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Conditional" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Timezone": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-timezone", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "VPCSecurityGroups": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-vpcsecuritygroups", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::IoT::PolicyPrincipalAttachment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policyprincipalattachment.html", - "Properties": { - "PolicyName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policyprincipalattachment.html#cfn-iot-policyprincipalattachment-policyname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Principal": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policyprincipalattachment.html#cfn-iot-policyprincipalattachment-principal", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::ApplicationAutoScaling::ScalableTarget": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html", - "Properties": { - "MaxCapacity": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-maxcapacity", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - }, - "MinCapacity": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-mincapacity", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Mutable" - }, - "ResourceId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-resourceid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "RoleARN": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-rolearn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "ScalableDimension": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-scalabledimension", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "ScheduledActions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-scheduledactions", - "DuplicatesAllowed": false, - "ItemType": "ScheduledAction", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "ServiceNamespace": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-servicenamespace", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::EC2::CustomerGateway": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customer-gateway.html", - "Properties": { - "BgpAsn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customer-gateway.html#cfn-ec2-customergateway-bgpasn", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Immutable" - }, - "IpAddress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customer-gateway.html#cfn-ec2-customergateway-ipaddress", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customer-gateway.html#cfn-ec2-customergateway-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customer-gateway.html#cfn-ec2-customergateway-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::ApiGateway::Stage": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html", - "Properties": { - "CacheClusterEnabled": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclusterenabled", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "CacheClusterSize": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclustersize", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ClientCertificateId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-clientcertificateid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DeploymentId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-deploymentid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DocumentationVersion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-documentationversion", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "MethodSettings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-methodsettings", - "DuplicatesAllowed": false, - "ItemType": "MethodSetting", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "RestApiId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-restapiid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "StageName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-stagename", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Variables": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - } - } - }, - "AWS::SDB::Domain": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-simpledb.html", - "Properties": { - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-simpledb.html#cfn-sdb-domain-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Cognito::UserPoolClient": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html", - "Attributes": { - "ClientSecret": { - "PrimitiveType": "String" - }, - "Name": { - "PrimitiveType": "String" - } - }, - "Properties": { - "GenerateSecret": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-generatesecret", - "PrimitiveType": "Boolean", - "UpdateType": "Immutable" - }, - "ClientName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-clientname", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "UserPoolId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-userpoolid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "ExplicitAuthFlows": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-explicitauthflows", - "UpdateType": "Mutable" - }, - "RefreshTokenValidity": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-refreshtokenvalidity", - "PrimitiveType": "Double", - "UpdateType": "Mutable" - }, - "ReadAttributes": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-readattributes", - "UpdateType": "Mutable" - }, - "WriteAttributes": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-writeattributes", - "UpdateType": "Mutable" - } - } - }, - "AWS::ApiGateway::VpcLink": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html", - "Properties": { - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html#cfn-apigateway-vpclink-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "TargetArns": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html#cfn-apigateway-vpclink-targetarns", - "UpdateType": "Immutable" - }, - "Name": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html#cfn-apigateway-vpclink-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::TrunkInterfaceAssociation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trunkinterfaceassociation.html", - "Properties": { - "BranchInterfaceId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trunkinterfaceassociation.html#cfn-ec2-trunkinterfaceassociation-branchinterfaceid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "GREKey": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trunkinterfaceassociation.html#cfn-ec2-trunkinterfaceassociation-grekey", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - }, - "TrunkInterfaceId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trunkinterfaceassociation.html#cfn-ec2-trunkinterfaceassociation-trunkinterfaceid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "VLANId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trunkinterfaceassociation.html#cfn-ec2-trunkinterfaceassociation-vlanid", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::ECR::Repository": { - "Attributes": { - "Arn": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repository.html", - "Properties": { - "LifecyclePolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repository.html#cfn-ecr-repository-lifecyclepolicy", - "Required": false, - "Type": "LifecyclePolicy", - "UpdateType": "Mutable" - }, - "RepositoryName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repository.html#cfn-ecr-repository-repositoryname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "RepositoryPolicyText": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repository.html#cfn-ecr-repository-repositorypolicytext", - "PrimitiveType": "Json", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::ApiGateway::GatewayResponse": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html", - "Properties": { - "ResponseParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html#cfn-apigateway-gatewayresponse-responseparameters", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "ResponseTemplates": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html#cfn-apigateway-gatewayresponse-responsetemplates", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "ResponseType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html#cfn-apigateway-gatewayresponse-responsetype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "RestApiId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html#cfn-apigateway-gatewayresponse-restapiid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "StatusCode": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html#cfn-apigateway-gatewayresponse-statuscode", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Database": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-database.html", - "Properties": { - "DatabaseInput": { - "Type": "DatabaseInput", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-database.html#cfn-glue-database-databaseinput", - "UpdateType": "Mutable" - }, - "CatalogId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-database.html#cfn-glue-database-catalogid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::ApiGateway::ClientCertificate": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-clientcertificate.html", - "Properties": { - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-clientcertificate.html#cfn-apigateway-clientcertificate-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::ApiGateway::Method": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html", - "Properties": { - "ApiKeyRequired": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-apikeyrequired", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "AuthorizationType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-authorizationtype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "AuthorizerId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-authorizerid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "HttpMethod": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-httpmethod", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "Integration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-integration", - "Required": false, - "Type": "Integration", - "UpdateType": "Mutable" - }, - "MethodResponses": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-methodresponses", - "DuplicatesAllowed": false, - "ItemType": "MethodResponse", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "OperationName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-operationname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "RequestModels": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-requestmodels", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "RequestParameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-requestparameters", - "DuplicatesAllowed": false, - "PrimitiveItemType": "Boolean", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "RequestValidatorId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-requestvalidatorid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ResourceId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-resourceid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "RestApiId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-restapiid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::DMS::Endpoint": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html", - "Attributes": { - "ExternalId": { - "PrimitiveType": "String" - } - }, - "Properties": { - "KmsKeyId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-kmskeyid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Port": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-port", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "DatabaseName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-databasename", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "S3Settings": { - "Type": "S3Settings", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-s3settings", - "UpdateType": "Mutable" - }, - "EngineName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-enginename", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DynamoDbSettings": { - "Type": "DynamoDbSettings", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-dynamodbsettings", - "UpdateType": "Mutable" - }, - "Username": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-username", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "SslMode": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-sslmode", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ServerName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-servername", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ExtraConnectionAttributes": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-extraconnectionattributes", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "EndpointType": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-endpointtype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Tags": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-tags", - "ItemType": "Tag", - "UpdateType": "Immutable" - }, - "EndpointIdentifier": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-endpointidentifier", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Password": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-password", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "CertificateArn": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-certificatearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "MongoDbSettings": { - "Type": "MongoDbSettings", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-mongodbsettings", - "UpdateType": "Mutable" - } - } - }, - "AWS::SES::ReceiptRuleSet": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptruleset.html", - "Properties": { - "RuleSetName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ses-receiptruleset.html#cfn-ses-receiptruleset-rulesetname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::ServiceCatalog::LaunchNotificationConstraint": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchnotificationconstraint.html", - "Properties": { - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchnotificationconstraint.html#cfn-servicecatalog-launchnotificationconstraint-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "NotificationArns": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchnotificationconstraint.html#cfn-servicecatalog-launchnotificationconstraint-notificationarns", - "UpdateType": "Immutable" - }, - "AcceptLanguage": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchnotificationconstraint.html#cfn-servicecatalog-launchnotificationconstraint-acceptlanguage", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "PortfolioId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchnotificationconstraint.html#cfn-servicecatalog-launchnotificationconstraint-portfolioid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "ProductId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchnotificationconstraint.html#cfn-servicecatalog-launchnotificationconstraint-productid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::EC2::VolumeAttachment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volumeattachment.html", - "Properties": { - "Device": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volumeattachment.html#cfn-ec2-ebs-volumeattachment-device", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "InstanceId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volumeattachment.html#cfn-ec2-ebs-volumeattachment-instanceid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "VolumeId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volumeattachment.html#cfn-ec2-ebs-volumeattachment-volumeid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::DirectoryService::SimpleAD": { - "Attributes": { - "Alias": { - "PrimitiveType": "String" - }, - "DnsIpAddresses": { - "PrimitiveItemType": "String", - "Type": "List" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html", - "Properties": { - "CreateAlias": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html#cfn-directoryservice-simplead-createalias", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html#cfn-directoryservice-simplead-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "EnableSso": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html#cfn-directoryservice-simplead-enablesso", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html#cfn-directoryservice-simplead-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Password": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html#cfn-directoryservice-simplead-password", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "ShortName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html#cfn-directoryservice-simplead-shortname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Size": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html#cfn-directoryservice-simplead-size", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "VpcSettings": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html#cfn-directoryservice-simplead-vpcsettings", - "Required": true, - "Type": "VpcSettings", - "UpdateType": "Immutable" - } - } - }, - "AWS::EC2::Host": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-host.html", - "Properties": { - "AutoPlacement": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-host.html#cfn-ec2-host-autoplacement", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "AvailabilityZone": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-host.html#cfn-ec2-host-availabilityzone", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "InstanceType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-host.html#cfn-ec2-host-instancetype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::RDS::DBSecurityGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-security-group.html", - "Properties": { - "DBSecurityGroupIngress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-security-group.html#cfn-rds-dbsecuritygroup-dbsecuritygroupingress", - "DuplicatesAllowed": false, - "ItemType": "Ingress", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "EC2VpcId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-security-group.html#cfn-rds-dbsecuritygroup-ec2vpcid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "GroupDescription": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-security-group.html#cfn-rds-dbsecuritygroup-groupdescription", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-security-group.html#cfn-rds-dbsecuritygroup-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::ECS::TaskDefinition": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html", - "Properties": { - "ContainerDefinitions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-containerdefinitions", - "DuplicatesAllowed": false, - "ItemType": "ContainerDefinition", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "Cpu": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-cpu", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ExecutionRoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-executionrolearn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Family": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-family", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Memory": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-memory", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "NetworkMode": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-networkmode", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "PlacementConstraints": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-placementconstraints", - "DuplicatesAllowed": false, - "ItemType": "TaskDefinitionPlacementConstraint", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "RequiresCompatibilities": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-requirescompatibilities", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "TaskRoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-taskrolearn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Volumes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-volumes", - "DuplicatesAllowed": false, - "ItemType": "Volume", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::KMS::Alias": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-alias.html", - "Properties": { - "AliasName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-alias.html#cfn-kms-alias-aliasname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "TargetKeyId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-alias.html#cfn-kms-alias-targetkeyid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::Redshift::ClusterSubnetGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersubnetgroup.html", - "Properties": { - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersubnetgroup.html#cfn-redshift-clustersubnetgroup-description", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "SubnetIds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersubnetgroup.html#cfn-redshift-clustersubnetgroup-subnetids", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersubnetgroup.html#cfn-redshift-clustersubnetgroup-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::EIPAssociation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip-association.html", - "Properties": { - "AllocationId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip-association.html#cfn-ec2-eipassociation-allocationid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Conditional" - }, - "EIP": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip-association.html#cfn-ec2-eipassociation-eip", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Conditional" - }, - "InstanceId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip-association.html#cfn-ec2-eipassociation-instanceid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Conditional" - }, - "NetworkInterfaceId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip-association.html#cfn-ec2-eipassociation-networkinterfaceid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Conditional" - }, - "PrivateIpAddress": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip-association.html#cfn-ec2-eipassociation-PrivateIpAddress", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::VPNGateway": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gateway.html", - "Properties": { - "AmazonSideAsn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gateway.html#cfn-ec2-vpngateway-amazonsideasn", - "PrimitiveType": "Long", - "Required": false, - "UpdateType": "Immutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gateway.html#cfn-ec2-vpngateway-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gateway.html#cfn-ec2-vpngateway-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::ElastiCache::CacheCluster": { - "Attributes": { - "ConfigurationEndpoint.Address": { - "PrimitiveType": "String" - }, - "ConfigurationEndpoint.Port": { - "PrimitiveType": "String" - }, - "RedisEndpoint.Address": { - "PrimitiveType": "String" - }, - "RedisEndpoint.Port": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html", - "Properties": { - "AZMode": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-azmode", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Conditional" - }, - "AutoMinorVersionUpgrade": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-autominorversionupgrade", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "CacheNodeType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-cachenodetype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "CacheParameterGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-cacheparametergroupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "CacheSecurityGroupNames": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-cachesecuritygroupnames", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "CacheSubnetGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-cachesubnetgroupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "ClusterName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-clustername", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Engine": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-engine", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "EngineVersion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-engineversion", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "NotificationTopicArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-notificationtopicarn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "NumCacheNodes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-numcachenodes", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Conditional" - }, - "Port": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-port", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Immutable" - }, - "PreferredAvailabilityZone": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-preferredavailabilityzone", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Conditional" - }, - "PreferredAvailabilityZones": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-preferredavailabilityzones", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Conditional" - }, - "PreferredMaintenanceWindow": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-preferredmaintenancewindow", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "SnapshotArns": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-snapshotarns", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "SnapshotName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-snapshotname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "SnapshotRetentionLimit": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-snapshotretentionlimit", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "SnapshotWindow": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-snapshotwindow", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "VpcSecurityGroupIds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-vpcsecuritygroupids", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::IoT::ThingPrincipalAttachment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingprincipalattachment.html", - "Properties": { - "Principal": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingprincipalattachment.html#cfn-iot-thingprincipalattachment-principal", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "ThingName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingprincipalattachment.html#cfn-iot-thingprincipalattachment-thingname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::GuardDuty::Detector": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-detector.html", - "Properties": { - "Enable": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-detector.html#cfn-guardduty-detector-enable", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - } - } - }, - "AWS::ServiceDiscovery::PrivateDnsNamespace": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-privatednsnamespace.html", - "Attributes": { - "Id": { - "PrimitiveType": "String" - }, - "Arn": { - "PrimitiveType": "String" - } - }, - "Properties": { - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-privatednsnamespace.html#cfn-servicediscovery-privatednsnamespace-description", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Vpc": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-privatednsnamespace.html#cfn-servicediscovery-privatednsnamespace-vpc", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Name": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-privatednsnamespace.html#cfn-servicediscovery-privatednsnamespace-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::ElasticBeanstalk::ApplicationVersion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-version.html", - "Properties": { - "ApplicationName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-version.html#cfn-elasticbeanstalk-applicationversion-applicationname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-version.html#cfn-elasticbeanstalk-applicationversion-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "SourceBundle": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-version.html#cfn-elasticbeanstalk-applicationversion-sourcebundle", - "Required": true, - "Type": "SourceBundle", - "UpdateType": "Immutable" - } - } - }, - "AWS::EC2::VPCEndpoint": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html", - "Properties": { - "PolicyDocument": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html#cfn-ec2-vpcendpoint-policydocument", - "PrimitiveType": "Json", - "Required": false, - "UpdateType": "Mutable" - }, - "RouteTableIds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html#cfn-ec2-vpcendpoint-routetableids", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "ServiceName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html#cfn-ec2-vpcendpoint-servicename", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "VpcId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html#cfn-ec2-vpcendpoint-vpcid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::Glue::DevEndpoint": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html", - "Properties": { - "ExtraJarsS3Path": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-extrajarss3path", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "EndpointName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-endpointname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "PublicKey": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-publickey", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "NumberOfNodes": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-numberofnodes", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "SubnetId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-subnetid", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ExtraPythonLibsS3Path": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-extrapythonlibss3path", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "SecurityGroupIds": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-securitygroupids", - "UpdateType": "Mutable" - }, - "RoleArn": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-rolearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::OpsWorks::UserProfile": { - "Attributes": { - "SshUsername": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-userprofile.html", - "Properties": { - "AllowSelfManagement": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-userprofile.html#cfn-opsworks-userprofile-allowselfmanagement", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Mutable" - }, - "IamUserArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-userprofile.html#cfn-opsworks-userprofile-iamuserarn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "SshPublicKey": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-userprofile.html#cfn-opsworks-userprofile-sshpublickey", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "SshUsername": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-userprofile.html#cfn-opsworks-userprofile-sshusername", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::ElasticLoadBalancingV2::TargetGroup": { - "Attributes": { - "LoadBalancerArns": { - "PrimitiveItemType": "String", - "Type": "List" - }, - "TargetGroupFullName": { - "PrimitiveType": "String" - }, - "TargetGroupName": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html", - "Properties": { - "HealthCheckIntervalSeconds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-healthcheckintervalseconds", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "HealthCheckPath": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-healthcheckpath", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "HealthCheckPort": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-healthcheckport", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "HealthCheckProtocol": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-healthcheckprotocol", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "HealthCheckTimeoutSeconds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-healthchecktimeoutseconds", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "HealthyThresholdCount": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-healthythresholdcount", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "Matcher": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-matcher", - "Required": false, - "Type": "Matcher", - "UpdateType": "Mutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Port": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-port", - "PrimitiveType": "Integer", - "Required": true, - "UpdateType": "Immutable" - }, - "Protocol": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-protocol", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "TargetGroupAttributes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-targetgroupattributes", - "DuplicatesAllowed": false, - "ItemType": "TargetGroupAttribute", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "TargetType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-targettype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Targets": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-targets", - "DuplicatesAllowed": false, - "ItemType": "TargetDescription", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "UnhealthyThresholdCount": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-unhealthythresholdcount", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "VpcId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-vpcid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::Neptune::DBSubnetGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbsubnetgroup.html", - "Properties": { - "DBSubnetGroupName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbsubnetgroup.html#cfn-neptune-dbsubnetgroup-dbsubnetgroupname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "DBSubnetGroupDescription": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbsubnetgroup.html#cfn-neptune-dbsubnetgroup-dbsubnetgroupdescription", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "SubnetIds": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbsubnetgroup.html#cfn-neptune-dbsubnetgroup-subnetids", - "UpdateType": "Mutable" - }, - "Tags": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbsubnetgroup.html#cfn-neptune-dbsubnetgroup-tags", - "ItemType": "Tag", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::VPCGatewayAttachment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html", - "Properties": { - "InternetGatewayId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html#cfn-ec2-vpcgatewayattachment-internetgatewayid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "VpcId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html#cfn-ec2-vpcgatewayattachment-vpcid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "VpnGatewayId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html#cfn-ec2-vpcgatewayattachment-vpngatewayid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::VPNConnection": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection.html", - "Properties": { - "CustomerGatewayId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection.html#cfn-ec2-vpnconnection-customergatewayid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "StaticRoutesOnly": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection.html#cfn-ec2-vpnconnection-StaticRoutesOnly", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection.html#cfn-ec2-vpnconnection-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Type": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection.html#cfn-ec2-vpnconnection-type", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "VpnGatewayId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection.html#cfn-ec2-vpnconnection-vpngatewayid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "VpnTunnelOptionsSpecifications": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection.html#cfn-ec2-vpnconnection-vpntunneloptionsspecifications", - "DuplicatesAllowed": false, - "ItemType": "VpnTunnelOptionsSpecification", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - } - } - }, - "AWS::Glue::Trigger": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html", - "Properties": { - "Type": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html#cfn-glue-trigger-type", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html#cfn-glue-trigger-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Actions": { - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html#cfn-glue-trigger-actions", - "ItemType": "Action", - "UpdateType": "Mutable" - }, - "Schedule": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html#cfn-glue-trigger-schedule", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html#cfn-glue-trigger-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Predicate": { - "Type": "Predicate", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html#cfn-glue-trigger-predicate", - "UpdateType": "Mutable" - } - } - }, - "AWS::EC2::VPCCidrBlock": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html", - "Properties": { - "AmazonProvidedIpv6CidrBlock": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html#cfn-ec2-vpccidrblock-amazonprovidedipv6cidrblock", - "PrimitiveType": "Boolean", - "Required": false, - "UpdateType": "Immutable" - }, - "CidrBlock": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html#cfn-ec2-vpccidrblock-cidrblock", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "VpcId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html#cfn-ec2-vpccidrblock-vpcid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::SSM::Parameter": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-parameter.html", - "Attributes": { - "Type": { - "PrimitiveType": "String" - }, - "Value": { - "PrimitiveType": "String" - } - }, - "Properties": { - "Type": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-parameter.html#cfn-ssm-parameter-type", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-parameter.html#cfn-ssm-parameter-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "AllowedPattern": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-parameter.html#cfn-ssm-parameter-allowedpattern", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Value": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-parameter.html#cfn-ssm-parameter-value", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-parameter.html#cfn-ssm-parameter-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::Inspector::AssessmentTemplate": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html", - "Attributes": { - "Arn": { - "PrimitiveType": "String" - } - }, - "Properties": { - "AssessmentTargetArn": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html#cfn-inspector-assessmenttemplate-assessmenttargetarn", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "DurationInSeconds": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html#cfn-inspector-assessmenttemplate-durationinseconds", - "PrimitiveType": "Integer", - "UpdateType": "Immutable" - }, - "AssessmentTemplateName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html#cfn-inspector-assessmenttemplate-assessmenttemplatename", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "RulesPackageArns": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html#cfn-inspector-assessmenttemplate-rulespackagearns", - "UpdateType": "Immutable" - }, - "UserAttributesForFindings": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html#cfn-inspector-assessmenttemplate-userattributesforfindings", - "ItemType": "Tag", - "UpdateType": "Immutable" - } - } - }, - "AWS::Logs::SubscriptionFilter": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html", - "Properties": { - "DestinationArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-destinationarn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "FilterPattern": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-filterpattern", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "LogGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-loggroupname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "RoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-rolearn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-applicationreferencedatasource.html", - "Properties": { - "ApplicationName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-applicationreferencedatasource.html#cfn-kinesisanalytics-applicationreferencedatasource-applicationname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "ReferenceDataSource": { - "Type": "ReferenceDataSource", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-applicationreferencedatasource.html#cfn-kinesisanalytics-applicationreferencedatasource-referencedatasource", - "UpdateType": "Mutable" - } - } - }, - "AWS::KinesisAnalytics::Application": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-application.html", - "Properties": { - "ApplicationName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-application.html#cfn-kinesisanalytics-application-applicationname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Inputs": { - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-application.html#cfn-kinesisanalytics-application-inputs", - "ItemType": "Input", - "UpdateType": "Mutable" - }, - "ApplicationDescription": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-application.html#cfn-kinesisanalytics-application-applicationdescription", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ApplicationCode": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-application.html#cfn-kinesisanalytics-application-applicationcode", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::Logs::Destination": { - "Attributes": { - "Arn": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html", - "Properties": { - "DestinationName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html#cfn-logs-destination-destinationname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "DestinationPolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html#cfn-logs-destination-destinationpolicy", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "RoleArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html#cfn-logs-destination-rolearn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "TargetArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html#cfn-logs-destination-targetarn", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::DynamoDB::Table": { - "Attributes": { - "Arn": { - "PrimitiveType": "String" - }, - "StreamArn": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html", - "Properties": { - "AttributeDefinitions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-attributedef", - "DuplicatesAllowed": true, - "ItemType": "AttributeDefinition", - "Required": false, - "Type": "List", - "UpdateType": "Conditional" - }, - "GlobalSecondaryIndexes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-gsi", - "DuplicatesAllowed": true, - "ItemType": "GlobalSecondaryIndex", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "KeySchema": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-keyschema", - "DuplicatesAllowed": false, - "ItemType": "KeySchema", - "Required": true, - "Type": "List", - "UpdateType": "Immutable" - }, - "LocalSecondaryIndexes": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-lsi", - "DuplicatesAllowed": true, - "ItemType": "LocalSecondaryIndex", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - }, - "PointInTimeRecoverySpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-pointintimerecoveryspecification", - "Required": false, - "Type": "PointInTimeRecoverySpecification", - "UpdateType": "Mutable" - }, - "ProvisionedThroughput": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-provisionedthroughput", - "Required": true, - "Type": "ProvisionedThroughput", - "UpdateType": "Mutable" - }, - "SSESpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-ssespecification", - "Required": false, - "Type": "SSESpecification", - "UpdateType": "Conditional" - }, - "StreamSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-streamspecification", - "Required": false, - "Type": "StreamSpecification", - "UpdateType": "Mutable" - }, - "TableName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-tablename", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "TimeToLiveSpecification": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-timetolivespecification", - "Required": false, - "Type": "TimeToLiveSpecification", - "UpdateType": "Mutable" - } - } - }, - "AWS::Redshift::ClusterSecurityGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersecuritygroup.html", - "Properties": { - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersecuritygroup.html#cfn-redshift-clustersecuritygroup-description", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-clustersecuritygroup.html#cfn-redshift-clustersecuritygroup-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::WAF::XssMatchSet": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-xssmatchset.html", - "Properties": { - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-xssmatchset.html#cfn-waf-xssmatchset-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "XssMatchTuples": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-xssmatchset.html#cfn-waf-xssmatchset-xssmatchtuples", - "DuplicatesAllowed": false, - "ItemType": "XssMatchTuple", - "Required": true, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::Route53::HealthCheck": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-healthcheck.html", - "Properties": { - "HealthCheckConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-healthcheck.html#cfn-route53-healthcheck-healthcheckconfig", - "Required": true, - "Type": "HealthCheckConfig", - "UpdateType": "Mutable" - }, - "HealthCheckTags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-healthcheck.html#cfn-route53-healthcheck-healthchecktags", - "DuplicatesAllowed": true, - "ItemType": "HealthCheckTag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::Lambda::Permission": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html", - "Properties": { - "Action": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html#cfn-lambda-permission-action", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "EventSourceToken": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html#cfn-lambda-permission-eventsourcetoken", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "FunctionName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html#cfn-lambda-permission-functionname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Principal": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html#cfn-lambda-permission-principal", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "SourceAccount": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html#cfn-lambda-permission-sourceaccount", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "SourceArn": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html#cfn-lambda-permission-sourcearn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - } - } - }, - "AWS::GuardDuty::IPSet": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-ipset.html", - "Properties": { - "Format": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-ipset.html#cfn-guardduty-ipset-format", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Activate": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-ipset.html#cfn-guardduty-ipset-activate", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "DetectorId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-ipset.html#cfn-guardduty-ipset-detectorid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-ipset.html#cfn-guardduty-ipset-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Location": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-ipset.html#cfn-guardduty-ipset-location", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::IoT::Certificate": { - "Attributes": { - "Arn": { - "PrimitiveType": "String" - } - }, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-certificate.html", - "Properties": { - "CertificateSigningRequest": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-certificate.html#cfn-iot-certificate-certificatesigningrequest", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Status": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-certificate.html#cfn-iot-certificate-status", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::SSM::Association": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-association.html", - "Properties": { - "AssociationName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-association.html#cfn-ssm-association-associationname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DocumentVersion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-association.html#cfn-ssm-association-documentversion", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "InstanceId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-association.html#cfn-ssm-association-instanceid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-association.html#cfn-ssm-association-name", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "OutputLocation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-association.html#cfn-ssm-association-outputlocation", - "Required": false, - "Type": "InstanceAssociationOutputLocation", - "UpdateType": "Mutable" - }, - "Parameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-association.html#cfn-ssm-association-parameters", - "DuplicatesAllowed": false, - "ItemType": "ParameterValues", - "Required": false, - "Type": "Map", - "UpdateType": "Mutable" - }, - "ScheduleExpression": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-association.html#cfn-ssm-association-scheduleexpression", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Targets": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-association.html#cfn-ssm-association-targets", - "DuplicatesAllowed": false, - "ItemType": "Target", - "Required": false, - "Type": "List", - "UpdateType": "Immutable" - } - } - }, - "AWS::RDS::DBClusterParameterGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbclusterparametergroup.html", - "Properties": { - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbclusterparametergroup.html#cfn-rds-dbclusterparametergroup-description", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Family": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbclusterparametergroup.html#cfn-rds-dbclusterparametergroup-family", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "Parameters": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbclusterparametergroup.html#cfn-rds-dbclusterparametergroup-parameters", - "PrimitiveType": "Json", - "Required": true, - "UpdateType": "Mutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbclusterparametergroup.html#cfn-rds-dbclusterparametergroup-tags", - "DuplicatesAllowed": true, - "ItemType": "Tag", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::Neptune::DBInstance": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbinstance.html", - "Attributes": { - "Endpoint": { - "PrimitiveType": "String" - }, - "Port": { - "PrimitiveType": "String" - } - }, - "Properties": { - "DBParameterGroupName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbinstance.html#cfn-neptune-dbinstance-dbparametergroupname", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DBInstanceClass": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbinstance.html#cfn-neptune-dbinstance-dbinstanceclass", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "AllowMajorVersionUpgrade": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbinstance.html#cfn-neptune-dbinstance-allowmajorversionupgrade", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "DBClusterIdentifier": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbinstance.html#cfn-neptune-dbinstance-dbclusteridentifier", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "AvailabilityZone": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbinstance.html#cfn-neptune-dbinstance-availabilityzone", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "PreferredMaintenanceWindow": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbinstance.html#cfn-neptune-dbinstance-preferredmaintenancewindow", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "AutoMinorVersionUpgrade": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbinstance.html#cfn-neptune-dbinstance-autominorversionupgrade", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "DBSubnetGroupName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbinstance.html#cfn-neptune-dbinstance-dbsubnetgroupname", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "DBInstanceIdentifier": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbinstance.html#cfn-neptune-dbinstance-dbinstanceidentifier", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "DBSnapshotIdentifier": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbinstance.html#cfn-neptune-dbinstance-dbsnapshotidentifier", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Tags": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbinstance.html#cfn-neptune-dbinstance-tags", - "ItemType": "Tag", - "UpdateType": "Mutable" - } - } - }, - "AWS::Athena::NamedQuery": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-namedquery.html", - "Properties": { - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-namedquery.html#cfn-athena-namedquery-description", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "QueryString": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-namedquery.html#cfn-athena-namedquery-querystring", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Database": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-namedquery.html#cfn-athena-namedquery-database", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-namedquery.html#cfn-athena-namedquery-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::GuardDuty::Master": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-master.html", - "Properties": { - "DetectorId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-master.html#cfn-guardduty-master-detectorid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "MasterId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-master.html#cfn-guardduty-master-masterid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "InvitationId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-master.html#cfn-guardduty-master-invitationid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::Inspector::AssessmentTarget": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttarget.html", - "Attributes": { - "Arn": { - "PrimitiveType": "String" - } - }, - "Properties": { - "AssessmentTargetName": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttarget.html#cfn-inspector-assessmenttarget-assessmenttargetname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "ResourceGroupArn": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttarget.html#cfn-inspector-assessmenttarget-resourcegrouparn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - } - } - }, - "AWS::S3::BucketPolicy": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html", - "Properties": { - "Bucket": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html#aws-properties-s3-policy-bucket", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "PolicyDocument": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html#aws-properties-s3-policy-policydocument", - "PrimitiveType": "Json", - "Required": true, - "UpdateType": "Mutable" - } - } - }, - "AWS::AutoScaling::AutoScalingGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html", - "Properties": { - "AutoScalingGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-autoscaling-autoscalinggroup-autoscalinggroupname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "AvailabilityZones": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-availabilityzones", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "Cooldown": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-cooldown", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DesiredCapacity": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-desiredcapacity", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "HealthCheckGracePeriod": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-healthcheckgraceperiod", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "HealthCheckType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-healthchecktype", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "InstanceId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-instanceid", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "LaunchConfigurationName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-launchconfigurationname", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "LifecycleHookSpecificationList": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-autoscaling-autoscalinggroup-lifecyclehookspecificationlist", - "DuplicatesAllowed": true, - "ItemType": "LifecycleHookSpecification", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "LoadBalancerNames": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-loadbalancernames", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "MaxSize": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-maxsize", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "MetricsCollection": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-metricscollection", - "DuplicatesAllowed": true, - "ItemType": "MetricsCollection", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "MinSize": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-minsize", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "NotificationConfigurations": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-notificationconfigurations", - "DuplicatesAllowed": true, - "ItemType": "NotificationConfiguration", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "PlacementGroup": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-placementgroup", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "ServiceLinkedRoleARN": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-autoscaling-autoscalinggroup-servicelinkedrolearn", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-tags", - "DuplicatesAllowed": true, - "ItemType": "TagProperty", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "TargetGroupARNs": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-targetgrouparns", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "TerminationPolicies": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-termpolicy", - "DuplicatesAllowed": false, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - }, - "VPCZoneIdentifier": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-vpczoneidentifier", - "DuplicatesAllowed": true, - "PrimitiveItemType": "String", - "Required": false, - "Type": "List", - "UpdateType": "Mutable" - } - } - }, - "AWS::CloudFormation::CustomResource": { - "AdditionalProperties": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html", - "Properties": { - "ServiceToken": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html#cfn-customresource-servicetoken", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::Glue::Crawler": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html", - "Properties": { - "Role": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-role", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Classifiers": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-classifiers", - "UpdateType": "Mutable" - }, - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "SchemaChangePolicy": { - "Type": "SchemaChangePolicy", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-schemachangepolicy", - "UpdateType": "Mutable" - }, - "Schedule": { - "Type": "Schedule", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-schedule", - "UpdateType": "Mutable" - }, - "DatabaseName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-databasename", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Targets": { - "Type": "Targets", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-targets", - "UpdateType": "Mutable" - }, - "TablePrefix": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-tableprefix", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::ApiGateway::DocumentationVersion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationversion.html", - "Properties": { - "Description": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationversion.html#cfn-apigateway-documentationversion-description", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "DocumentationVersion": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationversion.html#cfn-apigateway-documentationversion-documentationversion", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "RestApiId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationversion.html#cfn-apigateway-documentationversion-restapiid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::EC2::VPCDHCPOptionsAssociation": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-dhcp-options-assoc.html", - "Properties": { - "DhcpOptionsId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-dhcp-options-assoc.html#cfn-ec2-vpcdhcpoptionsassociation-dhcpoptionsid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Mutable" - }, - "VpcId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-dhcp-options-assoc.html#cfn-ec2-vpcdhcpoptionsassociation-vpcid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::SSM::MaintenanceWindowTask": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html", - "Properties": { - "MaxErrors": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-maxerrors", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-description", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ServiceRoleArn": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-servicerolearn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Priority": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-priority", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "MaxConcurrency": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-maxconcurrency", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "Targets": { - "Type": "List", - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-targets", - "ItemType": "Target", - "UpdateType": "Mutable" - }, - "Name": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-name", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "TaskArn": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-taskarn", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "TaskInvocationParameters": { - "Type": "TaskInvocationParameters", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-taskinvocationparameters", - "UpdateType": "Mutable" - }, - "WindowId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-windowid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "TaskParameters": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-taskparameters", - "PrimitiveType": "Json", - "UpdateType": "Mutable" - }, - "TaskType": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-tasktype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "LoggingInfo": { - "Type": "LoggingInfo", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-logginginfo", - "UpdateType": "Mutable" - } - } - }, - "AWS::DMS::ReplicationTask": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html", - "Properties": { - "ReplicationTaskSettings": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-replicationtasksettings", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "TableMappings": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-tablemappings", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "ReplicationTaskIdentifier": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-replicationtaskidentifier", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "SourceEndpointArn": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-sourceendpointarn", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "MigrationType": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-migrationtype", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "TargetEndpointArn": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-targetendpointarn", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "ReplicationInstanceArn": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-replicationinstancearn", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Tags": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-tags", - "ItemType": "Tag", - "UpdateType": "Immutable" - }, - "CdcStartTime": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-cdcstarttime", - "PrimitiveType": "Double", - "UpdateType": "Mutable" - } - } - }, - "AWS::ServiceDiscovery::PublicDnsNamespace": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-publicdnsnamespace.html", - "Attributes": { - "Id": { - "PrimitiveType": "String" - }, - "Arn": { - "PrimitiveType": "String" - } - }, - "Properties": { - "Description": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-publicdnsnamespace.html#cfn-servicediscovery-publicdnsnamespace-description", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Name": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-publicdnsnamespace.html#cfn-servicediscovery-publicdnsnamespace-name", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::ApiGateway::UsagePlanKey": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html", - "Properties": { - "KeyId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html#cfn-apigateway-usageplankey-keyid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "KeyType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html#cfn-apigateway-usageplankey-keytype", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "UsagePlanId": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html#cfn-apigateway-usageplankey-usageplanid", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::EMR::SecurityConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-securityconfiguration.html", - "Properties": { - "Name": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-securityconfiguration.html#cfn-emr-securityconfiguration-name", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Immutable" - }, - "SecurityConfiguration": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-securityconfiguration.html#cfn-emr-securityconfiguration-securityconfiguration", - "PrimitiveType": "Json", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::Cognito::UserPoolUserToGroupAttachment": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolusertogroupattachment.html", - "Properties": { - "GroupName": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolusertogroupattachment.html#cfn-cognito-userpoolusertogroupattachment-groupname", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "UserPoolId": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolusertogroupattachment.html#cfn-cognito-userpoolusertogroupattachment-userpoolid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Username": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolusertogroupattachment.html#cfn-cognito-userpoolusertogroupattachment-username", - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::DMS::ReplicationInstance": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html", - "Attributes": { - "ReplicationInstancePublicIpAddresses": { - "PrimitiveItemType": "String", - "Type": "List" - }, - "ReplicationInstancePrivateIpAddresses": { - "PrimitiveItemType": "String", - "Type": "List" - } - }, - "Properties": { - "ReplicationInstanceIdentifier": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-replicationinstanceidentifier", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "EngineVersion": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-engineversion", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "KmsKeyId": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-kmskeyid", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "AvailabilityZone": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-availabilityzone", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "PreferredMaintenanceWindow": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-preferredmaintenancewindow", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "AutoMinorVersionUpgrade": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-autominorversionupgrade", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "ReplicationSubnetGroupIdentifier": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-replicationsubnetgroupidentifier", - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "AllocatedStorage": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-allocatedstorage", - "PrimitiveType": "Integer", - "UpdateType": "Mutable" - }, - "VpcSecurityGroupIds": { - "PrimitiveItemType": "String", - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-vpcsecuritygroupids", - "UpdateType": "Mutable" - }, - "AllowMajorVersionUpgrade": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-allowmajorversionupgrade", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "ReplicationInstanceClass": { - "Required": true, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-replicationinstanceclass", - "PrimitiveType": "String", - "UpdateType": "Mutable" - }, - "PubliclyAccessible": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-publiclyaccessible", - "PrimitiveType": "Boolean", - "UpdateType": "Immutable" - }, - "MultiAZ": { - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-multiaz", - "PrimitiveType": "Boolean", - "UpdateType": "Mutable" - }, - "Tags": { - "Type": "List", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-tags", - "ItemType": "Tag", - "UpdateType": "Immutable" - } - } - }, - "AWS::AutoScaling::ScheduledAction": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-scheduledaction.html", - "Properties": { - "AutoScalingGroupName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-scheduledaction.html#cfn-as-scheduledaction-asgname", - "PrimitiveType": "String", - "Required": true, - "UpdateType": "Immutable" - }, - "DesiredCapacity": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-scheduledaction.html#cfn-as-scheduledaction-desiredcapacity", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "EndTime": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-scheduledaction.html#cfn-as-scheduledaction-endtime", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "MaxSize": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-scheduledaction.html#cfn-as-scheduledaction-maxsize", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "MinSize": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-scheduledaction.html#cfn-as-scheduledaction-minsize", - "PrimitiveType": "Integer", - "Required": false, - "UpdateType": "Mutable" - }, - "Recurrence": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-scheduledaction.html#cfn-as-scheduledaction-recurrence", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - }, - "StartTime": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-scheduledaction.html#cfn-as-scheduledaction-starttime", - "PrimitiveType": "String", - "Required": false, - "UpdateType": "Mutable" - } - } - }, - "AWS::Glue::Classifier": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-classifier.html", - "Properties": { - "GrokClassifier": { - "Type": "GrokClassifier", - "Required": false, - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-classifier.html#cfn-glue-classifier-grokclassifier", - "UpdateType": "Mutable" - } - } - } - }, - "ResourceSpecificationVersion": "2.4.0" -} \ No newline at end of file diff --git a/packages/@aws-cdk/resources/cloudformation-specs/000_sam.spec.json b/packages/@aws-cdk/resources/cloudformation-specs/000_sam.spec.json deleted file mode 100644 index 4be38f97e5407..0000000000000 --- a/packages/@aws-cdk/resources/cloudformation-specs/000_sam.spec.json +++ /dev/null @@ -1,520 +0,0 @@ -{ - "ResourceSpecificationVersion": "2016-10-31", - "ResourceSpecificationTransform": "AWS::Serverless-2016-10-31", - "ResourceTypes": { - "AWS::Serverless::Function": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Properties": { - "Handler": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Required": true, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Runtime": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Required": true, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "CodeUri": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Required": true, - "PrimitiveTypes": [ "String" ], - "Types": [ "S3Location" ], - "UpdateType": "Immutable" - }, - "FunctionName": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Required": false, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Description": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Required": false, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "MemorySize": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Required": false, - "PrimitiveType": "Integer", - "UpdateType": "Immutable" - }, - "Timeout": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Required": false, - "PrimitiveType": "Integer", - "UpdateType": "Immutable" - }, - "Role": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Required": false, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Policies": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Required": false, - "PrimitiveTypes": [ "String" ], - "PrimitiveItemTypes": [ "String" ], - "Types": [ "IAMPolicyDocument" ] , - "ItemTypes": [ "IAMPolicyDocument" ], - "UpdateType": "Immutable" - }, - "Environment": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Required": false, - "Type": "FunctionEnvironment", - "UpdateType": "Immutable" - }, - "VpcConfig": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Required": false, - "Type": "VpcConfig", - "UpdateType": "Immutable" - }, - "Events": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Required": false, - "Type": "Map", - "ItemType": "EventSource", - "UpdateType": "Immutable" - }, - "Tags": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Required": false, - "Type": "Map", - "PrimitiveItemType": "String", - "UpdateType": "Immutable" - }, - "Tracing": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Required": false, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "KmsKeyArn": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Required": false, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "DeadLetterQueue": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Required": false, - "Type": "DeadLetterQueue", - "UpdateType": "Immutable" - } - } - }, - "AWS::Serverless::Api": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi", - "Properties": { - "Name": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi", - "Required": false, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "StageName": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi", - "Required": true, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "DefinitionUri": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi", - "Required": false, - "PrimitiveTypes": [ "String" ], - "Types": [ "S3Location" ], - "UpdateType": "Immutable" - }, - "DefinitionBody": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi", - "Required": false, - "PrimitiveType": "Json", - "UpdateType": "Immutable" - }, - "CacheClusterEnabled": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi", - "Required": false, - "PrimitiveType": "Boolean", - "UpdateType": "Immutable" - }, - "CacheClusterSize": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi", - "Required": false, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Variables" :{ - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi", - "Required": false, - "Type": "Map", - "PrimitiveItemType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::Serverless::SimpleTable": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesssimpletable", - "Properties": { - "PrimaryKey": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#primary-key-object", - "Required": false, - "Type": "PrimaryKey", - "UpdateType": "Immutable" - }, - "ProvisionedThroughput": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html", - "Required": false, - "Type": "ProvisionedThroughput", - "UpdateType": "Immutable" - } - } - } - }, - "PropertyTypes": { - "AWS::Serverless::Function.S3Location": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3-location-object", - "Properties": { - "Bucket": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Required": true, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Key": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Required": true, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Version": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Required": true, - "PrimitiveType": "Integer", - "UpdateType": "Immutable" - } - } - }, - "AWS::Serverless::Function.EventSource": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#event-source-object", - "Properties": { - "Type": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#event-source-object", - "Required": true, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Properties": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#event-source-types", - "Required": true, - "Types": [ "S3Event", "SNSEvent", "KinesisEvent", "DynamoDBEvent", "ApiEvent", "ScheduleEvent", "CloudWatchEventEvent", "IoTRuleEvent", "AlexaSkillEvent" ], - "UpdateType": "Immutable" - } - } - }, - "AWS::Serverless::Function.S3Event": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3", - "Properties": { - "Bucket": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3", - "Required": true, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Events": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3", - "Required": true, - "PrimitiveTypes": [ "String" ], - "PrimitiveItemTypes": [ "String" ] - }, - "Filter": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3", - "Required": false, - "Type": "S3NotificationFilter", - "UpdateType": "Immutable" - } - } - }, - "AWS::Serverless::Function.S3NotificationFilter": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html", - "Properties": { - "S3Key": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html", - "Required": true, - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::Serverless::Function.SNSEvent": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#sns", - "Properties": { - "Topic": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#sns", - "Required": true, - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::Serverless::Function.KinesisEvent": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#kinesis", - "Properties": { - "Stream": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#kinesis", - "Required": true, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "StartingPosition": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#kinesis", - "Required": true, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "BatchSize": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#kinesis", - "Required": false, - "PrimitiveType": "Integer", - "UpdateType": "Immutable" - } - } - }, - "AWS::Serverless::Function.DynamoDBEvent": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb", - "Properties": { - "Stream": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb", - "Required": true, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "StartingPosition": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb", - "Required": true, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "BatchSize": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb", - "Required": true, - "PrimitiveType": "Integer", - "UpdateType": "Immutable" - } - } - }, - "AWS::Serverless::Function.ApiEvent": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api", - "Properties": { - "Path": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api", - "Required": true, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Method": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api", - "Required": true, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "RestApiId": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api", - "Required": false, - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::Serverless::Function.ScheduleEvent": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#schedule", - "Properties": { - "Schedule": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#schedule", - "Required": true, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Input": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#schedule", - "Required": false, - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::Serverless::Function.CloudWatchEventEvent": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cloudwatchevent", - "Properties": { - "Pattern": { - "Documentation": "http://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html", - "Required": true, - "PrimitiveType": "Json", - "UpdateType": "Immutable" - }, - "Input": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cloudwatchevent", - "Required": false, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "InputPath": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cloudwatchevent", - "Required": false, - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::Serverless::Function.IoTRuleEvent": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#iotrule", - "Properties": { - "Sql": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#iotrule", - "Required": true, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "AwsIotSqlVersion": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#iotrule", - "Required": false, - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::Serverless::Function.AlexaSkillEvent": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#alexaskill", - "Properties": { - "Variables": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#alexaskill", - "Required": false, - "Type": "Map", - "PrimitiveItemType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::Serverless::Function.VpcConfig": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html", - "Properties": { - "SecurityGroupIds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html", - "Required": true, - "Type": "List", - "PrimitiveItemType": "String", - "UpdateType": "Immutable" - }, - "SubnetIds": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html", - "Required": true, - "Type": "List", - "PrimitiveItemType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::Serverless::Function.IAMPolicyDocument": { - "Documentation": "http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html", - "Properties": { - "Statement": { - "Documentation": "http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html", - "PrimitiveType": "Json", - "Required": true, - "UpdateType": "Immutable" - } - } - }, - "AWS::Serverless::Function.FunctionEnvironment": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#environment-object", - "Properties": { - "Variables": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#environment-object", - "Required": true, - "Type": "Map", - "PrimitiveItemType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::Serverless::Function.DeadLetterQueue": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deadletterqueue-object", - "Properties": { - "Type": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Required": true, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "TargetArn": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Required": true, - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::Serverless::Api.S3Location": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3-location-object", - "Properties": { - "Bucket": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Required": true, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Key": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Required": true, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Version": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction", - "Required": true, - "PrimitiveType": "Integer", - "UpdateType": "Immutable" - } - } - }, - "AWS::Serverless::SimpleTable.PrimaryKey": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#primary-key-object", - "Properties": { - "Name": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#primary-key-object", - "Required": false, - "PrimitiveType": "String", - "UpdateType": "Immutable" - }, - "Type": { - "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#primary-key-object", - "Required": true, - "PrimitiveType": "String", - "UpdateType": "Immutable" - } - } - }, - "AWS::Serverless::SimpleTable.ProvisionedThroughput": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html", - "Properties": { - "ReadCapacityUnits": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html", - "Required": false, - "PrimitiveType": "Integer", - "UpdateType": "Immutable" - }, - "WriteCapacityUnits": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html", - "Required": true, - "PrimitiveType": "Integer", - "UpdateType": "Immutable" - } - } - } - } -} diff --git a/packages/@aws-cdk/resources/cloudformation-specs/500_Cognity_IdentityPoolRoleAttachment_patches.json b/packages/@aws-cdk/resources/cloudformation-specs/500_Cognity_IdentityPoolRoleAttachment_patches.json deleted file mode 100644 index e15929ba48422..0000000000000 --- a/packages/@aws-cdk/resources/cloudformation-specs/500_Cognity_IdentityPoolRoleAttachment_patches.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "ResourceTypes": { - "AWS::Cognito::IdentityPoolRoleAttachment": { - "patch": { - "description": "make the use of RoleMappings more type safe", - "operations": [ - { "op": "remove", "path": "/Properties/RoleMappings/PrimitiveType" }, - { "op": "add", "path": "/Properties/RoleMappings/Type", "value": "Map" }, - { "op": "add", "path": "/Properties/RoleMappings/ItemType", "value": "RoleMapping" } - ] - } - } - } -} diff --git a/packages/@aws-cdk/resources/cloudformation-specs/500_SAM_Serverless_Function_S3Location_Version_patch.json b/packages/@aws-cdk/resources/cloudformation-specs/500_SAM_Serverless_Function_S3Location_Version_patch.json deleted file mode 100644 index 91b5528525e7d..0000000000000 --- a/packages/@aws-cdk/resources/cloudformation-specs/500_SAM_Serverless_Function_S3Location_Version_patch.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "PropertyTypes": { - "AWS::Serverless::Function.S3Location": { - "patch": { - "description": "Sets AWS::Serverless::Function.S3Location#Version.Required to false, per ttps://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3-location-object", - "operations": [ - { "op": "replace", "path": "/Properties/Version/Required", "value": false } - ] - } - } - } -} diff --git a/packages/@aws-cdk/resources/cloudformation-specs/500_SSM_AssociationName_patch.json b/packages/@aws-cdk/resources/cloudformation-specs/500_SSM_AssociationName_patch.json deleted file mode 100644 index 1b827870e9e47..0000000000000 --- a/packages/@aws-cdk/resources/cloudformation-specs/500_SSM_AssociationName_patch.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "ResourceTypes": { - "AWS::SSM::Association": { - "patch": { - "description": "rename +Name+ to +DocumentName+ to clearly indicate what the attribute is for", - "operations": [ - { "op": "move", "from": "/Properties/Name", "path": "/Properties/DocumentName" } - ] - } - } - } -} diff --git a/packages/@aws-cdk/resources/cloudformation-specs/500_SSM_AssociationName_patch.md b/packages/@aws-cdk/resources/cloudformation-specs/500_SSM_AssociationName_patch.md deleted file mode 100644 index 9c311b0dbe502..0000000000000 --- a/packages/@aws-cdk/resources/cloudformation-specs/500_SSM_AssociationName_patch.md +++ /dev/null @@ -1,9 +0,0 @@ -We discovered that SSM::Assocations have an AssociationName and a Name parameter, which introduced a conflict. - -Apart from that we have to resolve the conflict, the original heuristics were even wrong: - -- Name is NOT the name of the resource to be created, it's the name of the SSM document to associate with. -- AssociationName IS the name of the resource to be created, that's fine, it's the name that we would have -picked for that attribute anyway. - -We rename "Name" to "DocumentName" to clearly indicate what the Name attribute is for. diff --git a/packages/@aws-cdk/resources/cloudformation-specs/510_ElasticSearch_Domain_patches.json b/packages/@aws-cdk/resources/cloudformation-specs/510_ElasticSearch_Domain_patches.json deleted file mode 100644 index edd59114bafab..0000000000000 --- a/packages/@aws-cdk/resources/cloudformation-specs/510_ElasticSearch_Domain_patches.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "ResourceTypes": { - "AWS::Elasticsearch::Domain": { - "patch": { - "description": "remove the deprecated attribute DomainArn, as the new preferred attribute Arn maps to the same name in the generated code", - "operations": [ - { "op": "remove", "path": "/Attributes/DomainArn" } - ] - } - } - } -} diff --git a/packages/@aws-cdk/resources/package-lock.json b/packages/@aws-cdk/resources/package-lock.json deleted file mode 100644 index bc9dc47932369..0000000000000 --- a/packages/@aws-cdk/resources/package-lock.json +++ /dev/null @@ -1,3344 +0,0 @@ -{ - "requires": true, - "lockfileVersion": 1, - "dependencies": { - "@types/nodeunit": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/nodeunit/-/nodeunit-0.0.30.tgz", - "integrity": "sha1-SNLCcZoRjHcjuDMGw+gAsRor9ng=" - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "1.0.3" - } - }, - "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" - }, - "aws4": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", - "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==" - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "bind-obj-methods": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/bind-obj-methods/-/bind-obj-methods-1.0.0.tgz", - "integrity": "sha1-T1l5ysFXk633DkiBYeRj4gnKUJw=" - }, - "bluebird": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "requires": { - "hoek": "2.16.3" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" - }, - "caseless": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "clean-yaml-object": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", - "integrity": "sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=" - }, - "color-convert": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" - }, - "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "requires": { - "delayed-stream": "1.0.0" - } - }, - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "coveralls": { - "version": "2.13.3", - "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-2.13.3.tgz", - "integrity": "sha512-iiAmn+l1XqRwNLXhW8Rs5qHZRFMYp9ZIPjEOVRpC/c4so6Y/f4/lFi0FfR5B9cCqgyhkJ5cZmbvcVRfP8MHchw==", - "requires": { - "js-yaml": "3.6.1", - "lcov-parse": "0.0.10", - "log-driver": "1.2.5", - "minimist": "1.2.0", - "request": "2.79.0" - }, - "dependencies": { - "js-yaml": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz", - "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=", - "requires": { - "argparse": "1.0.10", - "esprima": "2.7.3" - } - } - } - }, - "cross-spawn": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", - "requires": { - "lru-cache": "4.1.3", - "which": "1.3.1" - } - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "requires": { - "boom": "2.10.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, - "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" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "diff": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", - "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=" - }, - "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "ejs": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz", - "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=" - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" - }, - "events-to-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz", - "integrity": "sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y=" - }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "foreground-child": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", - "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.18" - } - }, - "fs-exists-cached": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz", - "integrity": "sha1-zyVVTKBQ3EmuZla0HeQiWJidy84=" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "function-loop": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/function-loop/-/function-loop-1.0.1.tgz", - "integrity": "sha1-gHa7MF6OajzO7ikgdl8zDRkPNAw=" - }, - "generate-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", - "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=" - }, - "generate-object-property": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", - "requires": { - "is-property": "1.0.2" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "har-validator": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", - "requires": { - "chalk": "1.1.3", - "commander": "2.15.1", - "is-my-json-valid": "2.17.2", - "pinkie-promise": "2.0.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "2.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.14.1" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "is-my-ip-valid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", - "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==" - }, - "is-my-json-valid": { - "version": "2.17.2", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz", - "integrity": "sha512-IBhBslgngMQN8DDSppmgDv7RNrlFotuuDsKcrCP3+HbFaVivIBU7u9oiiErw8sH4ynx3+gOGQ3q2otkgiSi6kg==", - "requires": { - "generate-function": "2.0.0", - "generate-object-property": "1.2.0", - "is-my-ip-valid": "1.0.0", - "jsonpointer": "4.0.1", - "xtend": "4.0.1" - } - }, - "is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "js-yaml": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", - "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", - "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" - }, - "dependencies": { - "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==" - } - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "jsonpointer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=" - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, - "lcov-parse": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", - "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=" - }, - "log-driver": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", - "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=" - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, - "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" - }, - "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "requires": { - "mime-db": "1.33.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "nodeunit": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/nodeunit/-/nodeunit-0.11.2.tgz", - "integrity": "sha512-rlr0Fgd66nLmWwgVFj40TZp5jo47/YqaPQtoHG78mt+DVQhaLhA8EJJYCf2lozgYplPv+jJMLt8bCP34zo05mQ==", - "requires": { - "ejs": "2.6.1", - "tap": "10.7.3" - } - }, - "nyc": { - "version": "11.8.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.8.0.tgz", - "integrity": "sha512-PUFq1PSsx5OinSk5g5aaZygcDdI3QQT5XUlbR9QRMihtMS6w0Gm8xj4BxmKeeAlpQXC5M2DIhH16Y+KejceivQ==", - "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.10.1", - "istanbul-lib-report": "1.1.3", - "istanbul-lib-source-maps": "1.2.3", - "istanbul-reports": "1.4.0", - "md5-hex": "1.3.0", - "merge-source-map": "1.1.0", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.2.1", - "yargs": "11.1.0", - "yargs-parser": "8.1.0" - }, - "dependencies": { - "align-text": { - "version": "0.1.4", - "bundled": true, - "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" - } - }, - "amdefine": { - "version": "1.0.1", - "bundled": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "ansi-styles": { - "version": "2.2.1", - "bundled": true - }, - "append-transform": { - "version": "0.4.0", - "bundled": true, - "requires": { - "default-require-extensions": "1.0.0" - } - }, - "archy": { - "version": "1.0.0", - "bundled": true - }, - "arr-diff": { - "version": "4.0.0", - "bundled": true - }, - "arr-flatten": { - "version": "1.1.0", - "bundled": true - }, - "arr-union": { - "version": "3.1.0", - "bundled": true - }, - "array-unique": { - "version": "0.3.2", - "bundled": true - }, - "arrify": { - "version": "1.0.1", - "bundled": true - }, - "assign-symbols": { - "version": "1.0.0", - "bundled": true - }, - "async": { - "version": "1.5.2", - "bundled": true - }, - "atob": { - "version": "2.1.1", - "bundled": true - }, - "babel-code-frame": { - "version": "6.26.0", - "bundled": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "babel-generator": { - "version": "6.26.1", - "bundled": true, - "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" - } - }, - "babel-messages": { - "version": "6.23.0", - "bundled": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-runtime": { - "version": "6.26.0", - "bundled": true, - "requires": { - "core-js": "2.5.6", - "regenerator-runtime": "0.11.1" - } - }, - "babel-template": { - "version": "6.26.0", - "bundled": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.10" - } - }, - "babel-traverse": { - "version": "6.26.0", - "bundled": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.10" - } - }, - "babel-types": { - "version": "6.26.0", - "bundled": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "bundled": true - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true - }, - "base": { - "version": "0.11.2", - "bundled": true, - "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "bundled": true - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "bundled": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "builtin-modules": { - "version": "1.1.1", - "bundled": true - }, - "cache-base": { - "version": "1.0.1", - "bundled": true, - "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "bundled": true - } - } - }, - "caching-transform": { - "version": "1.0.1", - "bundled": true, - "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" - } - }, - "camelcase": { - "version": "1.2.1", - "bundled": true, - "optional": true - }, - "center-align": { - "version": "0.1.3", - "bundled": true, - "optional": true, - "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" - } - }, - "chalk": { - "version": "1.1.3", - "bundled": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "class-utils": { - "version": "0.3.6", - "bundled": true, - "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "isobject": { - "version": "3.0.1", - "bundled": true - } - } - }, - "cliui": { - "version": "2.1.0", - "bundled": true, - "optional": true, - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "bundled": true, - "optional": true - } - } - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true - }, - "collection-visit": { - "version": "1.0.0", - "bundled": true, - "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" - } - }, - "commondir": { - "version": "1.0.1", - "bundled": true - }, - "component-emitter": { - "version": "1.2.1", - "bundled": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "convert-source-map": { - "version": "1.5.1", - "bundled": true - }, - "copy-descriptor": { - "version": "0.1.1", - "bundled": true - }, - "core-js": { - "version": "2.5.6", - "bundled": true - }, - "cross-spawn": { - "version": "4.0.2", - "bundled": true, - "requires": { - "lru-cache": "4.1.3", - "which": "1.3.0" - } - }, - "debug": { - "version": "2.6.9", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "debug-log": { - "version": "1.0.1", - "bundled": true - }, - "decamelize": { - "version": "1.2.0", - "bundled": true - }, - "decode-uri-component": { - "version": "0.2.0", - "bundled": true - }, - "default-require-extensions": { - "version": "1.0.0", - "bundled": true, - "requires": { - "strip-bom": "2.0.0" - } - }, - "define-property": { - "version": "2.0.2", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "bundled": true - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "detect-indent": { - "version": "4.0.0", - "bundled": true, - "requires": { - "repeating": "2.0.1" - } - }, - "error-ex": { - "version": "1.3.1", - "bundled": true, - "requires": { - "is-arrayish": "0.2.1" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "bundled": true - }, - "esutils": { - "version": "2.0.2", - "bundled": true - }, - "execa": { - "version": "0.7.0", - "bundled": true, - "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "bundled": true, - "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.0" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "bundled": true, - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "bundled": true, - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "bundled": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "bundled": true, - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "fill-range": { - "version": "4.0.0", - "bundled": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "find-cache-dir": { - "version": "0.1.1", - "bundled": true, - "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "bundled": true, - "requires": { - "locate-path": "2.0.0" - } - }, - "for-in": { - "version": "1.0.2", - "bundled": true - }, - "foreground-child": { - "version": "1.5.6", - "bundled": true, - "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" - } - }, - "fragment-cache": { - "version": "0.2.1", - "bundled": true, - "requires": { - "map-cache": "0.2.2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true - }, - "get-caller-file": { - "version": "1.0.2", - "bundled": true - }, - "get-stream": { - "version": "3.0.0", - "bundled": true - }, - "get-value": { - "version": "2.0.6", - "bundled": true - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "globals": { - "version": "9.18.0", - "bundled": true - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true - }, - "handlebars": { - "version": "4.0.11", - "bundled": true, - "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "bundled": true, - "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "has-ansi": { - "version": "2.0.0", - "bundled": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "has-flag": { - "version": "1.0.0", - "bundled": true - }, - "has-value": { - "version": "1.0.0", - "bundled": true, - "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "bundled": true - } - } - }, - "has-values": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "bundled": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "bundled": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "hosted-git-info": { - "version": "2.6.0", - "bundled": true - }, - "imurmurhash": { - "version": "0.1.4", - "bundled": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "invariant": { - "version": "2.2.4", - "bundled": true, - "requires": { - "loose-envify": "1.3.1" - } - }, - "invert-kv": { - "version": "1.0.0", - "bundled": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-arrayish": { - "version": "0.2.1", - "bundled": true - }, - "is-buffer": { - "version": "1.1.6", - "bundled": true - }, - "is-builtin-module": { - "version": "1.0.0", - "bundled": true, - "requires": { - "builtin-modules": "1.1.1" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "bundled": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "bundled": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "bundled": true - }, - "is-finite": { - "version": "1.0.2", - "bundled": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true - }, - "is-number": { - "version": "3.0.0", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-odd": { - "version": "2.0.0", - "bundled": true, - "requires": { - "is-number": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "bundled": true - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "bundled": true, - "requires": { - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "bundled": true - } - } - }, - "is-stream": { - "version": "1.1.0", - "bundled": true - }, - "is-utf8": { - "version": "0.2.1", - "bundled": true - }, - "is-windows": { - "version": "1.0.2", - "bundled": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true - }, - "isobject": { - "version": "3.0.1", - "bundled": true - }, - "istanbul-lib-coverage": { - "version": "1.2.0", - "bundled": true - }, - "istanbul-lib-hook": { - "version": "1.1.0", - "bundled": true, - "requires": { - "append-transform": "0.4.0" - } - }, - "istanbul-lib-instrument": { - "version": "1.10.1", - "bundled": true, - "requires": { - "babel-generator": "6.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.2.0", - "semver": "5.5.0" - } - }, - "istanbul-lib-report": { - "version": "1.1.3", - "bundled": true, - "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" - }, - "dependencies": { - "supports-color": { - "version": "3.2.3", - "bundled": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "1.2.3", - "bundled": true, - "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "istanbul-reports": { - "version": "1.4.0", - "bundled": true, - "requires": { - "handlebars": "4.0.11" - } - }, - "js-tokens": { - "version": "3.0.2", - "bundled": true - }, - "jsesc": { - "version": "1.3.0", - "bundled": true - }, - "kind-of": { - "version": "3.2.2", - "bundled": true, - "requires": { - "is-buffer": "1.1.6" - } - }, - "lazy-cache": { - "version": "1.0.4", - "bundled": true, - "optional": true - }, - "lcid": { - "version": "1.0.0", - "bundled": true, - "requires": { - "invert-kv": "1.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "bundled": true - } - } - }, - "lodash": { - "version": "4.17.10", - "bundled": true - }, - "longest": { - "version": "1.0.1", - "bundled": true - }, - "loose-envify": { - "version": "1.3.1", - "bundled": true, - "requires": { - "js-tokens": "3.0.2" - } - }, - "lru-cache": { - "version": "4.1.3", - "bundled": true, - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, - "map-cache": { - "version": "0.2.2", - "bundled": true - }, - "map-visit": { - "version": "1.0.0", - "bundled": true, - "requires": { - "object-visit": "1.0.1" - } - }, - "md5-hex": { - "version": "1.3.0", - "bundled": true, - "requires": { - "md5-o-matic": "0.1.1" - } - }, - "md5-o-matic": { - "version": "0.1.1", - "bundled": true - }, - "mem": { - "version": "1.1.0", - "bundled": true, - "requires": { - "mimic-fn": "1.2.0" - } - }, - "merge-source-map": { - "version": "1.1.0", - "bundled": true, - "requires": { - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true - } - } - }, - "micromatch": { - "version": "3.1.10", - "bundled": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "mimic-fn": { - "version": "1.2.0", - "bundled": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true - }, - "mixin-deep": { - "version": "1.3.1", - "bundled": true, - "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "bundled": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true - }, - "nanomatch": { - "version": "1.2.9", - "bundled": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "bundled": true - }, - "array-unique": { - "version": "0.3.2", - "bundled": true - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "normalize-package-data": { - "version": "2.4.0", - "bundled": true, - "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" - } - }, - "npm-run-path": { - "version": "2.0.2", - "bundled": true, - "requires": { - "path-key": "2.0.1" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true - }, - "object-copy": { - "version": "0.1.0", - "bundled": true, - "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "bundled": true, - "requires": { - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "bundled": true - } - } - }, - "object.pick": { - "version": "1.3.0", - "bundled": true, - "requires": { - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "bundled": true - } - } - }, - "once": { - "version": "1.4.0", - "bundled": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "optimist": { - "version": "0.6.1", - "bundled": true, - "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true - }, - "os-locale": { - "version": "2.1.0", - "bundled": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "bundled": true - }, - "p-limit": { - "version": "1.2.0", - "bundled": true, - "requires": { - "p-try": "1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-limit": "1.2.0" - } - }, - "p-try": { - "version": "1.0.0", - "bundled": true - }, - "parse-json": { - "version": "2.2.0", - "bundled": true, - "requires": { - "error-ex": "1.3.1" - } - }, - "pascalcase": { - "version": "0.1.1", - "bundled": true - }, - "path-exists": { - "version": "2.1.0", - "bundled": true, - "requires": { - "pinkie-promise": "2.0.1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true - }, - "path-key": { - "version": "2.0.1", - "bundled": true - }, - "path-parse": { - "version": "1.0.5", - "bundled": true - }, - "path-type": { - "version": "1.1.0", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - }, - "pify": { - "version": "2.3.0", - "bundled": true - }, - "pinkie": { - "version": "2.0.4", - "bundled": true - }, - "pinkie-promise": { - "version": "2.0.1", - "bundled": true, - "requires": { - "pinkie": "2.0.4" - } - }, - "pkg-dir": { - "version": "1.0.0", - "bundled": true, - "requires": { - "find-up": "1.1.2" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "bundled": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "bundled": true - }, - "pseudomap": { - "version": "1.0.2", - "bundled": true - }, - "read-pkg": { - "version": "1.1.0", - "bundled": true, - "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "bundled": true, - "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "bundled": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - } - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "bundled": true - }, - "regex-not": { - "version": "1.0.2", - "bundled": true, - "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" - } - }, - "repeat-element": { - "version": "1.1.2", - "bundled": true - }, - "repeat-string": { - "version": "1.6.1", - "bundled": true - }, - "repeating": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-finite": "1.0.2" - } - }, - "require-directory": { - "version": "2.1.1", - "bundled": true - }, - "require-main-filename": { - "version": "1.0.1", - "bundled": true - }, - "resolve-from": { - "version": "2.0.0", - "bundled": true - }, - "resolve-url": { - "version": "0.2.1", - "bundled": true - }, - "ret": { - "version": "0.1.15", - "bundled": true - }, - "right-align": { - "version": "0.1.3", - "bundled": true, - "optional": true, - "requires": { - "align-text": "0.1.4" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-regex": { - "version": "1.1.0", - "bundled": true, - "requires": { - "ret": "0.1.15" - } - }, - "semver": { - "version": "5.5.0", - "bundled": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true - }, - "set-value": { - "version": "2.0.0", - "bundled": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "bundled": true, - "requires": { - "shebang-regex": "1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "bundled": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true - }, - "slide": { - "version": "1.1.6", - "bundled": true - }, - "snapdragon": { - "version": "0.8.2", - "bundled": true, - "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.1", - "use": "3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "bundled": true, - "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "bundled": true - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "source-map": { - "version": "0.5.7", - "bundled": true - }, - "source-map-resolve": { - "version": "0.5.1", - "bundled": true, - "requires": { - "atob": "2.1.1", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "bundled": true - }, - "spawn-wrap": { - "version": "1.4.2", - "bundled": true, - "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.0" - } - }, - "spdx-correct": { - "version": "3.0.0", - "bundled": true, - "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "bundled": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "bundled": true, - "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "bundled": true - }, - "split-string": { - "version": "3.1.0", - "bundled": true, - "requires": { - "extend-shallow": "3.0.2" - } - }, - "static-extend": { - "version": "0.1.2", - "bundled": true, - "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "string-width": { - "version": "2.1.1", - "bundled": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "bundled": true - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-bom": { - "version": "2.0.0", - "bundled": true, - "requires": { - "is-utf8": "0.2.1" - } - }, - "strip-eof": { - "version": "1.0.0", - "bundled": true - }, - "supports-color": { - "version": "2.0.0", - "bundled": true - }, - "test-exclude": { - "version": "4.2.1", - "bundled": true, - "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "bundled": true - }, - "array-unique": { - "version": "0.3.2", - "bundled": true - }, - "braces": { - "version": "2.3.2", - "bundled": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "bundled": true, - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "bundled": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "bundled": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "bundled": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "bundled": true - } - } - }, - "extglob": { - "version": "2.0.4", - "bundled": true, - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "bundled": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "is-number": { - "version": "3.0.0", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "bundled": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "bundled": true - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - }, - "micromatch": { - "version": "3.1.10", - "bundled": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - } - } - }, - "to-fast-properties": { - "version": "1.0.3", - "bundled": true - }, - "to-object-path": { - "version": "0.3.0", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "to-regex": { - "version": "3.0.2", - "bundled": true, - "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "bundled": true, - "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - } - } - }, - "trim-right": { - "version": "1.0.1", - "bundled": true - }, - "uglify-js": { - "version": "2.8.29", - "bundled": true, - "optional": true, - "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - }, - "dependencies": { - "yargs": { - "version": "3.10.0", - "bundled": true, - "optional": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "union-value": { - "version": "1.0.0", - "bundled": true, - "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "set-value": { - "version": "0.4.3", - "bundled": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" - } - } - } - }, - "unset-value": { - "version": "1.0.0", - "bundled": true, - "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "bundled": true, - "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "bundled": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "bundled": true - }, - "isobject": { - "version": "3.0.1", - "bundled": true - } - } - }, - "urix": { - "version": "0.1.0", - "bundled": true - }, - "use": { - "version": "3.1.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "validate-npm-package-license": { - "version": "3.0.3", - "bundled": true, - "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" - } - }, - "which": { - "version": "1.3.0", - "bundled": true, - "requires": { - "isexe": "2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "bundled": true - }, - "window-size": { - "version": "0.1.0", - "bundled": true, - "optional": true - }, - "wordwrap": { - "version": "0.0.3", - "bundled": true - }, - "wrap-ansi": { - "version": "2.1.0", - "bundled": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true - }, - "write-file-atomic": { - "version": "1.3.4", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" - } - }, - "y18n": { - "version": "3.2.1", - "bundled": true - }, - "yallist": { - "version": "2.1.2", - "bundled": true - }, - "yargs": { - "version": "11.1.0", - "bundled": true, - "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "9.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "bundled": true - }, - "camelcase": { - "version": "4.1.0", - "bundled": true - }, - "cliui": { - "version": "4.1.0", - "bundled": true, - "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "requires": { - "ansi-regex": "3.0.0" - } - }, - "yargs-parser": { - "version": "9.0.2", - "bundled": true, - "requires": { - "camelcase": "4.1.0" - } - } - } - }, - "yargs-parser": { - "version": "8.1.0", - "bundled": true, - "requires": { - "camelcase": "4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "bundled": true - } - } - } - } - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1.0.2" - } - }, - "opener": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.4.3.tgz", - "integrity": "sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=" - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "own-or": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/own-or/-/own-or-1.0.0.tgz", - "integrity": "sha1-Tod/vtqaLsgAD7wLyuOWRe6L+Nw=" - }, - "own-or-env": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/own-or-env/-/own-or-env-1.0.1.tgz", - "integrity": "sha512-y8qULRbRAlL6x2+M0vIe7jJbJx/kmUTzYonRAa2ayesR2qWLswninkVyeJe4x3IEXhdgoNodzjQRKAoEs6Fmrw==", - "requires": { - "own-or": "1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "2.0.4" - } - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "qs": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", - "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=" - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "request": { - "version": "2.79.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", - "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.7.0", - "caseless": "0.11.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "2.0.6", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.18", - "oauth-sign": "0.8.2", - "qs": "6.3.2", - "stringstream": "0.0.6", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.4.3", - "uuid": "3.2.1" - } - }, - "resolve": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", - "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", - "requires": { - "path-parse": "1.0.5" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "requires": { - "hoek": "2.16.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "sshpk": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz", - "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", - "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, - "stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "stringstream": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", - "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==" - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "2.1.1" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - }, - "tap": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/tap/-/tap-10.7.3.tgz", - "integrity": "sha512-oS/FIq+tcmxVgYn5usKtLsX+sOHNEj+G7JIQE9SBjO5mVYB1rbaEJJiDbnYp8k0ZqY2Pe4HbYEpkvzm9jfLDyw==", - "requires": { - "bind-obj-methods": "1.0.0", - "bluebird": "3.5.1", - "clean-yaml-object": "0.1.0", - "color-support": "1.1.3", - "coveralls": "2.13.3", - "foreground-child": "1.5.6", - "fs-exists-cached": "1.0.0", - "function-loop": "1.0.1", - "glob": "7.1.2", - "isexe": "2.0.0", - "js-yaml": "3.11.0", - "nyc": "11.8.0", - "opener": "1.4.3", - "os-homedir": "1.0.2", - "own-or": "1.0.0", - "own-or-env": "1.0.1", - "readable-stream": "2.3.6", - "signal-exit": "3.0.2", - "source-map-support": "0.4.18", - "stack-utils": "1.0.1", - "tap-mocha-reporter": "3.0.7", - "tap-parser": "5.4.0", - "tmatch": "3.1.0", - "trivial-deferred": "1.0.1", - "tsame": "1.1.2", - "yapool": "1.0.0" - }, - "dependencies": { - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "requires": { - "source-map": "0.5.7" - } - } - } - }, - "tap-mocha-reporter": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/tap-mocha-reporter/-/tap-mocha-reporter-3.0.7.tgz", - "integrity": "sha512-GHVXJ38C3oPRpM3YUc43JlGdpVZYiKeT1fmAd3HH2+J+ZWwsNAUFvRRdoGsXLw9+gU9o+zXpBqhS/oXyRQYwlA==", - "requires": { - "color-support": "1.1.3", - "debug": "2.6.9", - "diff": "1.4.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "js-yaml": "3.11.0", - "readable-stream": "2.3.6", - "tap-parser": "5.4.0", - "unicode-length": "1.0.3" - } - }, - "tap-parser": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-5.4.0.tgz", - "integrity": "sha512-BIsIaGqv7uTQgTW1KLTMNPSEQf4zDDPgYOBRdgOfuB+JFOLRBfEu6cLa/KvMvmqggu1FKXDfitjLwsq4827RvA==", - "requires": { - "events-to-array": "1.1.2", - "js-yaml": "3.11.0", - "readable-stream": "2.3.6" - } - }, - "tmatch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/tmatch/-/tmatch-3.1.0.tgz", - "integrity": "sha512-W3MSATOCN4pVu2qFxmJLIArSifeSOFqnfx9hiUaVgOmeRoI2NbU7RNga+6G+L8ojlFeQge+ZPCclWyUpQ8UeNQ==" - }, - "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "requires": { - "punycode": "1.4.1" - } - }, - "trivial-deferred": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trivial-deferred/-/trivial-deferred-1.0.1.tgz", - "integrity": "sha1-N21NKdlR1jaKb3oK6FwvTV4GWPM=" - }, - "tsame": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/tsame/-/tsame-1.1.2.tgz", - "integrity": "sha512-ovCs24PGjmByVPr9tSIOs/yjUX9sJl0grEmOsj9dZA/UknQkgPOKcUqM84aSCvt9awHuhc/boMzTg3BHFalxWw==" - }, - "tslib": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.1.tgz", - "integrity": "sha512-avfPS28HmGLLc2o4elcc2EIq2FcH++Yo5YxpBZi9Yw93BCTGFthI4HPE4Rpep6vSYQaK8e69PelM44tPj+RaQg==" - }, - "tslint": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.10.0.tgz", - "integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=", - "requires": { - "babel-code-frame": "6.26.0", - "builtin-modules": "1.1.1", - "chalk": "2.4.1", - "commander": "2.15.1", - "diff": "3.5.0", - "glob": "7.1.2", - "js-yaml": "3.11.0", - "minimatch": "3.0.4", - "resolve": "1.7.1", - "semver": "5.5.0", - "tslib": "1.9.1", - "tsutils": "2.27.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" - } - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "tsutils": { - "version": "2.27.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.27.1.tgz", - "integrity": "sha512-AE/7uzp32MmaHvNNFES85hhUDHFdFZp6OAiZcd6y4ZKKIg6orJTm8keYWBhIhrJQH3a4LzNKat7ZPXZt5aTf6w==", - "requires": { - "tslib": "1.9.1" - } - }, - "tunnel-agent": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=" - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true - }, - "unicode-length": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/unicode-length/-/unicode-length-1.0.3.tgz", - "integrity": "sha1-Wtp6f+1RhBpBijKM8UlHisg1irs=", - "requires": { - "punycode": "1.4.1", - "strip-ansi": "3.0.1" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "uuid": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", - "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "1.3.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "2.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "yapool": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yapool/-/yapool-1.0.0.tgz", - "integrity": "sha1-9pPymjFbUNmp2iZGp6ZkXJaYW2o=" - } - } -} diff --git a/packages/@aws-cdk/resources/test/test.generated-code.ts b/packages/@aws-cdk/resources/test/test.generated-code.ts deleted file mode 100644 index ef4e59b8e42f0..0000000000000 --- a/packages/@aws-cdk/resources/test/test.generated-code.ts +++ /dev/null @@ -1,318 +0,0 @@ -// Tests some properties of the generated code -import { Stack, Token } from '@aws-cdk/core'; -import { Test } from 'nodeunit'; -import { elasticloadbalancing, serverless } from '../lib'; - -export = { - 'missing properties in resource are reported at construction time'(test: Test) { - const stack = new Stack(); - - // Bypass TypeScript's checking with a type assertion - test.throws( - () => { - new elasticloadbalancing.LoadBalancerResource(stack, 'LB', {} as elasticloadbalancing.LoadBalancerResourceProps); - }, - /missing required property: listeners/ - ); - - test.done(); - }, - - 'missing properties in property type reported at synthesis time'(test: Test) { - const stack = new Stack(); - - const lb = new elasticloadbalancing.LoadBalancerResource(stack, 'LB', { - // Bypass TypeScript's checking with a type assertion - listeners: [{ - instancePort: '80' - } as elasticloadbalancing.LoadBalancerResource.ListenersProperty] - }); - - test.throws( - () => { - lb.toCloudFormation(); - }, - /loadBalancerPort/ - ) -; - test.done(); - }, - - 'properties of invalid primitive type are reported'(test: Test) { - const stack = new Stack(); - - const lb = new elasticloadbalancing.LoadBalancerResource(stack, 'LB', { - // Bypass TypeScript's checking with a type assertion - listeners: [{ - instancePort: 80 as any, - loadBalancerPort: '8080', - protocol: 'HTTP', - }] - }); - - test.throws( - () => { - lb.toCloudFormation(); - }, - /80 should be a string/ - ); - - test.done(); - }, - - 'scalar unions: primitive'(test: Test) { - const stack = new Stack(); - - const strUri = new serverless.FunctionResource(stack, 'LB', { - handler: 'handler', - runtime: 'runtime', - codeUri: 'uri', - }); - - test.deepEqual(deepRemoveEmpty(strUri.toCloudFormation()), { - Resources: { - [strUri.logicalId]: { - Type: 'AWS::Serverless::Function', - Properties: { - Handler: 'handler', - Runtime: 'runtime', - CodeUri: 'uri' - } - } - } - }); - - test.done(); - }, - - 'scalar unions: complex'(test: Test) { - const stack = new Stack(); - - const s3Uri = new serverless.FunctionResource(stack, 'LB', { - handler: 'handler', - runtime: 'runtime', - codeUri: { - bucket: 'bucket', - key: 'key', - version: 1 - } - }); - - test.deepEqual(deepRemoveEmpty(s3Uri.toCloudFormation()), { - Resources: { - [s3Uri.logicalId]: { - Type: 'AWS::Serverless::Function', - Properties: { - Handler: 'handler', - Runtime: 'runtime', - CodeUri: { - Bucket: 'bucket', - Key: 'key', - Version: 1 - } - } - } - } - }); - - test.done(); - }, - - 'scalar unions: neither'(test: Test) { - const stack = new Stack(); - - const brokenPrimitiveUri = new serverless.FunctionResource(stack, 'Fn', { - handler: 'handler', - runtime: 'runtime', - codeUri: 3 as any - }); - - test.throws( - () => { - brokenPrimitiveUri.toCloudFormation(); - }, - /not one of the possible types/ - ); - - test.done(); - }, - - 'both lists and scalars accepted: list'(test: Test) { - const stack = new Stack(); - - const strUri = new serverless.FunctionResource(stack, 'Fn', { - handler: 'handler', - runtime: 'runtime', - codeUri: 'uri', - policies: [ - // Alternative 1 is a IAMPolicyDocumentProperty - { - statement: {argument: 'connected series of statements intended to establish a definite proposition'} - }, - // Alternative 2 is just a string - "no it's not", - ] - }); - - test.deepEqual(deepRemoveEmpty(strUri.toCloudFormation()), { - Resources: { - [strUri.logicalId]: { - Type: 'AWS::Serverless::Function', - Properties: { - Handler: 'handler', - Runtime: 'runtime', - CodeUri: 'uri', - Policies: [ - { - Statement: {argument: 'connected series of statements intended to establish a definite proposition'} - }, - // Alternative 2 is just a string - "no it's not", - ] - } - } - } - }); - - test.done(); - }, - - 'both lists and scalars accepted: primitive scalar'(test: Test) { - const stack = new Stack(); - - const strUri = new serverless.FunctionResource(stack, 'Fn', { - handler: 'handler', - runtime: 'runtime', - codeUri: 'uri', - policies: "no it's not", - }); - - test.deepEqual(deepRemoveEmpty(strUri.toCloudFormation()), { - Resources: { - [strUri.logicalId]: { - Type: 'AWS::Serverless::Function', - Properties: { - Handler: 'handler', - Runtime: 'runtime', - CodeUri: 'uri', - Policies: "no it's not" - } - } - } - }); - - test.done(); - }, - - 'both lists and scalars accepted: complex scalar'(test: Test) { - const stack = new Stack(); - - const strUri = new serverless.FunctionResource(stack, 'Fn', { - handler: 'handler', - runtime: 'runtime', - codeUri: 'uri', - policies: { - statement: {argument: 'connected series of statements intended to establish a definite proposition'} - }, - }); - - test.deepEqual(deepRemoveEmpty(strUri.toCloudFormation()), { - Resources: { - [strUri.logicalId]: { - Type: 'AWS::Serverless::Function', - Properties: { - Handler: 'handler', - Runtime: 'runtime', - CodeUri: 'uri', - Policies: { - Statement: {argument: 'connected series of statements intended to establish a definite proposition'} - }, - } - } - } - }); - - test.done(); - }, - - 'return values of tokens are checked: success'(test: Test) { - const stack = new Stack(); - - const lb = new elasticloadbalancing.LoadBalancerResource(stack, 'LB', { - listeners: [new Token(() => ({ - instancePort: '80', - loadBalancerPort: '8080', - protocol: 'HTTP', - }))] - }); - - const actual = deepRemoveEmpty(lb.toCloudFormation()); - const expected = { - Resources: { - [lb.logicalId]: { - Type: 'AWS::ElasticLoadBalancing::LoadBalancer', - Properties: { - Listeners: [ - { - InstancePort: '80', - LoadBalancerPort: '8080', - Protocol: 'HTTP' - } - ] - } - } - } - }; - - test.deepEqual(actual, expected); - - test.done(); - }, - - 'return values of tokens are checked: failure'(test: Test) { - const stack = new Stack(); - - const lb = new elasticloadbalancing.LoadBalancerResource(stack, 'LB', { - listeners: [new Token(() => ({ - instancePort: 80 as any, // Incorrect - loadBalancerPort: '8080', - protocol: 'HTTP', - }))] - }); - - test.throws( - () => { - lb.toCloudFormation(); - }, - /instancePort: 80 should be a string/ - ); - - test.done(); - }, -}; - -/** - * Deep remove undefined and empty lists/dicts from an object, to generate a minimal model - * - * Modifies the object in-place for efficiency, but also returns it for easier function composition. - */ -function deepRemoveEmpty(obj: any) { - Object.keys(obj).forEach(key => { - let del = false; - if (obj[key]) { - if (typeof obj[key] === 'object') { - deepRemoveEmpty(obj[key]); - del = Object.keys(obj[key]).length === 0; - } else if (obj[key] instanceof Array) { - obj[key] = obj[key].map(deepRemoveEmpty).filter((x: any) => x != null); - del = obj[key].length === 0; - } - } else { - del = obj[key] == null; - } - if (del) { - delete obj[key]; - } - }); - return obj; -} diff --git a/packages/@aws-cdk/resources/test/test.specifics.ts b/packages/@aws-cdk/resources/test/test.specifics.ts deleted file mode 100644 index fde597d58ab26..0000000000000 --- a/packages/@aws-cdk/resources/test/test.specifics.ts +++ /dev/null @@ -1,22 +0,0 @@ -// Tests some properties of the generated code -import { Stack } from '@aws-cdk/core'; -import { Test } from 'nodeunit'; -import { serverless } from '../lib'; - -export = { - 'codeuri version field should be optional'(test: Test) { - const stack = new Stack(); - new serverless.FunctionResource(stack, 'Fucntion', { - codeUri: { - bucket: 'a', - key: 'b' - // 'version' shouldn't have to go here - // https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3-location-object - }, - handler: 'index', - runtime: 'asdf' - }); - - test.done(); - } -}; \ No newline at end of file diff --git a/packages/@aws-cdk/resources/test/test.tag.ts b/packages/@aws-cdk/resources/test/test.tag.ts deleted file mode 100644 index 85614781d98b9..0000000000000 --- a/packages/@aws-cdk/resources/test/test.tag.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { App, Stack, StackProps, Tag } from '@aws-cdk/core'; -import { Test } from 'nodeunit'; -import { s3 } from '../lib'; - -export = { - 'can use tags while modeling S3 buckets'(test: Test) { - class TagsExample extends Stack { - constructor(parent: App, name: string, props?: StackProps) { - super(parent, name, props); - - const tag: Tag = { - key: 'TagKey', - value: 'TagValue' - }; - - new s3.BucketResource(this, 'Bucket', { - tags: [ tag ] - }); - } - } - - const app = new App(); - const stack = new TagsExample(app, 'Example'); - - stack.toCloudFormation(); // This should not throw - - test.done(); - }, - - 'can use tag-like property bags while modeling S3 buckets'(test: Test) { - class TagsExample extends Stack { - public readonly bucket: s3.BucketResource; - - constructor(parent: App, name: string, props?: StackProps) { - super(parent, name, props); - this.bucket = new s3.BucketResource(this, 'Bucket', { - tags: [ { key: 'TagKey', value: 'TagValue' } ] - }); - } - } - - // GIVEN - const app = new App(); - - // WHEN - const stack = new TagsExample(app, 'Example'); - - // THEN - const template = stack.toCloudFormation(); // This should not throw - - const tags = template.Resources[stack.bucket.logicalId].Properties.Tags; - - test.deepEqual(tags, [ - { Key: 'TagKey', Value: 'TagValue' } - ]); - test.done(); - } -}; diff --git a/packages/@aws-cdk/resources/tslint.yaml b/packages/@aws-cdk/resources/tslint.yaml deleted file mode 100644 index 80c93f9f72f74..0000000000000 --- a/packages/@aws-cdk/resources/tslint.yaml +++ /dev/null @@ -1,3 +0,0 @@ -rules: - # Some interfaces end up empty - no-empty-interfacd: false diff --git a/packages/@aws-cdk/route53/.gitignore b/packages/@aws-cdk/route53/.gitignore index 026a6f10e3d47..2df4d42e01e23 100644 --- a/packages/@aws-cdk/route53/.gitignore +++ b/packages/@aws-cdk/route53/.gitignore @@ -2,6 +2,7 @@ *.js.map *.d.ts node_modules +cfn dist tsconfig.json tslint.json diff --git a/packages/@aws-cdk/route53/lib/hosted-zone.ts b/packages/@aws-cdk/route53/lib/hosted-zone.ts index 29209efa2c86d..e28aec192f722 100644 --- a/packages/@aws-cdk/route53/lib/hosted-zone.ts +++ b/packages/@aws-cdk/route53/lib/hosted-zone.ts @@ -1,6 +1,7 @@ import { AwsRegion, Construct, Token } from '@aws-cdk/core'; import { VpcNetworkRef } from '@aws-cdk/ec2'; -import { logs, route53 } from '@aws-cdk/resources'; +import { LogGroupArn } from '@aws-cdk/logs'; +import * as route53 from '../cfn/route53'; import { HostedZoneId, HostedZoneRef } from './hosted-zone-ref'; import { validateZoneName } from './util'; @@ -25,7 +26,7 @@ export interface PublicHostedZoneProps { * * @default no DNS query logging */ - queryLogsLogGroupArn?: logs.LogGroupArn; + queryLogsLogGroupArn?: LogGroupArn; } /** @@ -45,7 +46,7 @@ export class PublicHostedZone extends HostedZoneRef { /** * Nameservers for this public hosted zone */ - public readonly nameServers: HostedZoneNameServers; + public readonly nameServers: route53.HostedZoneNameServers; constructor(parent: Construct, name: string, props: PublicHostedZoneProps) { super(parent, name); @@ -124,9 +125,6 @@ function toVpcProperty(vpc: VpcNetworkRef): route53.HostedZoneResource.VPCProper return { vpcId: vpc.vpcId, vpcRegion: new AwsRegion() }; } -export class HostedZoneNameServers extends Token { -} - function determineHostedZoneProps(props: PublicHostedZoneProps) { const hostedZoneName = props.zoneName + '.'; const hostedZoneConfig = props.comment ? { comment: props.comment } : undefined; diff --git a/packages/@aws-cdk/route53/lib/index.ts b/packages/@aws-cdk/route53/lib/index.ts index a98732d2c30d7..b3528fc219e17 100644 --- a/packages/@aws-cdk/route53/lib/index.ts +++ b/packages/@aws-cdk/route53/lib/index.ts @@ -1,3 +1,6 @@ export * from './hosted-zone'; export * from './hosted-zone-ref'; -export * from './records'; \ No newline at end of file +export * from './records'; + +// The L1 library for AWS::Route53: +export * from '../cfn/route53'; diff --git a/packages/@aws-cdk/route53/lib/records/txt.ts b/packages/@aws-cdk/route53/lib/records/txt.ts index 171960385baeb..7290e748d16a1 100644 --- a/packages/@aws-cdk/route53/lib/records/txt.ts +++ b/packages/@aws-cdk/route53/lib/records/txt.ts @@ -1,5 +1,5 @@ import { Construct } from '@aws-cdk/core'; -import { route53 } from '@aws-cdk/resources'; +import * as route53 from '../../cfn/route53'; import { HostedZoneRef } from '../hosted-zone-ref'; import { determineFullyQualifiedDomainName } from './_util'; diff --git a/packages/@aws-cdk/route53/lib/records/zone-delegation.ts b/packages/@aws-cdk/route53/lib/records/zone-delegation.ts index 9266afc13fac1..1b85e078b8648 100644 --- a/packages/@aws-cdk/route53/lib/records/zone-delegation.ts +++ b/packages/@aws-cdk/route53/lib/records/zone-delegation.ts @@ -1,5 +1,5 @@ import { Construct } from '@aws-cdk/core'; -import { route53 } from '@aws-cdk/resources'; +import * as route53 from '../../cfn/route53'; import { HostedZoneRef } from '../hosted-zone-ref'; import { determineFullyQualifiedDomainName } from './_util'; diff --git a/packages/@aws-cdk/route53/package.json b/packages/@aws-cdk/route53/package.json index 8c499bb18e1a0..7d161c78f82f7 100644 --- a/packages/@aws-cdk/route53/package.json +++ b/packages/@aws-cdk/route53/package.json @@ -17,7 +17,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "cfn2ts --scope=AWS::Route53 && jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "jsii && tslint -p . --force", "test": "nodeunit test/test.*.js && cdk-integ-assert", @@ -37,13 +37,14 @@ "license": "LicenseRef-LICENSE", "devDependencies": { "@aws-cdk/assert": "^0.7.3-beta", - "aws-cdk": "^0.7.3-beta", "aws-sdk": "^2.259.1", + "cfn2ts": "^0.7.3-beta", "pkglint": "^0.7.3-beta" }, "dependencies": { "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/ec2": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta" + "@aws-cdk/logs": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/rtv/lib/rtv.ts b/packages/@aws-cdk/rtv/lib/rtv.ts index c720400277773..6adbff1e494ea 100644 --- a/packages/@aws-cdk/rtv/lib/rtv.ts +++ b/packages/@aws-cdk/rtv/lib/rtv.ts @@ -1,6 +1,6 @@ import { Arn, AwsStackName, Construct, FnConcat, PolicyStatement, Token } from '@aws-cdk/core'; import { IIdentityResource } from '@aws-cdk/iam'; -import { ssm } from '@aws-cdk/resources'; +import { ParameterResource } from '@aws-cdk/ssm'; export interface RuntimeValueProps { /** @@ -56,7 +56,7 @@ export class RuntimeValue extends Construct { this.parameterName = new FnConcat('/rtv/', new AwsStackName(), '/', props.package, '/', name); - new ssm.ParameterResource(this, 'Parameter', { + new ParameterResource(this, 'Parameter', { parameterName: this.parameterName, type: 'String', value: props.value, diff --git a/packages/@aws-cdk/rtv/package.json b/packages/@aws-cdk/rtv/package.json index 2b6de111bfef9..e41689ef48259 100644 --- a/packages/@aws-cdk/rtv/package.json +++ b/packages/@aws-cdk/rtv/package.json @@ -16,7 +16,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "tsc && tslint -p . --force", "test": "nyc nodeunit test/test.*.js && cdk-integ-assert", @@ -34,16 +34,15 @@ }, "license": "LicenseRef-LICENSE", "devDependencies": { + "pkglint": "^0.7.3-beta", "@aws-cdk/assert": "^0.7.3-beta", "@aws-cdk/ec2": "^0.7.3-beta", - "@aws-cdk/lambda": "^0.7.3-beta", "@aws-cdk/sqs": "^0.7.3-beta", - "aws-cdk": "^0.7.3-beta", - "pkglint": "^0.7.3-beta" + "@aws-cdk/lambda": "^0.7.3-beta" }, "dependencies": { "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta" + "@aws-cdk/ssm": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/rtv/test/test.rtv.ts b/packages/@aws-cdk/rtv/test/test.rtv.ts index 7ef90e52f9789..df7370bcd1c11 100644 --- a/packages/@aws-cdk/rtv/test/test.rtv.ts +++ b/packages/@aws-cdk/rtv/test/test.rtv.ts @@ -1,6 +1,7 @@ import { Construct, ServicePrincipal, Stack } from '@aws-cdk/core'; import { Role } from '@aws-cdk/iam'; -import { lambda, sqs } from '@aws-cdk/resources'; +import { FunctionResource } from '@aws-cdk/lambda'; +import { QueueResource } from '@aws-cdk/sqs'; import { Test } from 'nodeunit'; import { RuntimeValue } from '../lib'; @@ -22,13 +23,13 @@ class RuntimeValueTest extends Construct { constructor(parent: Construct, name: string) { super(parent, name); - const queue = new sqs.QueueResource(this, 'Queue', {}); + const queue = new QueueResource(this, 'Queue', {}); const role = new Role(this, 'Role', { assumedBy: new ServicePrincipal('lambda.amazonaws.com'), }); - new lambda.FunctionResource(this, 'Function', { + new FunctionResource(this, 'Function', { runtime: 'nodejs6.10', handler: 'index.handler', code: { diff --git a/packages/@aws-cdk/resources/.gitignore b/packages/@aws-cdk/runtime/.gitignore similarity index 81% rename from packages/@aws-cdk/resources/.gitignore rename to packages/@aws-cdk/runtime/.gitignore index 852eb7bf7a21e..2aca4822e3c83 100644 --- a/packages/@aws-cdk/resources/.gitignore +++ b/packages/@aws-cdk/runtime/.gitignore @@ -1,7 +1,7 @@ dist -lib node_modules tsconfig.json +tslint.json *.js *.d.ts README.md diff --git a/packages/@aws-cdk/runtime/.npmignore b/packages/@aws-cdk/runtime/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/runtime/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/runtime/lib/index.ts b/packages/@aws-cdk/runtime/lib/index.ts new file mode 100644 index 0000000000000..26b67111d231a --- /dev/null +++ b/packages/@aws-cdk/runtime/lib/index.ts @@ -0,0 +1,364 @@ +// ---------------------------------------------------------------------- +// PROPERTY MAPPERS +// +// These are used while converting generated classes/property bags to CloudFormation property objects +// +// We use identity mappers for the primitive types. These don't do anything but are there to make the code +// generation work out nicely (so the code generator doesn't need to emit different code for primitive +// vs. complex types). +export type Mapper = (x: any) => any; + +function identity(x: any) { + return x; +} + +export const stringToCloudFormation: Mapper = identity; +export const booleanToCloudFormation: Mapper = identity; +export const objectToCloudFormation: Mapper = identity; +export const numberToCloudFormation: Mapper = identity; + +/** + * The date needs to be formatted as an ISO date in UTC + * + * Some usage sites require a date, some require a timestamp. We'll + * always output a timestamp and hope the parser on the other end + * is smart enough to ignore the time part... (?) + */ +export function dateToCloudFormation(x?: Date): any { + if (!x) { + return undefined; + } + + // tslint:disable-next-line:max-line-length + return `${x.getUTCFullYear()}-${pad(x.getUTCMonth() + 1)}-${pad(x.getUTCDate())}T${pad(x.getUTCHours())}:${pad(x.getUTCMinutes())}:${pad(x.getUTCSeconds())}`; +} + +/** + * Pad a number to 2 decimal places + */ +function pad(x: number) { + if (x < 10) { + return "0" + x.toString(); + } + return x.toString(); +} + +/** + * Turn a tag object into the proper CloudFormation representation + */ +export function tagToCloudFormation(x: any): any { + return { + Key: x.key, + Value: x.value + }; +} + +export function listMapper(elementMapper: Mapper): Mapper { + return (x: any) => { + if (!canInspect(x)) { return x; } + return x.map(elementMapper); + }; +} + +export function hashMapper(elementMapper: Mapper): Mapper { + return (x: any) => { + if (!canInspect(x)) { return x; } + + const ret: any = {}; + + Object.keys(x).forEach((key) => { + ret[key] = elementMapper(x[key]); + }); + + return ret; + }; +} + +/** + * Return a union mapper + * + * Takes a list of validators and a list of mappers, which should correspond pairwise. + * + * The mapper of the first successful validator will be called. + */ +export function unionMapper(validators: Validator[], mappers: Mapper[]): Mapper { + if (validators.length !== mappers.length) { + throw Error('Not the same amount of validators and mappers passed to unionMapper()'); + } + + return (x: any) => { + if (!canInspect(x)) { return x; } + + for (let i = 0; i < validators.length; i++) { + if (validators[i](x).isSuccess) { + return mappers[i](x); + } + } + + // Should not be possible because the union must have passed validation before this function + // will be called, but catch it anyway. + throw new TypeError('No validators matched in the union()'); + }; +} + +// ---------------------------------------------------------------------- +// VALIDATORS +// +// These are used while checking that supplied property bags match the expected schema +// +// We have a couple of datatypes that model validation errors and collections of validation +// errors (together forming a tree of errors so that we can trace validation errors through +// an object graph), and validators. +// +// Validators are simply functions that take a value and return a validation results. Then +// we have some combinators to turn primitive validators into more complex validators. +// + +/** + * Representation of validation results + * + * Models a tree of validation errors so that we have as much information as possible + * about the failure that occurred. + */ +export class ValidationResult { + constructor(readonly errorMessage: string = '', readonly results: ValidationResults = new ValidationResults()) { + } + + public get isSuccess(): boolean { + return !this.errorMessage && this.results.isSuccess; + } + + /** + * Turn a failed validation into an exception + */ + public assertSuccess() { + if (!this.isSuccess) { + let message = this.errorTree(); + // The first letter will be lowercase, so uppercase it for a nicer error message + message = message.substr(0, 1).toUpperCase() + message.substr(1); + throw new TypeError(message); + } + } + + /** + * Return a string rendering of the tree of validation failures + */ + public errorTree(): string { + const childMessages = this.results.errorTreeList(); + return this.errorMessage + (childMessages.length ? `\n ${childMessages.replace(/\n/g, '\n ')}` : ''); + } + + /** + * Wrap this result with an error message, if it concerns an error + */ + public prefix(message: string): ValidationResult { + if (this.isSuccess) { return this; } + return new ValidationResult(`${message}: ${this.errorMessage}`, this.results); + } +} + +/** + * A collection of validation results + */ +export class ValidationResults { + constructor(public results: ValidationResult[] = []) { + } + + public collect(result: ValidationResult) { + // Only collect failures + if (!result.isSuccess) { + this.results.push(result); + } + } + + public get isSuccess(): boolean { + return this.results.every(x => x.isSuccess); + } + + public errorTreeList(): string { + return this.results.map(child => child.errorTree()).join('\n'); + } + + /** + * Wrap up all validation results into a single tree node + * + * If there are failures in the collection, add a message, otherwise + * return a success. + */ + public wrap(message: string): ValidationResult { + if (this.isSuccess) { return VALIDATION_SUCCESS; } + return new ValidationResult(message, this); + } +} + +// Singleton object to save on allocations +export const VALIDATION_SUCCESS = new ValidationResult(); + +export type Validator = (x: any) => ValidationResult; + +/** + * Return whether this object can be validated at all + * + * True unless it's undefined or a CloudFormation intrinsic + */ +export function canInspect(x: any) { + // Note: using weak equality on purpose, we also want to catch undefined + return (x != null && !isCloudFormationIntrinsic(x)); +} + +// CloudFormation validators for primitive types +export function validateString(x: any): ValidationResult { + if (canInspect(x) && typeof x !== 'string') { + return new ValidationResult(`${JSON.stringify(x)} should be a string`); + } + return VALIDATION_SUCCESS; +} + +export function validateNumber(x: any): ValidationResult { + if (canInspect(x) && typeof x !== 'number') { + return new ValidationResult(`${JSON.stringify(x)} should be a number`); + } + return VALIDATION_SUCCESS; +} + +export function validateBoolean(x: any): ValidationResult { + if (canInspect(x) && typeof x !== 'boolean') { + return new ValidationResult(`${JSON.stringify(x)} should be a boolean`); + } + return VALIDATION_SUCCESS; +} + +export function validateDate(x: any): ValidationResult { + if (canInspect(x) && !(x instanceof Date)) { + return new ValidationResult(`${JSON.stringify(x)} should be a Date`); + } + + if (x !== undefined && isNaN(x.getTime())) { + return new ValidationResult('got an unparseable Date'); + } + + return VALIDATION_SUCCESS; +} + +export function validateObject(x: any): ValidationResult { + if (canInspect(x) && typeof x !== 'object') { + return new ValidationResult(`${JSON.stringify(x)} should be an 'object'`); + } + return VALIDATION_SUCCESS; +} + +export function validateTag(x: any): ValidationResult { + if (!canInspect(x)) { return VALIDATION_SUCCESS; } + + if (x.key == null || x.value == null) { + return new ValidationResult(`${JSON.stringify(x)} should have a 'key' and a 'value' property`); + } + + return VALIDATION_SUCCESS; +} + +/** + * Return a list validator based on the given element validator + */ +export function listValidator(elementValidator: Validator): Validator { + return (x: any) => { + if (!canInspect(x)) { return VALIDATION_SUCCESS; } + + if (!x.forEach) { + return new ValidationResult(`${JSON.stringify(x)} should be a list`); + } + + for (let i = 0; i < x.length; i++) { + const element = x[i]; + const result = elementValidator(element); + if (!result.isSuccess) { return result.prefix(`element ${i}`); } + } + + return VALIDATION_SUCCESS; + }; +} + +/** + * Return a hash validator based on the given element validator + */ +export function hashValidator(elementValidator: Validator): Validator { + return (x: any) => { + if (!canInspect(x)) { return VALIDATION_SUCCESS; } + + for (const key of Object.keys(x)) { + const result = elementValidator(x[key]); + if (!result.isSuccess) { return result.prefix(`element '${key}'`); } + } + + return VALIDATION_SUCCESS; + }; +} + +/** + * Decorate a validator with a message clarifying the property the failure is for. + */ +export function propertyValidator(propName: string, validator: Validator): Validator { + return (x: any) => { + return validator(x).prefix(propName); + }; +} + +/** + * Return a validator that will fail if the passed property is not present + * + * Does not distinguish between the property actually not being present, vs being present but 'null' + * or 'undefined' (courtesy of JavaScript), which is generally the behavior that we want. + * + * Empty strings are considered "present"--don't know if this agrees with how CloudFormation looks + * at the world. + */ +export function requiredValidator(x: any) { + if (x == null) { + return new ValidationResult(`required but missing`); + } + return VALIDATION_SUCCESS; +} + +/** + * Validates if any of the given validators matches + * + * We add either/or words to the front of the error mesages so that they read + * more nicely. Example: + * + * Properties not correct for 'FunctionProps' + * codeUri: not one of the possible types + * either: properties not correct for 'S3LocationProperty' + * bucket: required but missing + * key: required but missing + * version: required but missing + * or: '3' should be a 'string' + * + */ +export function unionValidator(...validators: Validator[]): Validator { + return (x: any) => { + const results = new ValidationResults(); + let eitherOr = 'either'; + + for (const validator of validators) { + const result = validator(x); + if (result.isSuccess) { return result; } + results.collect(result.prefix(eitherOr)); + eitherOr = 'or'; + } + return results.wrap('not one of the possible types'); + }; +} + +/** + * Return whether the indicated value represents a CloudFormation intrinsic. + * + * CloudFormation instrinsics are modeled as objects with a single key, which + * look like: { "Fn::GetAtt": [...] } or similar. + */ +function isCloudFormationIntrinsic(x: any) { + if (!(typeof x === 'object')) { return false; } + const keys = Object.keys(x); + if (keys.length !== 1) { return false; } + + return keys[0] === 'Ref' || keys[0].substr(0, 4) === 'Fn::'; +} diff --git a/packages/@aws-cdk/resources/package.json b/packages/@aws-cdk/runtime/package.json similarity index 66% rename from packages/@aws-cdk/resources/package.json rename to packages/@aws-cdk/runtime/package.json index 4656d58f33dd7..664708dc1bd94 100644 --- a/packages/@aws-cdk/resources/package.json +++ b/packages/@aws-cdk/runtime/package.json @@ -1,9 +1,9 @@ { - "name": "@aws-cdk/resources", - "description": "Raw CloudFormation resources for CDK", + "name": "@aws-cdk/runtime", + "description": "The Runtime library for generated AWS CloudFormation Resource classes", "version": "0.7.3-beta", "scripts": { - "prepare": "cfn2ts ./cloudformation-specs/*.json && jsii && tslint -p . && pkglint", + "build": "jsii && tslint -p . && pkglint", "test": "nodeunit test/test.*.js", "lint": "tsc && jsii && tslint -p . --force", "watch": "jsii -w", @@ -14,13 +14,10 @@ "jsii": { "outdir": "dist", "names": { - "java": "com.amazonaws.cdk.resources", - "dotnet": "Aws.Cdk.Resources" + "java": "com.amazonaws.cdk.runtime", + "dotnet": "Aws.Cdk.Runtime" } }, - "dependencies": { - "@aws-cdk/core": "^0.7.3-beta" - }, "devDependencies": { "cfn2ts": "^0.7.3-beta", "pkglint": "^0.7.3-beta" diff --git a/packages/@aws-cdk/resources/test/test.dates.ts b/packages/@aws-cdk/runtime/test/test.dates.ts similarity index 92% rename from packages/@aws-cdk/resources/test/test.dates.ts rename to packages/@aws-cdk/runtime/test/test.dates.ts index c5774a2e0acbf..2a6407588b0bc 100644 --- a/packages/@aws-cdk/resources/test/test.dates.ts +++ b/packages/@aws-cdk/runtime/test/test.dates.ts @@ -1,5 +1,5 @@ import { Test } from 'nodeunit'; -import { dateToCloudFormation, validateDate } from '../lib/runtime'; +import { dateToCloudFormation, validateDate } from '../lib'; export = { 'Dates are validated correctly'(test: Test) { @@ -30,4 +30,4 @@ export = { test.done(); } -}; \ No newline at end of file +}; diff --git a/packages/@aws-cdk/s3/.gitignore b/packages/@aws-cdk/s3/.gitignore index 541a7635fd070..a725ff9821bb6 100644 --- a/packages/@aws-cdk/s3/.gitignore +++ b/packages/@aws-cdk/s3/.gitignore @@ -3,5 +3,6 @@ tsconfig.json tslint.json *.js.map *.d.ts +cfn dist lib/generated/resources.ts diff --git a/packages/@aws-cdk/s3/lib/bucket-policy.ts b/packages/@aws-cdk/s3/lib/bucket-policy.ts index 00e73e81e28e1..7a6cbf9d881e9 100644 --- a/packages/@aws-cdk/s3/lib/bucket-policy.ts +++ b/packages/@aws-cdk/s3/lib/bucket-policy.ts @@ -1,5 +1,5 @@ import { Construct, PolicyDocument } from '@aws-cdk/core'; -import { s3 } from '@aws-cdk/resources'; +import * as s3 from '../cfn/s3'; import { BucketRef } from './bucket'; export interface BucketPolicyProps { diff --git a/packages/@aws-cdk/s3/lib/bucket.ts b/packages/@aws-cdk/s3/lib/bucket.ts index 103e248347365..9b923190641aa 100644 --- a/packages/@aws-cdk/s3/lib/bucket.ts +++ b/packages/@aws-cdk/s3/lib/bucket.ts @@ -1,7 +1,7 @@ import { applyRemovalPolicy, Arn, Construct, FnConcat, Output, PolicyStatement, RemovalPolicy, Token } from '@aws-cdk/core'; import { IIdentityResource } from '@aws-cdk/iam'; import * as kms from '@aws-cdk/kms'; -import { s3 } from '@aws-cdk/resources'; +import * as s3 from '../cfn/s3'; import { BucketPolicy } from './bucket-policy'; import * as perms from './perms'; import { LifecycleRule } from './rule'; diff --git a/packages/@aws-cdk/s3/lib/index.ts b/packages/@aws-cdk/s3/lib/index.ts index d541a5be32440..6bde1d8a88491 100644 --- a/packages/@aws-cdk/s3/lib/index.ts +++ b/packages/@aws-cdk/s3/lib/index.ts @@ -1,3 +1,6 @@ export * from './bucket'; export * from './bucket-policy'; -export * from './rule'; \ No newline at end of file +export * from './rule'; + +// The L1 library for AWS::S3: +export * from '../cfn/s3'; diff --git a/packages/@aws-cdk/s3/package.json b/packages/@aws-cdk/s3/package.json index 274bdbc25945e..969bd46e785fa 100644 --- a/packages/@aws-cdk/s3/package.json +++ b/packages/@aws-cdk/s3/package.json @@ -17,7 +17,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "cfn2ts --scope=AWS::S3 && jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "tsc && tslint -p . --force", "test": "nodeunit test/test.*.js && cdk-integ-assert", @@ -37,13 +37,13 @@ "license": "LicenseRef-LICENSE", "devDependencies": { "@aws-cdk/assert": "^0.7.3-beta", - "aws-cdk": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", "pkglint": "^0.7.3-beta" }, "dependencies": { "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", "@aws-cdk/kms": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta" + "@aws-cdk/runtime": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/s3/test/test.bucket.ts b/packages/@aws-cdk/s3/test/test.bucket.ts index 2ccdccbac0d70..80c76e8f39842 100644 --- a/packages/@aws-cdk/s3/test/test.bucket.ts +++ b/packages/@aws-cdk/s3/test/test.bucket.ts @@ -2,8 +2,8 @@ import { expect } from '@aws-cdk/assert'; import { PolicyStatement, RemovalPolicy, resolve, Stack } from '@aws-cdk/core'; import { Group, User } from '@aws-cdk/iam'; import { EncryptionKey } from '@aws-cdk/kms'; -import { s3 } from '@aws-cdk/resources'; import { Test } from 'nodeunit'; +import * as s3 from '../cfn/s3'; import { Bucket, BucketEncryption } from '../lib'; // to make it easy to copy & paste from output: diff --git a/packages/@aws-cdk/s3/test/test.util.ts b/packages/@aws-cdk/s3/test/test.util.ts index dd8a17d8119a6..ca6b3c378c3a1 100644 --- a/packages/@aws-cdk/s3/test/test.util.ts +++ b/packages/@aws-cdk/s3/test/test.util.ts @@ -1,6 +1,6 @@ import { FnConcat, resolve } from '@aws-cdk/core'; -import { s3 } from '@aws-cdk/resources'; import { Test } from 'nodeunit'; +import * as s3 from '../cfn/s3'; import { BucketName } from '../lib'; import { parseBucketArn, parseBucketName } from '../lib/util'; diff --git a/packages/@aws-cdk/sdb/.gitignore b/packages/@aws-cdk/sdb/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/sdb/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/sdb/.npmignore b/packages/@aws-cdk/sdb/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/sdb/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/sdb/lib/index.ts b/packages/@aws-cdk/sdb/lib/index.ts new file mode 100644 index 0000000000000..3b2080e9f6f57 --- /dev/null +++ b/packages/@aws-cdk/sdb/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::SDB: +export * from '../cfn/sdb'; diff --git a/packages/@aws-cdk/sdb/package.json b/packages/@aws-cdk/sdb/package.json new file mode 100644 index 0000000000000..b67d06f84e896 --- /dev/null +++ b/packages/@aws-cdk/sdb/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/sdb", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::SDB", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.sdb", + "dotnet": "Aws.Cdk.SDB" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::SDB && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "sdb" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/sdb/test/test.sdb.ts b/packages/@aws-cdk/sdb/test/test.sdb.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/sdb/test/test.sdb.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/serverless/.gitignore b/packages/@aws-cdk/serverless/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/serverless/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/serverless/.npmignore b/packages/@aws-cdk/serverless/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/serverless/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/serverless/lib/index.ts b/packages/@aws-cdk/serverless/lib/index.ts new file mode 100644 index 0000000000000..b717560d45231 --- /dev/null +++ b/packages/@aws-cdk/serverless/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::Serverless: +export * from '../cfn/serverless'; diff --git a/packages/@aws-cdk/serverless/package.json b/packages/@aws-cdk/serverless/package.json new file mode 100644 index 0000000000000..edd600b13203b --- /dev/null +++ b/packages/@aws-cdk/serverless/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/serverless", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::Serverless", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.serverless", + "dotnet": "Aws.Cdk.Serverless" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::Serverless && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "serverless" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/serverless/test/test.serverless.ts b/packages/@aws-cdk/serverless/test/test.serverless.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/serverless/test/test.serverless.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/servicecatalog/.gitignore b/packages/@aws-cdk/servicecatalog/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/servicecatalog/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/servicecatalog/.npmignore b/packages/@aws-cdk/servicecatalog/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/servicecatalog/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/servicecatalog/lib/index.ts b/packages/@aws-cdk/servicecatalog/lib/index.ts new file mode 100644 index 0000000000000..f955e997f7831 --- /dev/null +++ b/packages/@aws-cdk/servicecatalog/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::ServiceCatalog: +export * from '../cfn/servicecatalog'; diff --git a/packages/@aws-cdk/servicecatalog/package.json b/packages/@aws-cdk/servicecatalog/package.json new file mode 100644 index 0000000000000..024383142881f --- /dev/null +++ b/packages/@aws-cdk/servicecatalog/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/servicecatalog", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::ServiceCatalog", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.servicecatalog", + "dotnet": "Aws.Cdk.ServiceCatalog" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::ServiceCatalog && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "servicecatalog" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/servicecatalog/test/test.servicecatalog.ts b/packages/@aws-cdk/servicecatalog/test/test.servicecatalog.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/servicecatalog/test/test.servicecatalog.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/servicediscovery/.gitignore b/packages/@aws-cdk/servicediscovery/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/servicediscovery/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/servicediscovery/.npmignore b/packages/@aws-cdk/servicediscovery/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/servicediscovery/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/servicediscovery/lib/index.ts b/packages/@aws-cdk/servicediscovery/lib/index.ts new file mode 100644 index 0000000000000..f68ccce237577 --- /dev/null +++ b/packages/@aws-cdk/servicediscovery/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::ServiceDiscovery: +export * from '../cfn/servicediscovery'; diff --git a/packages/@aws-cdk/servicediscovery/package.json b/packages/@aws-cdk/servicediscovery/package.json new file mode 100644 index 0000000000000..43e1bd593371f --- /dev/null +++ b/packages/@aws-cdk/servicediscovery/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/servicediscovery", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::ServiceDiscovery", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.servicediscovery", + "dotnet": "Aws.Cdk.ServiceDiscovery" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::ServiceDiscovery && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "servicediscovery" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/servicediscovery/test/test.servicediscovery.ts b/packages/@aws-cdk/servicediscovery/test/test.servicediscovery.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/servicediscovery/test/test.servicediscovery.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/ses/.gitignore b/packages/@aws-cdk/ses/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/ses/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/ses/.npmignore b/packages/@aws-cdk/ses/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/ses/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/ses/lib/index.ts b/packages/@aws-cdk/ses/lib/index.ts new file mode 100644 index 0000000000000..c090bb0bea8d1 --- /dev/null +++ b/packages/@aws-cdk/ses/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::SES: +export * from '../cfn/ses'; diff --git a/packages/@aws-cdk/ses/package.json b/packages/@aws-cdk/ses/package.json new file mode 100644 index 0000000000000..48c8b93dad56b --- /dev/null +++ b/packages/@aws-cdk/ses/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/ses", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::SES", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.ses", + "dotnet": "Aws.Cdk.SES" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::SES && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "ses" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/ses/test/test.ses.ts b/packages/@aws-cdk/ses/test/test.ses.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/ses/test/test.ses.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/sns/.gitignore b/packages/@aws-cdk/sns/.gitignore index 026a6f10e3d47..2df4d42e01e23 100644 --- a/packages/@aws-cdk/sns/.gitignore +++ b/packages/@aws-cdk/sns/.gitignore @@ -2,6 +2,7 @@ *.js.map *.d.ts node_modules +cfn dist tsconfig.json tslint.json diff --git a/packages/@aws-cdk/sns/lib/index.ts b/packages/@aws-cdk/sns/lib/index.ts index 40a87f9605971..56ce3c5c7a748 100644 --- a/packages/@aws-cdk/sns/lib/index.ts +++ b/packages/@aws-cdk/sns/lib/index.ts @@ -1,4 +1,7 @@ export * from './policy'; export * from './topic'; export * from './topic-ref'; -export * from './subscription'; \ No newline at end of file +export * from './subscription'; + +// The L1 library for AWS::SNS: +export * from '../cfn/sns'; diff --git a/packages/@aws-cdk/sns/lib/policy.ts b/packages/@aws-cdk/sns/lib/policy.ts index bc885a43d2248..c799ae4ef753d 100644 --- a/packages/@aws-cdk/sns/lib/policy.ts +++ b/packages/@aws-cdk/sns/lib/policy.ts @@ -1,5 +1,5 @@ import { Construct, PolicyDocument } from '@aws-cdk/core'; -import { sns } from '@aws-cdk/resources'; +import * as sns from '../cfn/sns'; import { TopicRef } from './topic-ref'; export interface TopicPolicyProps { diff --git a/packages/@aws-cdk/sns/lib/subscription.ts b/packages/@aws-cdk/sns/lib/subscription.ts index 4ce04f38217a2..d6d2b9939eaed 100644 --- a/packages/@aws-cdk/sns/lib/subscription.ts +++ b/packages/@aws-cdk/sns/lib/subscription.ts @@ -1,5 +1,5 @@ import { Construct } from '@aws-cdk/core'; -import { sns } from '@aws-cdk/resources'; +import * as sns from '../cfn/sns'; import { TopicRef } from './topic-ref'; /** diff --git a/packages/@aws-cdk/sns/lib/topic-ref.ts b/packages/@aws-cdk/sns/lib/topic-ref.ts index 93655b3382579..8057deeaf624f 100644 --- a/packages/@aws-cdk/sns/lib/topic-ref.ts +++ b/packages/@aws-cdk/sns/lib/topic-ref.ts @@ -1,9 +1,10 @@ import { IAlarmAction, Metric, MetricCustomization } from '@aws-cdk/cloudwatch'; -import { Arn, Construct, Output, PolicyStatement, ServicePrincipal, Token } from '@aws-cdk/core'; +import { Arn, Construct, Output, PolicyStatement, ServicePrincipal } from '@aws-cdk/core'; import { EventRuleTarget, IEventRuleTarget } from '@aws-cdk/events'; import { IIdentityResource } from '@aws-cdk/iam'; import { LambdaRef } from '@aws-cdk/lambda'; import { QueueRef } from '@aws-cdk/sqs'; +import * as sns from '../cfn/sns'; import { TopicPolicy } from './policy'; import { Subscription, SubscriptionProtocol } from './subscription'; @@ -12,11 +13,6 @@ import { Subscription, SubscriptionProtocol } from './subscription'; */ export class TopicArn extends Arn { } -/** - * Name of a Topic - */ -export class TopicName extends Token { } - /** * Either a new or imported Topic */ @@ -30,7 +26,7 @@ export abstract class TopicRef extends Construct implements IEventRuleTarget, IA public abstract readonly topicArn: TopicArn; - public abstract readonly topicName: TopicName; + public abstract readonly topicName: sns.TopicName; /** * Controls automatic creation of policy objects. @@ -284,7 +280,7 @@ export abstract class TopicRef extends Construct implements IEventRuleTarget, IA */ class ImportedTopic extends TopicRef { public readonly topicArn: TopicArn; - public readonly topicName: TopicName; + public readonly topicName: sns.TopicName; protected autoCreatePolicy: boolean = false; @@ -300,7 +296,7 @@ class ImportedTopic extends TopicRef { */ export interface TopicRefProps { topicArn: TopicArn; - topicName: TopicName; + topicName: sns.TopicName; } /** diff --git a/packages/@aws-cdk/sns/lib/topic.ts b/packages/@aws-cdk/sns/lib/topic.ts index 2655d69985368..54a164263dfb4 100644 --- a/packages/@aws-cdk/sns/lib/topic.ts +++ b/packages/@aws-cdk/sns/lib/topic.ts @@ -1,6 +1,6 @@ import { Construct, } from '@aws-cdk/core'; -import { sns } from '@aws-cdk/resources'; -import { TopicArn, TopicName, TopicRef } from './topic-ref'; +import * as sns from '../cfn/sns'; +import { TopicArn, TopicRef } from './topic-ref'; /** * Properties for a new SNS topic @@ -30,7 +30,7 @@ export interface TopicProps { */ export class Topic extends TopicRef { public readonly topicArn: TopicArn; - public readonly topicName: TopicName; + public readonly topicName: sns.TopicName; protected autoCreatePolicy: boolean = true; diff --git a/packages/@aws-cdk/sns/package.json b/packages/@aws-cdk/sns/package.json index fcebf3493f42c..f292bd41dc8a3 100644 --- a/packages/@aws-cdk/sns/package.json +++ b/packages/@aws-cdk/sns/package.json @@ -17,7 +17,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "cfn2ts --scope=AWS::SNS && jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "jsii && tslint -p . --force", "test": "nodeunit test/test.*.js && cdk-integ-assert", @@ -37,7 +37,7 @@ "license": "LicenseRef-LICENSE", "devDependencies": { "@aws-cdk/assert": "^0.7.3-beta", - "aws-cdk": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", "pkglint": "^0.7.3-beta" }, "dependencies": { @@ -46,7 +46,7 @@ "@aws-cdk/events": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", "@aws-cdk/lambda": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta", "@aws-cdk/sqs": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/sqs/.gitignore b/packages/@aws-cdk/sqs/.gitignore index 8ad82bc245b78..8634a5e37938c 100644 --- a/packages/@aws-cdk/sqs/.gitignore +++ b/packages/@aws-cdk/sqs/.gitignore @@ -2,6 +2,7 @@ *.js.map *.d.ts node_modules +cfn dist tsconfig.json tslint.json diff --git a/packages/@aws-cdk/sqs/lib/index.ts b/packages/@aws-cdk/sqs/lib/index.ts index 8c59ecc140fd5..3d8fb76ffa6ef 100644 --- a/packages/@aws-cdk/sqs/lib/index.ts +++ b/packages/@aws-cdk/sqs/lib/index.ts @@ -1,3 +1,6 @@ export * from './policy'; export * from './queue'; export * from './queue-ref'; + +// The L1 library for AWS::SQS: +export * from '../cfn/sqs'; diff --git a/packages/@aws-cdk/sqs/lib/policy.ts b/packages/@aws-cdk/sqs/lib/policy.ts index 659f6ac567206..d0dc339f6a00e 100644 --- a/packages/@aws-cdk/sqs/lib/policy.ts +++ b/packages/@aws-cdk/sqs/lib/policy.ts @@ -1,5 +1,5 @@ import { Construct, PolicyDocument } from '@aws-cdk/core'; -import { sqs } from '@aws-cdk/resources'; +import * as sqs from '../cfn/sqs'; import { QueueRef } from './queue-ref'; export interface QueuePolicyProps { diff --git a/packages/@aws-cdk/sqs/lib/queue-ref.ts b/packages/@aws-cdk/sqs/lib/queue-ref.ts index de441ecca80e6..8dfdc3b949fdc 100644 --- a/packages/@aws-cdk/sqs/lib/queue-ref.ts +++ b/packages/@aws-cdk/sqs/lib/queue-ref.ts @@ -1,5 +1,5 @@ import { Construct, Output, PolicyStatement, Token } from '@aws-cdk/core'; -import { sqs } from '@aws-cdk/resources'; +import * as sqs from '../cfn/sqs'; import { QueuePolicy } from './policy'; /** diff --git a/packages/@aws-cdk/sqs/lib/queue.ts b/packages/@aws-cdk/sqs/lib/queue.ts index 303746f9e342a..9cc3c253da38c 100644 --- a/packages/@aws-cdk/sqs/lib/queue.ts +++ b/packages/@aws-cdk/sqs/lib/queue.ts @@ -1,6 +1,6 @@ import { Construct } from '@aws-cdk/core'; -import { EncryptionKey, EncryptionKeyRef } from '@aws-cdk/kms'; -import { kms, sqs } from '@aws-cdk/resources'; +import { EncryptionKey, EncryptionKeyRef, KeyArn } from '@aws-cdk/kms'; +import * as sqs from '../cfn/sqs'; import { QueueRef, QueueUrl } from './queue-ref'; import { validateProps } from './validate-props'; @@ -293,6 +293,6 @@ interface FifoProps { } interface EncryptionProps { - readonly kmsMasterKeyId?: string | kms.KeyArn; + readonly kmsMasterKeyId?: string | KeyArn; readonly kmsDataKeyReusePeriodSeconds?: number; } diff --git a/packages/@aws-cdk/sqs/package.json b/packages/@aws-cdk/sqs/package.json index eac1fdcf5a65f..a4be8405fa227 100644 --- a/packages/@aws-cdk/sqs/package.json +++ b/packages/@aws-cdk/sqs/package.json @@ -17,7 +17,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "jsii && tslint -p . && pkglint", + "build": "cfn2ts --scope=AWS::SQS && jsii && tslint -p . && pkglint", "watch": "jsii -w", "lint": "jsii && tslint -p . --force", "test": "nodeunit test/test.*.js && cdk-integ-assert", @@ -37,13 +37,13 @@ "license": "LicenseRef-LICENSE", "devDependencies": { "@aws-cdk/assert": "^0.7.3-beta", - "aws-cdk": "^0.7.3-beta", "aws-sdk": "^2.259.1", + "cfn2ts": "^0.7.3-beta", "pkglint": "^0.7.3-beta" }, "dependencies": { "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/kms": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta" + "@aws-cdk/runtime": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/ssm/.gitignore b/packages/@aws-cdk/ssm/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/ssm/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/ssm/.npmignore b/packages/@aws-cdk/ssm/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/ssm/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/ssm/lib/index.ts b/packages/@aws-cdk/ssm/lib/index.ts new file mode 100644 index 0000000000000..eb53df48f39f2 --- /dev/null +++ b/packages/@aws-cdk/ssm/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::SSM: +export * from '../cfn/ssm'; diff --git a/packages/@aws-cdk/ssm/package.json b/packages/@aws-cdk/ssm/package.json new file mode 100644 index 0000000000000..2c381c79ac649 --- /dev/null +++ b/packages/@aws-cdk/ssm/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/ssm", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::SSM", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.ssm", + "dotnet": "Aws.Cdk.SSM" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::SSM && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "ssm" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/ssm/test/test.ssm.ts b/packages/@aws-cdk/ssm/test/test.ssm.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/ssm/test/test.ssm.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/stepfunctions/.gitignore b/packages/@aws-cdk/stepfunctions/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/stepfunctions/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/stepfunctions/.npmignore b/packages/@aws-cdk/stepfunctions/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/stepfunctions/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/stepfunctions/lib/index.ts b/packages/@aws-cdk/stepfunctions/lib/index.ts new file mode 100644 index 0000000000000..574b1030b4b41 --- /dev/null +++ b/packages/@aws-cdk/stepfunctions/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::StepFunctions: +export * from '../cfn/stepfunctions'; diff --git a/packages/@aws-cdk/stepfunctions/package.json b/packages/@aws-cdk/stepfunctions/package.json new file mode 100644 index 0000000000000..65e0bfbbc7c95 --- /dev/null +++ b/packages/@aws-cdk/stepfunctions/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/stepfunctions", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::StepFunctions", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.stepfunctions", + "dotnet": "Aws.Cdk.StepFunctions" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::StepFunctions && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "stepfunctions" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/stepfunctions/test/test.stepfunctions.ts b/packages/@aws-cdk/stepfunctions/test/test.stepfunctions.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/stepfunctions/test/test.stepfunctions.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/util/package.json b/packages/@aws-cdk/util/package.json index 9893b1c8068c1..35e7df4fa84a4 100644 --- a/packages/@aws-cdk/util/package.json +++ b/packages/@aws-cdk/util/package.json @@ -9,7 +9,7 @@ "url": "git://github.com/awslabs/aws-cdk" }, "scripts": { - "prepare": "tslint -p . && tsc && pkglint", + "build": "tslint -p . && tsc && pkglint", "watch": "tsc -w", "lint": "tsc && tslint -p . --force", "test": "nodeunit test/test.*.js", @@ -32,6 +32,6 @@ "dependencies": { "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta" + "@aws-cdk/runtime": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/waf/.gitignore b/packages/@aws-cdk/waf/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/waf/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/waf/.npmignore b/packages/@aws-cdk/waf/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/waf/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/waf/lib/index.ts b/packages/@aws-cdk/waf/lib/index.ts new file mode 100644 index 0000000000000..9315be495c37e --- /dev/null +++ b/packages/@aws-cdk/waf/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::WAF: +export * from '../cfn/waf'; diff --git a/packages/@aws-cdk/waf/package.json b/packages/@aws-cdk/waf/package.json new file mode 100644 index 0000000000000..79c6535486068 --- /dev/null +++ b/packages/@aws-cdk/waf/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/waf", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::WAF", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.waf", + "dotnet": "Aws.Cdk.WAF" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::WAF && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "waf" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/waf/test/test.waf.ts b/packages/@aws-cdk/waf/test/test.waf.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/waf/test/test.waf.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/wafregional/.gitignore b/packages/@aws-cdk/wafregional/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/wafregional/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/wafregional/.npmignore b/packages/@aws-cdk/wafregional/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/wafregional/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/wafregional/lib/index.ts b/packages/@aws-cdk/wafregional/lib/index.ts new file mode 100644 index 0000000000000..91aacfdc33bef --- /dev/null +++ b/packages/@aws-cdk/wafregional/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::WAFRegional: +export * from '../cfn/wafregional'; diff --git a/packages/@aws-cdk/wafregional/package.json b/packages/@aws-cdk/wafregional/package.json new file mode 100644 index 0000000000000..cc4bf2a356e26 --- /dev/null +++ b/packages/@aws-cdk/wafregional/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/wafregional", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::WAFRegional", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.wafregional", + "dotnet": "Aws.Cdk.WAFRegional" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::WAFRegional && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "wafregional" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/wafregional/test/test.wafregional.ts b/packages/@aws-cdk/wafregional/test/test.wafregional.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/wafregional/test/test.wafregional.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/@aws-cdk/workspaces/.gitignore b/packages/@aws-cdk/workspaces/.gitignore new file mode 100644 index 0000000000000..a5c5ebe7c20df --- /dev/null +++ b/packages/@aws-cdk/workspaces/.gitignore @@ -0,0 +1,8 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +cfn +dist diff --git a/packages/@aws-cdk/workspaces/.npmignore b/packages/@aws-cdk/workspaces/.npmignore new file mode 100644 index 0000000000000..414172bb772ec --- /dev/null +++ b/packages/@aws-cdk/workspaces/.npmignore @@ -0,0 +1,6 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz diff --git a/packages/@aws-cdk/workspaces/lib/index.ts b/packages/@aws-cdk/workspaces/lib/index.ts new file mode 100644 index 0000000000000..198fbc36decf2 --- /dev/null +++ b/packages/@aws-cdk/workspaces/lib/index.ts @@ -0,0 +1,2 @@ +// The L1 Library for AWS::WorkSpaces: +export * from '../cfn/workspaces'; diff --git a/packages/@aws-cdk/workspaces/package.json b/packages/@aws-cdk/workspaces/package.json new file mode 100644 index 0000000000000..00afc5d8e7335 --- /dev/null +++ b/packages/@aws-cdk/workspaces/package.json @@ -0,0 +1,47 @@ +{ + "name": "@aws-cdk/workspaces", + "version": "0.7.3-beta", + "description": "The CDK Construct Library for AWS::WorkSpaces", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.workspaces", + "dotnet": "Aws.Cdk.WorkSpaces" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=AWS::WorkSpaces && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "workspaces" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^0.7.3-beta", + "cfn2ts": "^0.7.3-beta", + "pkglint": "^0.7.3-beta" + }, + "dependencies": { + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/runtime": "^0.7.3-beta" + } +} diff --git a/packages/@aws-cdk/workspaces/test/test.workspaces.ts b/packages/@aws-cdk/workspaces/test/test.workspaces.ts new file mode 100644 index 0000000000000..db4c843199541 --- /dev/null +++ b/packages/@aws-cdk/workspaces/test/test.workspaces.ts @@ -0,0 +1,8 @@ +import { Test, testCase } from 'nodeunit'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); diff --git a/packages/aws-cdk-all/package.json b/packages/aws-cdk-all/package.json index c3a5f1acb790e..f13281dfeade6 100644 --- a/packages/aws-cdk-all/package.json +++ b/packages/aws-cdk-all/package.json @@ -13,33 +13,83 @@ "name": "Amazon Web Services", "url": "https://aws.amazon.com" }, + "scripts":{ + "build": "echo Nothing to do", + "test": "echo Nothing to do" + }, "license": "Apache-2.0", "dependencies": { - "@aws-cdk/acm": "^0.7.3-beta", + "@aws-cdk/core": "^0.7.3-beta", + "@aws-cdk/custom-resources": "^0.7.3-beta", + "@aws-cdk/cx-api": "^0.7.3-beta", + "@aws-cdk/rtv": "^0.7.3-beta", + "@aws-cdk/apigateway": "^0.7.3-beta", + "@aws-cdk/appsync": "^0.7.3-beta", + "@aws-cdk/applicationautoscaling": "^0.7.3-beta", + "@aws-cdk/athena": "^0.7.3-beta", + "@aws-cdk/autoscaling": "^0.7.3-beta", + "@aws-cdk/autoscalingplans": "^0.7.3-beta", + "@aws-cdk/batch": "^0.7.3-beta", + "@aws-cdk/budgets": "^0.7.3-beta", + "@aws-cdk/certificatemanager": "^0.7.3-beta", + "@aws-cdk/cloud9": "^0.7.3-beta", + "@aws-cdk/cloudformation": "^0.7.3-beta", "@aws-cdk/cloudfront": "^0.7.3-beta", "@aws-cdk/cloudtrail": "^0.7.3-beta", + "@aws-cdk/cloudwatch": "^0.7.3-beta", "@aws-cdk/codebuild": "^0.7.3-beta", "@aws-cdk/codecommit": "^0.7.3-beta", + "@aws-cdk/codedeploy": "^0.7.3-beta", "@aws-cdk/codepipeline": "^0.7.3-beta", - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/custom-resources": "^0.7.3-beta", - "@aws-cdk/cx-api": "^0.7.3-beta", + "@aws-cdk/cognito": "^0.7.3-beta", + "@aws-cdk/config": "^0.7.3-beta", + "@aws-cdk/dax": "^0.7.3-beta", + "@aws-cdk/dms": "^0.7.3-beta", + "@aws-cdk/datapipeline": "^0.7.3-beta", + "@aws-cdk/directoryservice": "^0.7.3-beta", "@aws-cdk/dynamodb": "^0.7.3-beta", "@aws-cdk/ec2": "^0.7.3-beta", + "@aws-cdk/ecr": "^0.7.3-beta", + "@aws-cdk/ecs": "^0.7.3-beta", + "@aws-cdk/efs": "^0.7.3-beta", + "@aws-cdk/eks": "^0.7.3-beta", + "@aws-cdk/emr": "^0.7.3-beta", + "@aws-cdk/elasticache": "^0.7.3-beta", + "@aws-cdk/elasticbeanstalk": "^0.7.3-beta", + "@aws-cdk/elasticloadbalancing": "^0.7.3-beta", + "@aws-cdk/elasticloadbalancingv2": "^0.7.3-beta", + "@aws-cdk/elasticsearch": "^0.7.3-beta", "@aws-cdk/events": "^0.7.3-beta", + "@aws-cdk/gamelift": "^0.7.3-beta", + "@aws-cdk/glue": "^0.7.3-beta", + "@aws-cdk/guardduty": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", - "@aws-cdk/kinesis": "^0.7.3-beta", + "@aws-cdk/inspector": "^0.7.3-beta", + "@aws-cdk/iot": "^0.7.3-beta", "@aws-cdk/kms": "^0.7.3-beta", + "@aws-cdk/kinesis": "^0.7.3-beta", + "@aws-cdk/kinesisanalytics": "^0.7.3-beta", + "@aws-cdk/kinesisfirehose": "^0.7.3-beta", "@aws-cdk/lambda": "^0.7.3-beta", + "@aws-cdk/logs": "^0.7.3-beta", "@aws-cdk/neptune": "^0.7.3-beta", - "@aws-cdk/quickstarts": "^0.7.3-beta", + "@aws-cdk/opsworks": "^0.7.3-beta", "@aws-cdk/rds": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta", + "@aws-cdk/redshift": "^0.7.3-beta", "@aws-cdk/route53": "^0.7.3-beta", - "@aws-cdk/rtv": "^0.7.3-beta", "@aws-cdk/s3": "^0.7.3-beta", + "@aws-cdk/sdb": "^0.7.3-beta", + "@aws-cdk/ses": "^0.7.3-beta", "@aws-cdk/sns": "^0.7.3-beta", - "@aws-cdk/sqs": "^0.7.3-beta" + "@aws-cdk/sqs": "^0.7.3-beta", + "@aws-cdk/ssm": "^0.7.3-beta", + "@aws-cdk/serverless": "^0.7.3-beta", + "@aws-cdk/servicecatalog": "^0.7.3-beta", + "@aws-cdk/servicediscovery": "^0.7.3-beta", + "@aws-cdk/stepfunctions": "^0.7.3-beta", + "@aws-cdk/waf": "^0.7.3-beta", + "@aws-cdk/wafregional": "^0.7.3-beta", + "@aws-cdk/workspaces": "^0.7.3-beta" }, "keywords": [ "aws", diff --git a/packages/aws-cdk-docs/package.json b/packages/aws-cdk-docs/package.json index d3f376821c4b0..089c8a61d6ca6 100644 --- a/packages/aws-cdk-docs/package.json +++ b/packages/aws-cdk-docs/package.json @@ -12,7 +12,7 @@ "ignore": true }, "scripts": { - "prepare": "tslint -p . && tsc && /bin/bash ./build-docs.sh", + "build": "tslint -p . && tsc && /bin/bash ./build-docs.sh", "watch": "tsc -w", "lint": "tsc && tslint -p . --force" }, diff --git a/packages/aws-cdk-docs/src/examples.rst b/packages/aws-cdk-docs/src/examples.rst index 70f45786558b9..7ff473fd58203 100644 --- a/packages/aws-cdk-docs/src/examples.rst +++ b/packages/aws-cdk-docs/src/examples.rst @@ -229,7 +229,7 @@ These examples apply to a `hello-cdk` app. Compile the TypeScript app *hello-cdk.ts* into the JavaScript code *hello-cdk.js* using the following command. -:code:`npm run prepare` +:code:`npm run build` Use **npm run watch** to automatically re-compile those changes. Run the command in another command window and do not run it in the background. diff --git a/packages/aws-cdk-docs/src/tools.rst b/packages/aws-cdk-docs/src/tools.rst index 13ba71b8524ed..8a8826f06e8f4 100644 --- a/packages/aws-cdk-docs/src/tools.rst +++ b/packages/aws-cdk-docs/src/tools.rst @@ -90,7 +90,7 @@ Below are the actions you can take on your CDK app: ==== .. Hang on, we tell them to use - npm run prepare + npm run build to compile and npm run watch in the getting started topic. Which is it??? diff --git a/packages/aws-cdk-java/package.json b/packages/aws-cdk-java/package.json index 80e4b340a29c9..b0b645e355033 100644 --- a/packages/aws-cdk-java/package.json +++ b/packages/aws-cdk-java/package.json @@ -12,7 +12,7 @@ "ignore": true }, "scripts": { - "prepare": "/bin/bash ./generate.sh && cd project && mvn package", + "build": "/bin/bash ./generate.sh && cd project && mvn package", "test": "echo ok" }, "author": { diff --git a/packages/aws-cdk/lib/api/deploy-stack.ts b/packages/aws-cdk/lib/api/deploy-stack.ts index 15fb38ea0b420..3e70333d156de 100644 --- a/packages/aws-cdk/lib/api/deploy-stack.ts +++ b/packages/aws-cdk/lib/api/deploy-stack.ts @@ -1,6 +1,6 @@ +import { WaitConditionHandleResource } from '@aws-cdk/cloudformation'; import { App, Stack } from '@aws-cdk/core'; import { StackInfo, SynthesizedStack } from '@aws-cdk/cx-api'; -import { cloudformation } from '@aws-cdk/resources'; import { CloudFormation } from 'aws-sdk'; import * as colors from 'colors/safe'; import * as crypto from 'crypto'; @@ -90,7 +90,7 @@ async function createEmptyStack(cfn: CloudFormation, stackName: string, quiet: b const app = new App(); const stack = new Stack(app, stackName); stack.templateOptions.description = 'This is an empty stack created by AWS CDK during a deployment attempt'; - new cloudformation.WaitConditionHandleResource(stack, 'WaitCondition'); + new WaitConditionHandleResource(stack, 'WaitCondition'); const template = (await app.synthesizeStack(stackName)).template; const response = await cfn.createStack({ StackName: stackName, TemplateBody: JSON.stringify(template, null, 2) }).promise(); diff --git a/packages/aws-cdk/lib/api/util/toolkit-stack.ts b/packages/aws-cdk/lib/api/util/toolkit-stack.ts index fd574ebea4270..51c4422e37cc9 100644 --- a/packages/aws-cdk/lib/api/util/toolkit-stack.ts +++ b/packages/aws-cdk/lib/api/util/toolkit-stack.ts @@ -1,5 +1,5 @@ import { App, Output, Stack, StackProps } from '@aws-cdk/core'; -import { s3 } from '@aws-cdk/resources'; +import { BucketResource } from '@aws-cdk/s3'; /** * The CDK Toolkit stack provides resources necessary to deploy cloud executables into an AWS environment. @@ -16,7 +16,7 @@ export class ToolkitStack extends Stack { // tslint:disable-next-line:max-line-length this.templateOptions.description = 'The CDK Toolkit Stack. It cas created by `cdk bootstrap` and manages resources necessary for managing your Cloud Applications with AWS CDK.'; - const bucket = new s3.BucketResource(this, 'StagingBucket', { + const bucket = new BucketResource(this, 'StagingBucket', { accessControl: 'Private', bucketEncryption: { serverSideEncryptionConfiguration: [ { serverSideEncryptionByDefault: { sseAlgorithm: 'aws:kms' } } ] diff --git a/packages/aws-cdk/lib/init-templates/app/typescript/README.md b/packages/aws-cdk/lib/init-templates/app/typescript/README.md index 87b1cc87bf03b..522bafbe8765b 100644 --- a/packages/aws-cdk/lib/init-templates/app/typescript/README.md +++ b/packages/aws-cdk/lib/init-templates/app/typescript/README.md @@ -12,7 +12,7 @@ you should use it for installing all dependencies for this project: # Useful commands - * `npm run prepare` compile typescript to js + * `npm run build` compile typescript to js * `npm run watch` watch for changes and compile * `cdk deploy` deploy this stack to your default AWS account/region * `cdk diff` compare deployed stack with current state diff --git a/packages/aws-cdk/lib/init-templates/lib/typescript/README.md b/packages/aws-cdk/lib/init-templates/lib/typescript/README.md index a88d777304538..f1071366e883b 100644 --- a/packages/aws-cdk/lib/init-templates/lib/typescript/README.md +++ b/packages/aws-cdk/lib/init-templates/lib/typescript/README.md @@ -12,7 +12,7 @@ you should use it for installing all dependencies for this project: # Useful commands - * `npm run prepare` compile typescript to js + * `npm run build` compile typescript to js * `npm run watch` watch for changes and compile * `cdk docs` open CDK documentation diff --git a/packages/aws-cdk/package.json b/packages/aws-cdk/package.json index 075bc2f8919a0..223a4a8945402 100644 --- a/packages/aws-cdk/package.json +++ b/packages/aws-cdk/package.json @@ -8,7 +8,7 @@ "cdk": "bin/cdk" }, "scripts": { - "prepare": "/bin/bash generate.sh && tslint -p . && tsc && chmod +x bin/cdk && pkglint", + "build": "/bin/bash generate.sh && tslint -p . && tsc && chmod +x bin/cdk && pkglint", "watch": "tsc -w", "lint": "tsc && tslint -p . --force", "pkglint": "pkglint -f", @@ -31,10 +31,11 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { + "@aws-cdk/cloudformation": "^0.7.3-beta", "@aws-cdk/cloudformation-diff": "^0.7.3-beta", "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/cx-api": "^0.7.3-beta", - "@aws-cdk/resources": "^0.7.3-beta", + "@aws-cdk/s3": "^0.7.3-beta", "@aws-cdk/util": "^0.7.3-beta", "aws-sdk": "^2.259.1", "camelcase": "^5.0.0", diff --git a/packages/simple-resource-bundler/package.json b/packages/simple-resource-bundler/package.json index edd4d45366218..3221330c51801 100644 --- a/packages/simple-resource-bundler/package.json +++ b/packages/simple-resource-bundler/package.json @@ -8,7 +8,7 @@ "simple-resource-bundler": "bin/simple-resource-bundler" }, "scripts": { - "prepare": "tsc && chmod +x bin/simple-resource-bundler && tslint -p . && pkglint", + "build": "tsc && chmod +x bin/simple-resource-bundler && tslint -p . && pkglint", "lint": "tsc && tslint *.ts --force", "watch": "tsc -w", "pkglint": "pkglint -f" diff --git a/tools/cfn2ts/bin/cfn2ts.ts b/tools/cfn2ts/bin/cfn2ts.ts index 94be2466f2e27..fc05f2322de1d 100755 --- a/tools/cfn2ts/bin/cfn2ts.ts +++ b/tools/cfn2ts/bin/cfn2ts.ts @@ -4,21 +4,17 @@ import 'source-map-support/register'; import * as yargs from 'yargs'; import generate from '../lib'; -const argv = yargs - .usage('Usage: cfn2ts -o specfile...') - .option('enrichments', { alias: 'e', type: 'string', desc: 'Enrichments directory' }) - .demandCommand(1) - .argv; +// tslint:disable-next-line:no-unused-expression +const argv = + yargs.usage('Usage: cfn2ts') + .option('scope', { type: 'string', desc: 'Scope to generate TypeScript for (e.g: AWS::IAM)', required: true }) + .option('out', { type: 'string', desc: 'Path to the directory where the TypeScript files should be written', default: 'cfn' }) + .option('force', { type: 'boolean', desc: 'Generate the spec even if it appears up-to-date', default: false }) + .argv; -const specfiles = argv._; -specfiles.sort(); - -const enrichments = argv.enrichments; - -generate(specfiles, enrichments) - .catch(err => { - // tslint:disable:no-console - console.error(err); - // tslint:enable:no-console - process.exit(1); - }); +generate(argv.scope, argv.out, argv.force).catch(err => { + // tslint:disable:no-console + console.error(err); + // tslint:enable:no-console + process.exit(1); +}); diff --git a/tools/cfn2ts/lib/cfnspec.ts b/tools/cfn2ts/lib/cfnspec.ts deleted file mode 100644 index da890947301a5..0000000000000 --- a/tools/cfn2ts/lib/cfnspec.ts +++ /dev/null @@ -1,277 +0,0 @@ -import * as util from './util'; - -export enum PrimitiveType { - String = 'String', - Long = 'Long', - Integer = 'Integer', - Double = 'Double', - Boolean = 'Boolean', - Timestamp = 'Timestamp', - Json = 'Json' -} - -/** - * For the meaning of these fields, see: - * - * https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-resource-specification-format.html - */ -export interface PropertySpec { - Required: boolean - Documentation: string - DuplicatesAllowed?: boolean - UpdateType?: string - - /** - * Property type's name, in case of a non-primitive type - * - * Exactly one of Type or PrimitiveType will be set - */ - Type?: string - - /** - * Property type's primitive name (by enum), in case of a primitive type - * - * Exactly one of Type or PrimitiveType will be set - */ - PrimitiveType?: PrimitiveType - - /** - * Property's element type, in case of a list of non-primitive types - * - * Exactly one of ItemType or PrimitiveItemType will be set if Type == "List" | "Map" - */ - ItemType?: string - - /** - * Property's element type, in case of a list of primitive types - * - * Exactly one of ItemType or PrimitiveItemType will be set if Type == "List" | "Map" - */ - PrimitiveItemType?: PrimitiveType - - // The following fields are (sometimes) used in the SAM specification - // - // They seem to mean the following: - // - // - If [Item]Type and Primitive[Item]Type are both set, both are acceptable. We will always use the - // non-primitive type for maximum type safety. - // - If [Primitive]ItemTypes and [Primitive]Types are both set, both a list as well as a scalar value - // are acceptable. We will always use the list for maximum arity compatibility. - // - If there are multiple values in the arrays, all of them are acceptable. There is no discriminator - // field unfortunately. - Types?: string[] - PrimitiveTypes?: PrimitiveType[] - ItemTypes?: string[] - PrimitiveItemTypes?: PrimitiveType[] -} - -export function isList(spec: PropertySpec) { - // First case covers CloudFormation specs, the other two cover SAM specs - return spec.Type === "List" || spec.ItemTypes || spec.PrimitiveItemTypes; -} - -export function isMap(spec: PropertySpec) { - return spec.Type === "Map"; -} - -export function isCollection(spec: PropertySpec) { - return isList(spec) || isMap(spec); -} - -export function isScalar(spec: PropertySpec) { - return (spec.Type && spec.Type !== "List" && spec.Type !== "Map") - || spec.PrimitiveType - || spec.Types - || spec.PrimitiveTypes; -} - -export function isPrimitive(typeName: string): boolean { - return (typeName === PrimitiveType.String - || typeName === PrimitiveType.Long - || typeName === PrimitiveType.Integer - || typeName === PrimitiveType.Double - || typeName === PrimitiveType.Boolean - || typeName === PrimitiveType.Timestamp - || typeName === PrimitiveType.Json); -} - -export function complexScalarTypeNames(spec: PropertySpec): string[] { - let ret = []; - if (spec.Type && spec.Type !== "List" && spec.Type !== "Map") { ret.push(spec.Type); } - if (spec.Types) { ret = ret.concat(spec.Types); } - return ret; -} - -export function primitiveScalarTypeNames(spec: PropertySpec): string[] { - let ret = []; - if (spec.PrimitiveType) { ret.push(spec.PrimitiveType); } - if (spec.PrimitiveTypes) { ret = ret.concat(spec.PrimitiveTypes); } - return ret; -} - -/** - * Return a list of all allowable types (either primitive or complex), if this spec refers to a scalar type - */ -export function scalarTypeNames(spec: PropertySpec): string[] { - return complexScalarTypeNames(spec).concat(primitiveScalarTypeNames(spec)); -} - -export function complexItemTypeNames(spec: PropertySpec): string[] { - let ret = []; - if (spec.ItemType) { ret.push(spec.ItemType); } - if (spec.ItemTypes) { ret = ret.concat(spec.ItemTypes); } - return ret; -} - -export function primitiveItemTypeNames(spec: PropertySpec): string[] { - let ret = []; - if (spec.PrimitiveItemType) { ret.push(spec.PrimitiveItemType); } - if (spec.PrimitiveItemTypes) { ret = ret.concat(spec.PrimitiveItemTypes); } - return ret; -} - -/** - * Return a list of all allowable item types (either primitive or complex), if this spec refers to a collection type - */ -export function itemTypeNames(spec: PropertySpec): string[] { - return complexItemTypeNames(spec).concat(primitiveItemTypeNames(spec)); -} - -/** - * Whether the indicated property type is a primtive type, or a collection composed only of primitive types - */ -export function isDeeplyPrimitive(spec: PropertySpec) { - return (!spec.Type || spec.Type === "Map" || spec.Type === "List") - && (!spec.ItemType || spec.ItemType === "Tag") - && !spec.Types - && !spec.ItemTypes; -} - -/** - * Whether the given type is a union type (i.e., allows more than one type in this place) - */ -export function isUnionType(spec: PropertySpec) { - return scalarTypeNames(spec).length > 1; -} - -export function complexType(spec: PropertySpec) { - if (spec.Types) { return spec.Types[0]; } - if (spec.Type) { return spec.Type; } - throw new Error("No complex type type found in " + spec); -} - -export type PropertySpecs = { [name: string]: PropertySpec }; - -export interface PropertyType { - Documentation: string - Properties: PropertySpecs -} - -// tslint:disable:no-empty-interface -export interface AttributeSpec extends PropertySpec { -} -// tslint:enable:no-empty-interface - -export interface ResourceType { - Documentation: string - Properties: PropertySpecs - Attributes: { [attributeName: string]: AttributeSpec } - - /** - * Indicates if this resource requires a transform at the template level. - */ - RequiredTransform?: string -} - -// tslint:disable:variable-name -export class Spec { - /** - * Property type definitions. - */ - public PropertyTypes: { [propertyName: string]: PropertyType } = { }; - - /** - * Resource type definitions. - */ - public ResourceTypes: { [resourceName: string]: ResourceType } = { }; - - /** - * The resource spec version. - */ - public ResourceSpecificationVersion: string = ''; - - /** - * The transform that needs to be applied for all resources in this spec. - */ - public ResourceSpecificationTransform?: string; -} -// tslint:enable:variable-name - -/** - * Name of an object in the CloudFormation spec - * - * This refers to a Resource, parsed from a string like 'AWS::S3::Bucket'. - */ -export class SpecName { - /** - * Parse a string representing a name from the CloudFormation spec to a CfnName object - */ - public static parse(cfnName: string): SpecName { - const parts = cfnName.split('::'); - const module = parts.slice(0, parts.length - 1).join('::'); - - const lastParts = parts[parts.length - 1].split('.'); - - if (lastParts.length === 1) { - // Resource name, looks like A::B::C - return new SpecName(module, lastParts[0]); - } - - throw new Error("Not a CloudFormation resource name: " + cfnName); - } - - constructor(readonly module: string, readonly resourceName: string) { - } - - public get fqn() { - return this.module + '::' + this.resourceName; - } - - public relativeName(propName: string): PropertyAttributeName { - return new PropertyAttributeName(this.module, this.resourceName, propName); - } -} - -/** - * Name of a property type or attribute in the CloudFormation spec. - * - * These are scoped to a resource, parsed from a string like 'AWS::S3::Bucket.LifecycleConfiguration'. - */ -export class PropertyAttributeName extends SpecName { - public static parse(cfnName: string): PropertyAttributeName { - if (cfnName === "Tag") { - // Crazy - return new PropertyAttributeName('', '', 'Tag'); - } - - const parts = cfnName.split('::'); - const module = parts.slice(0, parts.length - 1).join('::'); - - const lastParts = parts[parts.length - 1].split('.'); - - if (lastParts.length === 2) { - // PropertyType name, looks like A::B::C.D - return new PropertyAttributeName(module, lastParts[0], lastParts[1]); - } - - throw new Error("Not a recognized PropertyType name: " + cfnName); - } - - constructor(module: string, resourceName: string, readonly propAttrName: string) { - super(module, resourceName); - } - - public get fqn() { - return util.joinIf(super.fqn, '.', this.propAttrName); - } -} \ No newline at end of file diff --git a/tools/cfn2ts/lib/codegen.ts b/tools/cfn2ts/lib/codegen.ts index 961d3b1f88a07..1c1de9937f7ce 100644 --- a/tools/cfn2ts/lib/codegen.ts +++ b/tools/cfn2ts/lib/codegen.ts @@ -1,9 +1,11 @@ +import { schema } from '@aws-cdk/cloudformation-resource-spec'; import { CodeMaker } from 'codemaker'; -import * as cfnspec from './cfnspec'; +import * as fs from 'fs-extra'; +import * as path from 'path'; import * as genspec from './genspec'; +import { itemTypeNames, PropertyAttributeName, scalarTypeNames, SpecName } from './spec-utils'; const CORE = 'core'; -const REGISTRY = 'registry'; const RUNTIME = 'runtime'; const RESOURCE_BASE_CLASS = `${CORE}.Resource`; // base class for all resources const CONSTRUCT_CLASS = `${CORE}.Construct`; @@ -17,54 +19,50 @@ export default class CodeGenerator { public readonly outputFile: string; private code = new CodeMaker(); - private spec = new cfnspec.Spec(); /** * Creates the code generator. - * @param filePath - * @param spec CloudFormation spec JSON - * @param extensions A set of + * @param moduleName the name of the module (used to determine the file name). + * @param spec CloudFormation resource specification */ - constructor(readonly namespace: string, readonly extensions: { [type: string]: string }, pathPrefix: string) { - this.outputFile = `lib/${pathPrefix}/${namespace}.ts`; + constructor(moduleName: string, private readonly spec: schema.Specification) { + this.outputFile = `${moduleName}.ts`; this.code.openFile(this.outputFile); + const meta = { + generatedOn: new Date(), + specificationFingerprint: spec.Fingerprint + }; + this.code.line('// Copyright 2012-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.'); - this.code.line('// Generated from the CloudFormation resource specification'); + this.code.line('// Generated from the AWS CloudFormation Resource Specification'); this.code.line('// See: docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-resource-specification.html'); + this.code.line(`// @cfn2ts:meta@ ${JSON.stringify(meta)}`); this.code.line(); - - // We're going to generate lots of long lines. Might as well ignore this for these files. - this.code.line('// tslint:disable:max-line-length'); - this.code.line(`import * as ${CORE} from '@aws-cdk/core';`); - this.code.line(`import * as ${REGISTRY} from '../registry';`); - this.code.line(`import * as ${RUNTIME} from '../runtime';`); + this.code.line('// tslint:disable:max-line-length | This is generated code - line lengths are difficult to control'); this.code.line(); - - this.code.openBlock(`export namespace ${namespace}`); + this.code.line(`import * as ${CORE} from '@aws-cdk/core';`); + this.code.line(`import * as ${RUNTIME} from '@aws-cdk/runtime';`); } - /** - * Adds another spec to the code generator (merges it with the spec). - * @param additionalSpec - */ - public addSpec(additionalSpec: cfnspec.Spec) { - - if ((additionalSpec as any).ResourceType) { - additionalSpec.ResourceTypes = (additionalSpec as any).ResourceType; + public async upToDate(outPath: string): Promise { + const fullPath = path.join(outPath, this.outputFile); + if (!await fs.pathExists(fullPath)) { + return false; } - - // if the spec has a transform attached to it, add the transform info to all resources - if (additionalSpec.ResourceSpecificationTransform && additionalSpec.ResourceTypes) { - for (const type in additionalSpec.ResourceTypes) { - if (additionalSpec.ResourceTypes.hasOwnProperty(type)) { - additionalSpec.ResourceTypes[type].RequiredTransform = additionalSpec.ResourceSpecificationTransform; + const data = await fs.readFile(fullPath, { encoding: 'utf-8' }); + const comment = data.match(/^\s*[/]{2}\s*@cfn2ts:meta@(.+)$/m); + if (comment) { + try { + const meta = JSON.parse(comment[1]); + if (meta.specificationFingerprint === this.spec.Fingerprint) { + return true; } + } catch { + return false; } } - - conditionalMerge(this.spec.PropertyTypes, additionalSpec.PropertyTypes); - conditionalMerge(this.spec.ResourceTypes, additionalSpec.ResourceTypes); + return false; } /** @@ -72,8 +70,9 @@ export default class CodeGenerator { */ public emitResourceTypes() { Object.keys(this.spec.ResourceTypes).sort().forEach(name => { - const cfnName = cfnspec.SpecName.parse(name); + const cfnName = SpecName.parse(name); const resourceName = genspec.CodeName.forResource(cfnName); + this.code.line(); this.emitResourceType(resourceName, this.spec.ResourceTypes[name]); }); } @@ -82,65 +81,37 @@ export default class CodeGenerator { * Emits classes for all property types */ public emitPropertyTypes() { - Object.keys(this.spec.PropertyTypes).sort().forEach(name => { - const cfnName = cfnspec.PropertyAttributeName.parse(name); + if (!this.spec.PropertyTypes) { return; } + for (const name of Object.keys(this.spec.PropertyTypes).sort()) { + const cfnName = PropertyAttributeName.parse(name); const propTypeName = genspec.CodeName.forPropertyType(cfnName); this.emitPropertyType(propTypeName, this.spec.PropertyTypes[name]); - }); + } } /** * Saves the generated file. */ public async save(dir: string) { - this.code.closeBlock(` // namespace ${this.namespace}`); this.code.closeFile(this.outputFile); return await this.code.save(dir); } - private openClass(name: genspec.CodeName, docLink: string, superClasses?: string) { - let className = name.className; - - // if we have an extension for this class, add a 'Base' postfix. - if (name.fqn in this.extensions) { - className += 'Base'; - } - - this.code.line(); + private openClass(name: genspec.CodeName, docLink?: string, superClasses?: string) { const extendsPostfix = superClasses ? ` extends ${superClasses}` : ''; this.docLink(docLink); - this.code.openBlock(`export class ${className}${extendsPostfix}`); - return className; + this.code.openBlock(`export class ${name.className}${extendsPostfix}`); + return name.className; } - private closeClass(name: genspec.CodeName) { + private closeClass(_name: genspec.CodeName) { this.code.closeBlock(); - - // if this class has extensions, emit them now - - const extension = this.extensions[name.fqn]; - if (!extension) { - return; - } - - this.code.line(); - this.code.line(`// Extensions for type: ${name.fqn}`); - this.code.line(); - - extension - .split('\n') - .filter(line => line.indexOf('/// ') === -1) - .forEach(s => this.code.line(s)); } - private emitPropsType(resourceName: genspec.CodeName, spec: cfnspec.ResourceType): genspec.CodeName { - if (!spec.Properties) { - throw new Error(`Unlikely - a resource without properties? ${JSON.stringify(spec)}`); - } - + private emitPropsType(resourceName: genspec.CodeName, spec: schema.ResourceType): genspec.CodeName | undefined { + if (!spec.Properties || Object.keys(spec.Properties).length === 0) { return; } const name = genspec.CodeName.forResourceProperties(resourceName); - this.code.line(); this.docLink(spec.Documentation); this.code.openBlock(`export interface ${name.className}`); @@ -148,7 +119,9 @@ export default class CodeGenerator { this.code.closeBlock(); + this.code.line(); this.emitValidator(name, spec.Properties, conversionTable); + this.code.line(); this.emitCloudFormationMapper(name, spec.Properties, conversionTable); return name; @@ -159,7 +132,7 @@ export default class CodeGenerator { * * Return a mapping of { originalName -> newName }. */ - private emitPropsTypeProperties(resourceName: cfnspec.SpecName, propertiesSpec: cfnspec.PropertySpecs): Dictionary { + private emitPropsTypeProperties(resourceName: SpecName, propertiesSpec: { [name: string]: schema.Property }): Dictionary { const propertyMap: Dictionary = {}; // Sanity check that our renamed "Name" is not going to conflict with a real property @@ -170,7 +143,7 @@ export default class CodeGenerator { throw new Error(`Oh gosh, we want to rename ${resourceName.fqn}'s 'Name' property to '${renamedNameProperty}', but that property already exists! We need to find a solution to this problem.`); } - Object.keys(propertiesSpec).forEach(propName => { + Object.keys(propertiesSpec).sort(propertyComparator).forEach(propName => { const originalName = propName; const propSpec = propertiesSpec[propName]; const additionalDocs = resourceName.relativeName(propName).fqn; @@ -182,13 +155,30 @@ export default class CodeGenerator { } const resourceCodeName = genspec.CodeName.forResource(resourceName); - const newName = this.emitProperty(resourceCodeName, propName, propSpec, additionalDocs); + const newName = this.emitProperty(resourceCodeName, propName, propSpec, quoteCode(additionalDocs)); propertyMap[originalName] = newName; }); return propertyMap; + + /** + * A comparator that places required properties before optional properties, + * and sorts properties alphabetically. + * @param l the left property name. + * @param r the right property name. + */ + function propertyComparator(l: string, r: string): number { + const lp = propertiesSpec[l]; + const rp = propertiesSpec[r]; + if (lp.Required === rp.Required) { + return l.localeCompare(r); + } else if (lp.Required) { + return -1; + } + return 1; + } } - private emitResourceType(resourceName: genspec.CodeName, spec: cfnspec.ResourceType) { + private emitResourceType(resourceName: genspec.CodeName, spec: schema.ResourceType) { this.beginNamespace(resourceName); // @@ -196,7 +186,9 @@ export default class CodeGenerator { // const propsType = this.emitPropsType(resourceName, spec); - + if (propsType) { + this.code.line(); + } this.openClass(resourceName, spec.Documentation, RESOURCE_BASE_CLASS); // @@ -207,17 +199,13 @@ export default class CodeGenerator { this.code.line(` * The CloudFormation resource type name for this resource class.`); this.code.line(' */'); this.code.line(`public static readonly resourceTypeName = ${JSON.stringify(resourceName.specName!.fqn)};`); - this.code.line(); - this.code.line('/**'); - this.code.line(' * The list of properties on the CloudFormation model for this resource, with their attache metadata.'); - this.code.line(' */'); - this.code.open(`public static readonly resourceProperties: { [name: string]: ${REGISTRY}.PropertySpecification } = {`); - for (const pname of Object.keys(spec.Properties).sort()) { - const prop = spec.Properties[pname]; - this.code.line(`${pname}: { isRequired: ${JSON.stringify(prop.Required)}, updateType: ${JSON.stringify(prop.UpdateType)} },`); + + if (spec.RequiredTransform) { + this.code.line('/**'); + this.code.line(' * The ``Transform`` a template must use in order to use this resource'); + this.code.line(' */'); + this.code.line(`public static readonly requiredTransform = ${JSON.stringify(spec.RequiredTransform)};`); } - this.code.close('};'); - this.code.line(); // // Attributes @@ -226,43 +214,56 @@ export default class CodeGenerator { const attributeTypes = new Array(); if (spec.Attributes) { - Object.keys(spec.Attributes).forEach(attributeName => { - const docLink = spec.Attributes[attributeName].Documentation; - this.docLink(docLink, `@cloudformation_attribute ${attributeName}`); + this.code.line(); + for (const attributeName of Object.keys(spec.Attributes).sort()) { + this.docLink(undefined, `@cloudformation_attribute ${attributeName}`); - const attr = genspec.attributeDefinition(resourceName, attributeName, docLink); + const attr = genspec.attributeDefinition(resourceName, attributeName, undefined); this.code.line(`public readonly ${attr.propertyName}: ${attr.typeName.className};`); attributeTypes.push(attr); - this.code.line(); - }); + } } // // Constructor // - + this.code.line(); this.code.line('/**'); - this.code.line(` * Creates a new ${resourceName.specName!.fqn}.`); + this.code.line(` * Creates a new ${quoteCode(resourceName.specName!.fqn)}.`); this.code.line(' *'); - this.code.line(` * @param parent the ${CONSTRUCT_CLASS} this ${resourceName.className} is a part of`); - this.code.line(` * @param props the properties of this ${resourceName.className}`); + this.code.line(` * @param parent the ${quoteCode(CONSTRUCT_CLASS)} this ${quoteCode(resourceName.className)} is a part of`); + this.code.line(` * @param name the name of the resource in the ${quoteCode(CONSTRUCT_CLASS)} tree`); + this.code.line(` * @param properties the properties of this ${quoteCode(resourceName.className)}`); this.code.line(' */'); - this.code.openBlock(`constructor(parent: ${CONSTRUCT_CLASS}, name: string, props?: ${propsType.className})`); - this.code.line(`super(parent, name, { type: '${resourceName.specName!.fqn}', properties: props });`); - + const optionalProps = spec.Properties && !Object.values(spec.Properties).some(p => p.Required); + const propsArgument = propsType ? `, properties${optionalProps ? '?' : ''}: ${propsType.className}` : ''; + this.code.openBlock(`constructor(parent: ${CONSTRUCT_CLASS}, name: string${propsArgument})`); + this.code.line(`super(parent, name, { type: ${resourceName.className}.resourceTypeName${propsType ? ', properties' : ''} });`); // verify all required properties - for (const pname of Object.keys(spec.Properties)) { - const prop = spec.Properties[pname]; - if (prop.Required) { - const propName = pname.toLocaleLowerCase() === 'name' ? resourceNameProperty(resourceName.specName!) : pname; - this.code.line(`this.required(props, '${genspec.cloudFormationToScriptName(propName)}');`); + if (spec.Properties) { + for (const pname of Object.keys(spec.Properties)) { + const prop = spec.Properties[pname]; + if (prop.Required) { + const propName = pname.toLocaleLowerCase() === 'name' ? resourceNameProperty(resourceName.specName!) : pname; + this.code.line(`this.required(properties, '${genspec.cloudFormationToScriptName(propName)}');`); + } } } + if (spec.RequiredTransform) { + const transformField = `${resourceName.className}.requiredTransform`; + this.code.line('// If a different transform than the required one is in use, this resource cannot be used'); + this.code.openBlock(`if (this.stack.templateOptions.transform && this.stack.templateOptions.transform !== ${transformField})`); + // tslint:disable-next-line:max-line-length + this.code.line(`throw new Error(\`The \${JSON.stringify(${transformField})} transform is required when using ${resourceName.className}, but the \${JSON.stringify(this.stack.templateOptions.transform)} is used.\`);`); + this.code.closeBlock(); + this.code.line('// Automatically configure the required transform'); + this.code.line(`this.stack.templateOptions.transform = ${resourceName.className}.requiredTransform;`); + } // initialize all attribute properties for (const at of attributeTypes) { - if (!(at.typeName.specName instanceof cfnspec.PropertyAttributeName)) { + if (!(at.typeName.specName instanceof PropertyAttributeName)) { throw new Error('SpecName must be a PropertyAttributeName'); } @@ -271,18 +272,16 @@ export default class CodeGenerator { this.code.closeBlock(); - this.code.line(); - - this.emitCloudFormationPropertiesOverride(propsType); + if (propsType) { + this.code.line(); + this.emitCloudFormationPropertiesOverride(propsType); + } this.closeClass(resourceName); - // register the resource type in the registry - this.code.line(); - this.code.line(`${REGISTRY}.registerResourceType(${resourceName.className});`); - // if we have attribute types, emit them. for (const attrType of attributeTypes) { + this.code.line(); this.emitAttributeType(attrType); } @@ -319,15 +318,17 @@ export default class CodeGenerator { * * Generated as a top-level function outside any namespace so we can hide it from library consumers. */ - private emitCloudFormationMapper(typeName: genspec.CodeName, propSpecs: cfnspec.PropertySpecs, nameConversionTable: Dictionary) { + private emitCloudFormationMapper(typeName: genspec.CodeName, + propSpecs: { [name: string]: schema.Property }, + nameConversionTable: Dictionary) { const mapperName = genspec.cfnMapperName(typeName); - this.code.line(); - this.code.line('/**'); - this.code.line(` * Return the CloudFormation properties of a ${typeName.className}`); + this.code.line(` * Renders the AWS CloudFormation properties of an ${quoteCode(typeName.specName!.fqn)} resource`); + this.code.line(' *'); + this.code.line(` * @param properties the TypeScript properties of a ${quoteCode(typeName.className)}`); this.code.line(' *'); - this.code.line(` * @param properties the TypeScript properties of a ${typeName.className}`); + this.code.line(` * @returns the AWS CloudFormation properties of an ${quoteCode(typeName.specName!.fqn)} resource.`); this.code.line(' */'); this.code.openBlock(`function ${mapperName.functionName}(properties: any): any`); @@ -388,15 +389,17 @@ export default class CodeGenerator { * * Generated as a top-level function outside any namespace so we can hide it from library consumers. */ - private emitValidator(typeName: genspec.CodeName, propSpecs: cfnspec.PropertySpecs, nameConversionTable: Dictionary) { + private emitValidator(typeName: genspec.CodeName, + propSpecs: { [name: string]: schema.Property }, + nameConversionTable: Dictionary) { const validatorName = genspec.validatorName(typeName); - this.code.line(); - this.code.line('/**'); - this.code.line(` * Determine whether the given properties match those of a ${typeName.className}`); + this.code.line(` * Determine whether the given properties match those of a ${quoteCode(typeName.className)}`); this.code.line(' *'); - this.code.line(` * @param properties the TypeScript properties of a ${typeName.className}`); + this.code.line(` * @param properties the TypeScript properties of a ${quoteCode(typeName.className)}`); + this.code.line(' *'); + this.code.line(' * @returns the result of the validation.'); this.code.line(' */'); this.code.openBlock(`function ${validatorName.functionName}(properties: any): runtime.ValidationResult`); this.code.line('if (!runtime.canInspect(properties)) { return runtime.VALIDATION_SUCCESS; }'); @@ -454,12 +457,12 @@ export default class CodeGenerator { this.closeClass(attr.typeName); } - private emitProperty(context: genspec.CodeName, propName: string, spec: cfnspec.PropertySpec, additionalDocs: string): string { + private emitProperty(context: genspec.CodeName, propName: string, spec: schema.Property, additionalDocs: string): string { const question = spec.Required ? '' : '?'; const javascriptPropertyName = genspec.cloudFormationToScriptName(propName); + this.docLink(spec.Documentation, additionalDocs); this.code.line(`${javascriptPropertyName}${question}: ${this.findNativeType(context, spec)};`); - this.code.line(); return javascriptPropertyName; } @@ -475,19 +478,19 @@ export default class CodeGenerator { } } - private emitPropertyType(typeName: genspec.CodeName, propTypeSpec: cfnspec.PropertyType) { + private emitPropertyType(typeName: genspec.CodeName, propTypeSpec: schema.PropertyType) { this.beginNamespace(typeName); - this.code.line(); this.docLink(propTypeSpec.Documentation); + if (!propTypeSpec.Properties || Object.keys(propTypeSpec.Properties).length === 0) { + this.code.line(`// tslint:disable-next-line:no-empty-interface | A genuine empty-object type`); + } this.code.openBlock(`export interface ${typeName.className}`); - const conversionTable: Dictionary = {}; - if (propTypeSpec.Properties) { Object.keys(propTypeSpec.Properties).forEach(propName => { const propSpec = propTypeSpec.Properties[propName]; - const additionalDocs = `${typeName.fqn}.${propName}`; + const additionalDocs = quoteCode(`${typeName.fqn}.${propName}`); const newName = this.emitProperty(typeName, propName, propSpec, additionalDocs); conversionTable[propName] = newName; }); @@ -496,27 +499,27 @@ export default class CodeGenerator { this.code.closeBlock(); this.endNamespace(typeName); + this.code.line(); this.emitValidator(typeName, propTypeSpec.Properties, conversionTable); + this.code.line(); this.emitCloudFormationMapper(typeName, propTypeSpec.Properties, conversionTable); - } /** * Return the native type expression for the given propSpec */ - private findNativeType(resource: genspec.CodeName, propSpec: cfnspec.PropertySpec): string { + private findNativeType(resource: genspec.CodeName, propSpec: schema.Property): string { const alternatives: string[] = []; - if (cfnspec.isCollection(propSpec)) { + if (schema.isCollectionProperty(propSpec)) { // render the union of all item types - const itemTypeNames = cfnspec.itemTypeNames(propSpec); - const itemTypes = genspec.specTypesToCodeTypes(resource.specName!, itemTypeNames); + const itemTypes = genspec.specTypesToCodeTypes(resource.specName!, itemTypeNames(propSpec)); // Always accept a token in place of any list element itemTypes.push(genspec.TOKEN_NAME); const union = this.renderTypeUnion(resource, itemTypes); - if (cfnspec.isMap(propSpec)) { + if (schema.isMapProperty(propSpec)) { alternatives.push(`{ [key: string]: (${union}) }`); } else { // To make TSLint happy, we have to either emit: SingleType[] or Array @@ -530,9 +533,9 @@ export default class CodeGenerator { } // Yes, some types can be both collection and scalar. Looking at you, SAM. - if (cfnspec.isScalar(propSpec)) { + if (schema.isScalarPropery(propSpec)) { // Scalar type - const typeNames = cfnspec.scalarTypeNames(propSpec); + const typeNames = scalarTypeNames(propSpec); const types = genspec.specTypesToCodeTypes(resource.specName!, typeNames); alternatives.push(this.renderTypeUnion(resource, types)); } @@ -547,7 +550,8 @@ export default class CodeGenerator { return types.map((type) => type.relativeTo(context).fqn).join(' | '); } - private docLink(link: string, ...before: string[]) { + private docLink(link: string | undefined, ...before: string[]) { + if (!link && before.length === 0) { return; } this.code.line('/**'); before.forEach(line => this.code.line(` * ${line}`)); if (link) { @@ -572,22 +576,6 @@ function mapperNames(types: genspec.CodeName[]): string { return types.map(type => genspec.cfnMapperName(type).fqn).join(', '); } -function conditionalMerge(target: any, source?: any) { - if (!source) { - return; - } - - for (const key in source) { - if (source.hasOwnProperty(key)) { - if (key in target) { - throw new Error(`${key} already exists`); - } - - target[key] = source[key]; - } - } -} - /** * Return the name of the literal "name" property of a resource * @@ -598,6 +586,18 @@ function conditionalMerge(target: any, source?: any) { * * (We can leave the name PascalCased, as it's going to be camelCased later). */ -function resourceNameProperty(resourceName: cfnspec.SpecName) { +function resourceNameProperty(resourceName: SpecName) { return `${resourceName.resourceName}Name`; } + +/** + * Quotes a code name for inclusion in a JSDoc comment, so it will render properly + * in the Sphinx output. + * + * @param code a code name to be quoted. + * + * @returns the code name surrounded by double backticks. + */ +function quoteCode(code: string): string { + return '``' + code + '``'; +} diff --git a/tools/cfn2ts/lib/genspec.ts b/tools/cfn2ts/lib/genspec.ts index 0f934f9fcb0bf..e69eb52f9e140 100644 --- a/tools/cfn2ts/lib/genspec.ts +++ b/tools/cfn2ts/lib/genspec.ts @@ -2,8 +2,9 @@ // // Does not include the actual code generation itself. +import { schema } from '@aws-cdk/cloudformation-resource-spec'; import { toCamelCase, toPascalCase } from 'codemaker'; -import * as cfnspec from './cfnspec'; +import { itemTypeNames, PropertyAttributeName, scalarTypeNames, SpecName } from './spec-utils'; import * as util from './util'; const RESOURCE_CLASS_POSTFIX = 'Resource'; @@ -14,7 +15,7 @@ const RESOURCE_CLASS_POSTFIX = 'Resource'; * This refers to TypeScript constructs (typically a class) */ export class CodeName { - public static forResource(specName: cfnspec.SpecName): CodeName { + public static forResource(specName: SpecName): CodeName { let className = specName.resourceName; // add a "Resource" postfix to the class name (unless there is already a resource postfix). @@ -33,7 +34,7 @@ export class CodeName { return new CodeName(resourceName.packageName, resourceName.namespace, `${resourceName.className}Props`, resourceName.specName); } - public static forPropertyType(specName: cfnspec.PropertyAttributeName): CodeName { + public static forPropertyType(specName: PropertyAttributeName): CodeName { // Exception for an intrinsic type if (specName.propAttrName === 'Tag' && specName.resourceName === '') { return TAG_NAME; @@ -55,7 +56,7 @@ export class CodeName { constructor(readonly packageName: string, readonly namespace: string, readonly className: string, - readonly specName?: cfnspec.SpecName, + readonly specName?: SpecName, readonly methodName?: string) { } // tslint:enable:no-shadowed-variable @@ -100,7 +101,7 @@ export const TAG_NAME = new CodeName('', 'core', 'Tag'); export const TOKEN_NAME = new CodeName('', 'core', 'Token'); export class Attribute { - constructor(readonly propertyName: string, readonly typeName: CodeName, readonly baseClassName: string, readonly docLink: string) { + constructor(readonly propertyName: string, readonly typeName: CodeName, readonly baseClassName: string, readonly docLink?: string) { } } @@ -111,8 +112,8 @@ export class Attribute { * * Example: AWS::EC2 -> ec2 */ -export function packageName(module: cfnspec.SpecName | string): string { - if (module instanceof cfnspec.SpecName) { +export function packageName(module: SpecName | string): string { + if (module instanceof SpecName) { module = module.module; } @@ -160,9 +161,9 @@ export function validatorName(typeName: CodeName): CodeName { * - The type we will generate for the attribute, including its base class and docs. * - The property name we will use to refer to the attribute. */ -export function attributeDefinition(resourceName: CodeName, attributeName: string, docLink: string): Attribute { +export function attributeDefinition(resourceName: CodeName, attributeName: string, docLink?: string): Attribute { // Original, unmodified CloudFormation name - const specName = new cfnspec.PropertyAttributeName(resourceName.specName!.module, resourceName.specName!.resourceName, attributeName); // "Arn" + const specName = new PropertyAttributeName(resourceName.specName!.module, resourceName.specName!.resourceName, attributeName); // "Arn" const descriptiveName = descriptiveAttributeName(resourceName, attributeName); // "BucketArn" const propertyName = cloudFormationToScriptName(descriptiveName); // "bucketArn" @@ -228,15 +229,15 @@ export function cloudFormationToScriptName(name: string): string { return ret; } -function specPrimitiveToCodePrimitive(type: cfnspec.PrimitiveType): CodeName { +function specPrimitiveToCodePrimitive(type: schema.PrimitiveType): CodeName { switch (type) { - case cfnspec.PrimitiveType.Boolean: return CodeName.forPrimitive('boolean'); - case cfnspec.PrimitiveType.Double: return CodeName.forPrimitive('number'); - case cfnspec.PrimitiveType.Integer: return CodeName.forPrimitive('number'); - case cfnspec.PrimitiveType.Json: return CodeName.forPrimitive('object'); - case cfnspec.PrimitiveType.Long: return CodeName.forPrimitive('number'); - case cfnspec.PrimitiveType.String: return CodeName.forPrimitive('string'); - case cfnspec.PrimitiveType.Timestamp: return CodeName.forPrimitive('Date'); + case 'Boolean': return CodeName.forPrimitive('boolean'); + case 'Double': return CodeName.forPrimitive('number'); + case 'Integer': return CodeName.forPrimitive('number'); + case 'Json': return CodeName.forPrimitive('object'); + case 'Long': return CodeName.forPrimitive('number'); + case 'String': return CodeName.forPrimitive('string'); + case 'Timestamp': return CodeName.forPrimitive('Date'); default: throw new Error(`Invalid primitive type: ${type}`); } } @@ -249,9 +250,9 @@ export function isPrimitive(type: CodeName): boolean { || type.className === 'Date'; } -export function specTypeToCodeType(contextResource: cfnspec.SpecName, type: string): CodeName { - if (cfnspec.isPrimitive(type)) { - return specPrimitiveToCodePrimitive(type as cfnspec.PrimitiveType); +export function specTypeToCodeType(contextResource: SpecName, type: string): CodeName { + if (schema.isPrimitiveType(type)) { + return specPrimitiveToCodePrimitive(type); } else if (type === 'Tag') { // Tags are not considered primitive by the CloudFormation spec (even though they are intrinsic) // so we won't consider them primitive either. @@ -265,7 +266,7 @@ export function specTypeToCodeType(contextResource: cfnspec.SpecName, type: stri /** * Translate a list of type references in a resource context to a list of code names */ -export function specTypesToCodeTypes(contextResource: cfnspec.SpecName, types: string[]): CodeName[] { +export function specTypesToCodeTypes(contextResource: SpecName, types: string[]): CodeName[] { const ret = []; for (const type of types) { @@ -285,15 +286,15 @@ export interface PropertyVisitor { visitListOrScalar(scalarTypes: CodeName[], itemTypes: CodeName[]): any; } -export function typeDispatch(resource: cfnspec.SpecName, spec: cfnspec.PropertySpec, visitor: PropertyVisitor): T { - const scalarTypes = specTypesToCodeTypes(resource, cfnspec.scalarTypeNames(spec)); - const itemTypes = specTypesToCodeTypes(resource, cfnspec.itemTypeNames(spec)); +export function typeDispatch(resource: SpecName, spec: schema.Property, visitor: PropertyVisitor): T { + const scalarTypes = specTypesToCodeTypes(resource, scalarTypeNames(spec)); + const itemTypes = specTypesToCodeTypes(resource, itemTypeNames(spec)); if (scalarTypes.length && itemTypes.length) { // Can accept both a list and a scalar return visitor.visitListOrScalar(scalarTypes, itemTypes); - } else if (cfnspec.isCollection(spec)) { - if (cfnspec.isMap(spec)) { + } else if (schema.isCollectionProperty(spec)) { + if (schema.isMapProperty(spec)) { if (itemTypes.length > 1) { return visitor.visitUnionMap(itemTypes); } else { diff --git a/tools/cfn2ts/lib/index.ts b/tools/cfn2ts/lib/index.ts index aa27c1549254d..26e954943e35d 100644 --- a/tools/cfn2ts/lib/index.ts +++ b/tools/cfn2ts/lib/index.ts @@ -1,64 +1,30 @@ +import { filteredSpecification } from '@aws-cdk/cloudformation-resource-spec'; import { green } from 'colors/safe'; import * as fs from 'fs-extra'; import * as path from 'path'; import CodeGenerator from './codegen'; -import * as genspec from './genspec'; -import { coalesceByModule } from './merge-specs'; +import { packageName } from './genspec'; -const templateDir = path.join(__dirname, '../module-template'); +export default async function(scope: string, outPath: string, force: boolean) { + if (outPath !== '.') { await fs.mkdirp(outPath); } -export default async function(specFiles: string[], enrichmentsDir?: string) { - const enrichments = await readFiles(enrichmentsDir, '.ts'); - - const specByModule = await coalesceByModule(specFiles); - - const outPath = '.'; - const pathPrefix = 'cfn'; - - const indexPath = path.join(outPath, 'lib', 'index.ts'); - const jsonPath = path.join(outPath, 'spec'); - - await fs.mkdirp(path.dirname(indexPath)); - await fs.mkdirp(jsonPath); - await fs.copy(templateDir, outPath, { recursive: true }); - const indexFile = fs.createWriteStream(indexPath); - indexFile.write('export * from \'./registry\';\n\n'); + const spec = filteredSpecification(s => s.startsWith(`${scope}::`)); + if (Object.keys(spec.ResourceTypes).length === 0) { + throw new Error(`No resource was found for scope ${scope}`); + } + const name = packageName(scope); - for (const mod of Object.keys(specByModule).sort()) { - const spec = specByModule[mod]; - const baseName = genspec.packageName(mod); - const generator = new CodeGenerator(baseName, enrichments, pathPrefix); + const generator = new CodeGenerator(name, spec); - generator.addSpec(spec); + if (force || !await generator.upToDate(outPath)) { generator.emitResourceTypes(); generator.emitPropertyTypes(); - // tslint:disable:no-console - console.log('saving %s...', green(path.join(outPath, generator.outputFile))); - // tslint:enable:no-console + // tslint:disable-next-line:no-console + console.log('Generated code: %s', green(path.join(outPath, generator.outputFile))); await generator.save(outPath); - indexFile.write(`export * from './${pathPrefix}/${baseName}';\n`); - } - await indexFile.close(); -} - -/** - * Reads all typescript files from `dir` and returns a map that maps the - * base name of the file to it's contents. - */ -async function readFiles(dir: string | undefined, ext: string) { - if (!dir) { - return { }; - } - const result: { [basename: string]: string } = {}; - const files = await fs.readdir(dir); - for (const file of files) { - if (path.extname(file) !== ext) { - continue; - } - const type = path.basename(file, ext); - const body = (await fs.readFile(path.join(dir, file))).toString(); - result[type] = body; + } else { + // tslint:disable-next-line:no-console + console.log('Generated code already up-to-date: %s', green(path.join(outPath, generator.outputFile))); } - return result; } diff --git a/tools/cfn2ts/lib/merge-specs.ts b/tools/cfn2ts/lib/merge-specs.ts deleted file mode 100644 index d352bde5bb9fe..0000000000000 --- a/tools/cfn2ts/lib/merge-specs.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { blue, green } from 'colors/safe'; -import { applyPatch } from 'fast-json-patch'; -import * as fs from 'fs-extra'; -import * as cfn from './cfnspec'; - -/** - * Reads a bunch of spec files and returns a hash where key is "module" and value is a spec. - */ -export async function coalesceByModule(specfiles: string[]) { - const byModule: any = { }; // Ex: { "AWS::Lambda": { "ResourceTypes": { "Function": { ... }}}} - - for (const file of specfiles) { - const spec = JSON.parse((await fs.readFile(file)).toString()); - - mergeByNamespace(file, 'PropertyTypes', spec.PropertyTypes, s => cfn.PropertyAttributeName.parse(s)); - mergeByNamespace(file, 'ResourceTypes', spec.ResourceTypes, s => cfn.SpecName.parse(s)); - - // in per-resource specs, the key is "ResourceType" (singular), so we convert it to ResourceTypes (plural) - mergeByNamespace(file, 'ResourceTypes', spec.ResourceType, s => cfn.SpecName.parse(s)); - } - - return byModule; - - function mergeByNamespace(filename: string, key: string, hash: any, nameFactory: (s: string) => cfn.SpecName) { - if (!hash) { - return; - } - - for (const entity of Object.keys(hash)) { - const name = nameFactory(entity); - - if (!name.module) { - // tslint:disable:no-console - console.warn('WARNING: skipping non-namespaced type: %s', entity); - // tslint:enable:no-console - continue; - } - - if (!(name.module in byModule)) { - byModule[name.module] = { }; - } - - const moduleTypes = byModule[name.module]; - if (!(key in moduleTypes)) { - moduleTypes[key] = { }; - } - - const moduleSection = moduleTypes[key]; - - const isPatchFile = filename.indexOf('patch') !== -1; - // Warn about duplicate definitions unless the filename contains the word "patch" - if (entity in moduleSection && !isPatchFile) { - throw new Error(`Duplicate entity '${entity}' in module ${name.module}. File: ` + filename); - } - if (isPatchFile && hash[entity].patch) { - // tslint:disable:no-console - console.log('patching %s: %s\n\tfrom: %s', - blue(name.module), - green(hash[entity].patch.description || 'no description provided'), - blue(filename)); - // tslint:enable:no-console - applyPatch(moduleSection[entity], - hash[entity].patch.operations, - true /* Validate patch operations (standard jsonpatch way) */, - true /* Mutate the document in-place */); - } else { - moduleSection[entity] = mergeObject(moduleSection[entity] || {}, hash[entity]); - } - } - } -} - -function mergeObject(a: {[key: string]: any}, b: {[key: string]: any}): {[key: string]: any} { - for (const key of Object.keys(b)) { - if (isObject(a[key]) && isObject(b[key])) { - a[key] = mergeObject(a[key], b[key]); - } else { - a[key] = b[key]; - } - - // Be sure to delete nully/undefinedy values - if (a[key] == null) { delete a[key]; } - } - return a; -} - -/** - * Return whether a variable is an object - * - * typeof by itself won't work, because 'null'. JavaScript, I'm not a fan. - */ -function isObject(x: any) { - return typeof(x) === 'object' && x !== null; -} \ No newline at end of file diff --git a/tools/cfn2ts/lib/spec-utils.ts b/tools/cfn2ts/lib/spec-utils.ts new file mode 100644 index 0000000000000..cff5f0400a098 --- /dev/null +++ b/tools/cfn2ts/lib/spec-utils.ts @@ -0,0 +1,121 @@ +import { schema } from '@aws-cdk/cloudformation-resource-spec'; +import { joinIf } from './util'; + +/** + * Name of an object in the CloudFormation spec + * + * This refers to a Resource, parsed from a string like 'AWS::S3::Bucket'. + */ +export class SpecName { + /** + * Parse a string representing a name from the CloudFormation spec to a CfnName object + */ + public static parse(cfnName: string): SpecName { + const parts = cfnName.split('::'); + const module = parts.slice(0, parts.length - 1).join('::'); + + const lastParts = parts[parts.length - 1].split('.'); + + if (lastParts.length === 1) { + // Resource name, looks like A::B::C + return new SpecName(module, lastParts[0]); + } + + throw new Error("Not a CloudFormation resource name: " + cfnName); + } + + constructor(readonly module: string, readonly resourceName: string) { + } + + public get fqn() { + return this.module + '::' + this.resourceName; + } + + public relativeName(propName: string): PropertyAttributeName { + return new PropertyAttributeName(this.module, this.resourceName, propName); + } +} + +/** + * Name of a property type or attribute in the CloudFormation spec. + * + * These are scoped to a resource, parsed from a string like 'AWS::S3::Bucket.LifecycleConfiguration'. + */ +export class PropertyAttributeName extends SpecName { + public static parse(cfnName: string): PropertyAttributeName { + if (cfnName === "Tag") { + // Crazy + return new PropertyAttributeName('', '', 'Tag'); + } + + const parts = cfnName.split('::'); + const module = parts.slice(0, parts.length - 1).join('::'); + + const lastParts = parts[parts.length - 1].split('.'); + + if (lastParts.length === 2) { + // PropertyType name, looks like A::B::C.D + return new PropertyAttributeName(module, lastParts[0], lastParts[1]); + } + + throw new Error("Not a recognized PropertyType name: " + cfnName); + } + + constructor(module: string, resourceName: string, readonly propAttrName: string) { + super(module, resourceName); + } + + public get fqn() { + return joinIf(super.fqn, '.', this.propAttrName); + } +} + +/** + * Return a list of all allowable item types (either primitive or complex). + */ +export function itemTypeNames(spec: schema.CollectionProperty): string[] { + return complexItemTypeNames(spec).concat(primitiveItemTypeNames(spec)); +} + +function complexItemTypeNames(spec: schema.CollectionProperty): string[] { + if (schema.isComplexListProperty(spec) || schema.isComplexMapProperty(spec)) { + return [spec.ItemType]; + } else if (schema.isUnionProperty(spec)) { + return spec.ItemTypes || []; + } + return []; +} + +function primitiveItemTypeNames(spec: schema.CollectionProperty): string[] { + if (schema.isPrimitiveListProperty(spec) || schema.isPrimitiveMapProperty(spec)) { + return [spec.PrimitiveItemType]; + } else if (schema.isUnionProperty(spec)) { + return spec.PrimitiveItemTypes || []; + } + return []; +} + +/** + * Return a list of all allowable types (either primitive or complex). + */ +export function scalarTypeNames(spec: schema.ScalarProperty): string[] { + return complexScalarTypeNames(spec).concat(primitiveScalarTypeNames(spec)); +} + +function complexScalarTypeNames(spec: schema.ScalarProperty): string[] { + if (schema.isComplexProperty(spec) && !schema.isListProperty(spec) && !schema.isMapProperty(spec)) { + return [spec.Type]; + } else if (schema.isUnionProperty(spec)) { + return spec.Types || []; + } + return []; +} + +function primitiveScalarTypeNames(spec: schema.ScalarProperty): string[] { + if (schema.isPrimitiveProperty(spec)) { + return [spec.PrimitiveType]; + } else if (schema.isUnionProperty(spec)) { + return spec.PrimitiveTypes || []; + } + return []; +} diff --git a/tools/cfn2ts/package.json b/tools/cfn2ts/package.json index bd90fbf41c8aa..b0ea3e21e45e8 100644 --- a/tools/cfn2ts/package.json +++ b/tools/cfn2ts/package.json @@ -13,7 +13,7 @@ "cfn2ts": "bin/cfn2ts" }, "scripts": { - "prepare": "tslint -p . && tsc && chmod +x bin/cfn2ts && pkglint", + "build": "tslint -p . && tsc && chmod +x bin/cfn2ts && pkglint", "watch": "tsc -w", "lint": "tsc && tslint -p . --force", "test": "nodeunit test/test.*.js", @@ -25,6 +25,7 @@ }, "license": "LicenseRef-LICENSE", "dependencies": { + "@aws-cdk/cloudformation-resource-spec": "^0.7.3-beta", "colors": "^1.2.1", "fast-json-patch": "^2.0.6", "fs-extra": "^4.0.2", diff --git a/tools/pkglint/lib/rules.ts b/tools/pkglint/lib/rules.ts index 92f009c7bc05e..3190d2af393f2 100644 --- a/tools/pkglint/lib/rules.ts +++ b/tools/pkglint/lib/rules.ts @@ -203,23 +203,23 @@ export class JSIIDotNetNamespaceIsRequired extends ValidationRule { } /** - * Prepare script must mention tslint + * Build script must mention tslint */ -export class PrepareScriptMustLint extends ValidationRule { +export class BuildScriptMustLint extends ValidationRule { public validate(pkg: PackageJson): void { - const prepare = pkg.npmScript('prepare'); + const build = pkg.npmScript('build'); - if (!prepare) { + if (!build) { pkg.report({ - message: 'Must have a "prepare" script' + message: 'Must have a "build" script' }); return; } - if (prepare.indexOf('tslint') === -1) { + if (build.indexOf('tslint') === -1) { pkg.report({ - message: '"prepare" script must use tslint', - fix: () => { pkg.appendToNpmScript('prepare', 'tslint -p .'); } + message: '"build" script must use tslint', + fix: () => { pkg.appendToNpmScript('build', 'tslint -p .'); } }); } } @@ -301,18 +301,18 @@ export class MustHaveIntegCommand extends ValidationRule { * * (Except the validator itself) */ -export class PkgLintInPrepare extends ValidationRule { +export class PkgLintInBuild extends ValidationRule { public validate(pkg: PackageJson): void { if (pkg.json.name === 'pkglint') { return; } - const prepare = pkg.npmScript('prepare'); + const build = pkg.npmScript('build'); - if (prepare.indexOf('pkglint') === -1) { + if (build.indexOf('pkglint') === -1) { pkg.report({ message: 'Package must use validator as part of build', - fix: () => { pkg.appendToNpmScript('prepare', 'pkglint'); } + fix: () => { pkg.appendToNpmScript('build', 'pkglint'); } }); } @@ -445,11 +445,11 @@ export class AllVersionsTheSame extends ValidationRule { /** * Determine whether this is a JSII package * - * A package is a JSII package if the 'prepare' script mentions JSII. + * A package is a JSII package if the 'build' script mentions JSII. */ function isJSII(pkg: PackageJson) { - const prepareScript = (pkg.json.scripts || {}).prepare || ''; - return prepareScript.indexOf('jsii ') >= 0; + const buildScript = (pkg.json.scripts || {}).build || ''; + return buildScript.indexOf('jsii ') >= 0; } /** diff --git a/tools/pkglint/package.json b/tools/pkglint/package.json index 289c06849d5c1..e5d4c4549fed7 100644 --- a/tools/pkglint/package.json +++ b/tools/pkglint/package.json @@ -16,7 +16,7 @@ "pkglint": "bin/pkglint" }, "scripts": { - "prepare": "tsc && tslint -p . && chmod +x bin/pkglint", + "build": "tsc && tslint -p . && chmod +x bin/pkglint", "watch": "tsc -w", "lint": "tsc && tslint -p . --force" }, diff --git a/tools/pkgtools/package.json b/tools/pkgtools/package.json index 32e85cd39cade..e9c1f10a21e4f 100644 --- a/tools/pkgtools/package.json +++ b/tools/pkgtools/package.json @@ -13,7 +13,7 @@ "find-jsii-packages": "bin/find-jsii-packages" }, "scripts": { - "prepare": "tsc && tslint -p . && chmod +x bin/find-jsii-packages && chmod +x bin/cdk-version && pkglint", + "build": "tsc && tslint -p . && chmod +x bin/find-jsii-packages && chmod +x bin/cdk-version && pkglint", "watch": "tsc -w", "lint": "tslint -p . --force", "pkglint": "pkglint -f" diff --git a/tools/y-npm/README.md b/tools/y-npm/README.md index 5c2f989632e42..2db2fb794eade 100644 --- a/tools/y-npm/README.md +++ b/tools/y-npm/README.md @@ -30,7 +30,7 @@ Simply replace invokations of `npm` with `y-npm`, using the exact same arguments ```shell y-npm install y-npm install --save-dev @types/node -y-npm run prepare +y-npm run build ``` ## Overlay location diff --git a/tools/y-npm/package.json b/tools/y-npm/package.json index b8e986e725279..0b49b8b7ad49f 100644 --- a/tools/y-npm/package.json +++ b/tools/y-npm/package.json @@ -15,7 +15,7 @@ "y-npm": "bin/y-npm" }, "scripts": { - "prepare": "tslint -p . && tsc && chmod +x bin/y-npm", + "build": "tslint -p . && tsc && chmod +x bin/y-npm", "watch": "tsc -w", "lint": "tslint -p .", "test": "/bin/bash test/test.sh" From bb7c33228b8f6daa315f388f7eaba4e83aa18554 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=91=A8=F0=9F=8F=BC=E2=80=8D=F0=9F=92=BB=20Romain=20M?= =?UTF-8?q?arcadier-Muller?= Date: Tue, 10 Jul 2018 09:43:43 +0200 Subject: [PATCH 2/6] PR Feedback incorporation: - Namespace resource and property classes under 'cloudformation' - Merge @aws-cdk/runtime into @aws-cdk/core - Rename @aws-cdk/clouformation-resource-spec to @aws-cdk/cdk-cfnspec - Generate code into lib/.generated.ts --- create-missing-libraries.sh | 119 ++++++++++++++++ create_missing_libraries.sh | 97 ------------- .../cdk/examples/HelloJavaStack.java | 6 +- .../advanced-usage/index.ts | 36 +++-- ...tRoomPool.ts => cognito-chat-room-pool.ts} | 12 +- ...bPostsTable.ts => dynamodb-posts-table.ts} | 0 .../cdk-examples-typescript/chat-app/index.ts | 4 +- .../cloudformation/index.ts | 12 +- examples/cdk-examples-typescript/package.json | 1 - .../cdk-examples-typescript/sns-sqs/index.ts | 32 ++--- packages/@aws-cdk/acm/.gitignore | 2 +- packages/@aws-cdk/acm/lib/certificate.ts | 6 +- packages/@aws-cdk/acm/lib/index.ts | 4 +- packages/@aws-cdk/acm/package.json | 3 +- packages/@aws-cdk/apigateway/.gitignore | 2 +- packages/@aws-cdk/apigateway/lib/index.ts | 4 +- packages/@aws-cdk/apigateway/package.json | 3 +- .../applicationautoscaling/.gitignore | 2 +- .../applicationautoscaling/lib/index.ts | 4 +- .../applicationautoscaling/package.json | 3 +- packages/@aws-cdk/appsync/.gitignore | 2 +- packages/@aws-cdk/appsync/lib/index.ts | 4 +- packages/@aws-cdk/appsync/package.json | 3 +- packages/@aws-cdk/athena/.gitignore | 2 +- packages/@aws-cdk/athena/lib/index.ts | 4 +- packages/@aws-cdk/athena/package.json | 3 +- packages/@aws-cdk/autoscaling/.gitignore | 5 +- packages/@aws-cdk/autoscaling/lib/index.ts | 4 +- packages/@aws-cdk/autoscaling/package.json | 14 +- .../autoscaling/test/test.autoscaling.ts | 1 + packages/@aws-cdk/autoscaling/tsconfig.json | 27 ---- packages/@aws-cdk/autoscaling/tslint.json | 38 ----- packages/@aws-cdk/autoscalingplans/.gitignore | 2 +- .../@aws-cdk/autoscalingplans/lib/index.ts | 4 +- .../@aws-cdk/autoscalingplans/package.json | 3 +- packages/@aws-cdk/batch/.gitignore | 2 +- packages/@aws-cdk/batch/lib/index.ts | 4 +- packages/@aws-cdk/batch/package.json | 3 +- packages/@aws-cdk/budgets/.gitignore | 2 +- packages/@aws-cdk/budgets/lib/index.ts | 4 +- packages/@aws-cdk/budgets/package.json | 3 +- .../.gitignore | 0 .../.npmignore | 0 .../build-tools/build.ts | 0 .../build-tools/update.sh | 0 .../lib/index.ts | 0 .../lib/schema/base-types.ts | 0 .../lib/schema/index.ts | 0 .../lib/schema/property.ts | 0 .../lib/schema/resource-type.ts | 0 .../lib/schema/specification.ts | 0 .../package-lock.json | 0 .../package.json | 2 +- ...0_CloudFormationResourceSpecification.json | 0 .../spec-input/000_sam.spec.json | 0 ...ty_IdentityPoolRoleAttachment_patches.json | 0 ...verless_Function_S3Event_Events_patch.json | 0 ...ess_Function_S3Location_Version_patch.json | 0 .../500_SSM_AssociationName_patch.json | 0 .../500_SSM_AssociationName_patch.md | 0 .../510_ElasticSearch_Domain_patches.json | 0 .../test/spec-validators.ts | 0 .../test/test.filtered-specification.ts | 0 .../test/test.namespaces.ts | 0 .../tsconfig.json | 0 .../@aws-cdk/certificatemanager/.gitignore | 2 +- .../@aws-cdk/certificatemanager/lib/index.ts | 4 +- .../@aws-cdk/certificatemanager/package.json | 3 +- packages/@aws-cdk/cloud9/.gitignore | 2 +- packages/@aws-cdk/cloud9/lib/index.ts | 4 +- packages/@aws-cdk/cloud9/package.json | 3 +- .../cloudformation-diff/lib/diff/index.ts | 2 +- .../@aws-cdk/cloudformation-diff/package.json | 2 +- packages/@aws-cdk/cloudformation/.gitignore | 2 +- packages/@aws-cdk/cloudformation/lib/index.ts | 4 +- packages/@aws-cdk/cloudformation/package.json | 3 +- packages/@aws-cdk/cloudfront/.gitignore | 2 +- packages/@aws-cdk/cloudfront/lib/index.ts | 4 +- .../cloudfront/lib/web_distribution.ts | 24 ++-- packages/@aws-cdk/cloudfront/package.json | 1 - packages/@aws-cdk/cloudtrail/.gitignore | 2 +- packages/@aws-cdk/cloudtrail/lib/index.ts | 12 +- packages/@aws-cdk/cloudtrail/package.json | 1 - packages/@aws-cdk/cloudwatch/.gitignore | 2 +- packages/@aws-cdk/cloudwatch/lib/alarm.ts | 4 +- packages/@aws-cdk/cloudwatch/lib/dashboard.ts | 6 +- packages/@aws-cdk/cloudwatch/lib/index.ts | 4 +- packages/@aws-cdk/cloudwatch/package.json | 3 +- packages/@aws-cdk/codebuild/.gitignore | 2 +- packages/@aws-cdk/codebuild/lib/artifacts.ts | 10 +- packages/@aws-cdk/codebuild/lib/index.ts | 4 +- packages/@aws-cdk/codebuild/lib/project.ts | 8 +- packages/@aws-cdk/codebuild/lib/source.ts | 16 +-- packages/@aws-cdk/codebuild/package.json | 1 - packages/@aws-cdk/codecommit/.gitignore | 2 +- .../@aws-cdk/codecommit/lib/codecommit.ts | 8 +- packages/@aws-cdk/codecommit/lib/index.ts | 4 +- packages/@aws-cdk/codecommit/package.json | 3 +- packages/@aws-cdk/codedeploy/.gitignore | 2 +- packages/@aws-cdk/codedeploy/lib/index.ts | 4 +- packages/@aws-cdk/codedeploy/package.json | 3 +- packages/@aws-cdk/codepipeline/.gitignore | 2 +- packages/@aws-cdk/codepipeline/lib/actions.ts | 4 +- packages/@aws-cdk/codepipeline/lib/index.ts | 4 +- .../@aws-cdk/codepipeline/lib/pipeline.ts | 10 +- packages/@aws-cdk/codepipeline/lib/stage.ts | 4 +- packages/@aws-cdk/codepipeline/package.json | 1 - packages/@aws-cdk/cognito/.gitignore | 2 +- packages/@aws-cdk/cognito/lib/index.ts | 4 +- packages/@aws-cdk/cognito/package.json | 3 +- packages/@aws-cdk/config/.gitignore | 2 +- packages/@aws-cdk/config/lib/index.ts | 4 +- packages/@aws-cdk/config/package.json | 3 +- packages/@aws-cdk/core/lib/core/construct.ts | 4 +- packages/@aws-cdk/core/lib/index.ts | 2 + .../lib/index.ts => core/lib/runtime.ts} | 22 +++ .../@aws-cdk/custom-resources/lib/resource.ts | 2 +- .../@aws-cdk/custom-resources/package.json | 1 - packages/@aws-cdk/datapipeline/.gitignore | 2 +- packages/@aws-cdk/datapipeline/lib/index.ts | 4 +- packages/@aws-cdk/datapipeline/package.json | 3 +- packages/@aws-cdk/dax/.gitignore | 2 +- packages/@aws-cdk/dax/lib/index.ts | 4 +- packages/@aws-cdk/dax/package.json | 3 +- packages/@aws-cdk/directoryservice/.gitignore | 2 +- .../@aws-cdk/directoryservice/lib/index.ts | 4 +- .../@aws-cdk/directoryservice/package.json | 3 +- packages/@aws-cdk/dms/.gitignore | 2 +- packages/@aws-cdk/dms/lib/index.ts | 4 +- packages/@aws-cdk/dms/package.json | 3 +- packages/@aws-cdk/dynamodb/.gitignore | 2 +- packages/@aws-cdk/dynamodb/lib/index.ts | 14 +- packages/@aws-cdk/dynamodb/package.json | 3 +- packages/@aws-cdk/ec2/.gitignore | 2 +- packages/@aws-cdk/ec2/lib/fleet.ts | 12 +- packages/@aws-cdk/ec2/lib/index.ts | 4 +- packages/@aws-cdk/ec2/lib/load-balancer.ts | 8 +- packages/@aws-cdk/ec2/lib/security-group.ts | 26 ++-- packages/@aws-cdk/ec2/lib/vpc.ts | 24 ++-- packages/@aws-cdk/ec2/package.json | 1 - packages/@aws-cdk/ecr/.gitignore | 2 +- packages/@aws-cdk/ecr/lib/index.ts | 4 +- packages/@aws-cdk/ecr/package.json | 3 +- packages/@aws-cdk/ecs/.gitignore | 2 +- packages/@aws-cdk/ecs/lib/index.ts | 4 +- packages/@aws-cdk/ecs/package.json | 3 +- packages/@aws-cdk/efs/.gitignore | 2 +- packages/@aws-cdk/efs/lib/index.ts | 4 +- packages/@aws-cdk/efs/package.json | 3 +- packages/@aws-cdk/eks/.gitignore | 2 +- packages/@aws-cdk/eks/lib/index.ts | 4 +- packages/@aws-cdk/eks/package.json | 3 +- packages/@aws-cdk/elasticache/.gitignore | 2 +- packages/@aws-cdk/elasticache/lib/index.ts | 4 +- packages/@aws-cdk/elasticache/package.json | 3 +- packages/@aws-cdk/elasticbeanstalk/.gitignore | 2 +- .../@aws-cdk/elasticbeanstalk/lib/index.ts | 4 +- .../@aws-cdk/elasticbeanstalk/package.json | 3 +- .../@aws-cdk/elasticloadbalancing/.gitignore | 2 +- .../elasticloadbalancing/lib/index.ts | 4 +- .../elasticloadbalancing/package.json | 3 +- .../elasticloadbalancingv2/.gitignore | 2 +- .../elasticloadbalancingv2/lib/index.ts | 4 +- .../elasticloadbalancingv2/package.json | 3 +- packages/@aws-cdk/elasticsearch/.gitignore | 2 +- packages/@aws-cdk/elasticsearch/lib/index.ts | 4 +- packages/@aws-cdk/elasticsearch/package.json | 3 +- packages/@aws-cdk/emr/.gitignore | 2 +- packages/@aws-cdk/emr/lib/index.ts | 4 +- packages/@aws-cdk/emr/package.json | 3 +- packages/@aws-cdk/events/.gitignore | 2 +- packages/@aws-cdk/events/lib/index.ts | 4 +- packages/@aws-cdk/events/lib/rule-ref.ts | 2 +- packages/@aws-cdk/events/lib/rule.ts | 8 +- packages/@aws-cdk/events/lib/target.ts | 8 +- packages/@aws-cdk/events/package.json | 1 - packages/@aws-cdk/gamelift/.gitignore | 2 +- packages/@aws-cdk/gamelift/lib/index.ts | 4 +- packages/@aws-cdk/gamelift/package.json | 3 +- packages/@aws-cdk/glue/.gitignore | 2 +- packages/@aws-cdk/glue/lib/index.ts | 4 +- packages/@aws-cdk/glue/package.json | 3 +- packages/@aws-cdk/guardduty/.gitignore | 2 +- packages/@aws-cdk/guardduty/lib/index.ts | 4 +- packages/@aws-cdk/guardduty/package.json | 3 +- packages/@aws-cdk/iam/.gitignore | 2 +- packages/@aws-cdk/iam/lib/group.ts | 4 +- packages/@aws-cdk/iam/lib/index.ts | 4 +- packages/@aws-cdk/iam/lib/policy.ts | 4 +- packages/@aws-cdk/iam/lib/role.ts | 4 +- packages/@aws-cdk/iam/lib/user.ts | 6 +- packages/@aws-cdk/iam/package.json | 1 - packages/@aws-cdk/inspector/.gitignore | 2 +- packages/@aws-cdk/inspector/lib/index.ts | 4 +- packages/@aws-cdk/inspector/package.json | 3 +- packages/@aws-cdk/iot/.gitignore | 2 +- packages/@aws-cdk/iot/lib/index.ts | 4 +- packages/@aws-cdk/iot/package.json | 3 +- packages/@aws-cdk/kinesis/.gitignore | 2 +- packages/@aws-cdk/kinesis/lib/index.ts | 4 +- packages/@aws-cdk/kinesis/lib/stream.ts | 10 +- packages/@aws-cdk/kinesis/package.json | 3 +- packages/@aws-cdk/kinesisanalytics/.gitignore | 2 +- .../@aws-cdk/kinesisanalytics/lib/index.ts | 4 +- .../@aws-cdk/kinesisanalytics/package.json | 3 +- packages/@aws-cdk/kinesisfirehose/.gitignore | 2 +- .../@aws-cdk/kinesisfirehose/lib/index.ts | 4 +- .../@aws-cdk/kinesisfirehose/package.json | 3 +- packages/@aws-cdk/kms/.gitignore | 2 +- packages/@aws-cdk/kms/lib/alias.ts | 4 +- packages/@aws-cdk/kms/lib/index.ts | 4 +- packages/@aws-cdk/kms/lib/key.ts | 4 +- packages/@aws-cdk/kms/package.json | 3 +- packages/@aws-cdk/lambda/.gitignore | 2 +- packages/@aws-cdk/lambda/lib/alias.ts | 12 +- packages/@aws-cdk/lambda/lib/code.ts | 8 +- packages/@aws-cdk/lambda/lib/index.ts | 4 +- packages/@aws-cdk/lambda/lib/lambda-ref.ts | 4 +- .../@aws-cdk/lambda/lib/lambda-version.ts | 8 +- packages/@aws-cdk/lambda/lib/lambda.ts | 4 +- packages/@aws-cdk/lambda/package.json | 1 - packages/@aws-cdk/logs/.gitignore | 2 +- packages/@aws-cdk/logs/lib/index.ts | 4 +- packages/@aws-cdk/logs/package.json | 3 +- packages/@aws-cdk/neptune/package.json | 3 +- packages/@aws-cdk/opsworks/.gitignore | 2 +- packages/@aws-cdk/opsworks/lib/index.ts | 4 +- packages/@aws-cdk/opsworks/package.json | 3 +- packages/@aws-cdk/quickstarts/lib/database.ts | 6 +- packages/@aws-cdk/quickstarts/lib/rdgw.ts | 4 +- packages/@aws-cdk/rds/.gitignore | 2 +- packages/@aws-cdk/rds/lib/cluster-ref.ts | 2 +- packages/@aws-cdk/rds/lib/cluster.ts | 8 +- packages/@aws-cdk/rds/lib/index.ts | 4 +- packages/@aws-cdk/rds/package.json | 3 +- packages/@aws-cdk/redshift/.gitignore | 2 +- packages/@aws-cdk/redshift/lib/index.ts | 4 +- packages/@aws-cdk/redshift/package.json | 3 +- packages/@aws-cdk/route53/.gitignore | 2 +- packages/@aws-cdk/route53/lib/hosted-zone.ts | 10 +- packages/@aws-cdk/route53/lib/index.ts | 4 +- packages/@aws-cdk/route53/lib/records/txt.ts | 4 +- .../route53/lib/records/zone-delegation.ts | 4 +- packages/@aws-cdk/route53/package.json | 3 +- packages/@aws-cdk/rtv/lib/rtv.ts | 8 +- packages/@aws-cdk/rtv/test/test.rtv.ts | 8 +- packages/@aws-cdk/runtime/.gitignore | 7 - packages/@aws-cdk/runtime/.npmignore | 6 - packages/@aws-cdk/runtime/package.json | 38 ----- packages/@aws-cdk/runtime/test/test.dates.ts | 33 ----- packages/@aws-cdk/s3/.gitignore | 2 +- packages/@aws-cdk/s3/lib/bucket-policy.ts | 4 +- packages/@aws-cdk/s3/lib/bucket.ts | 10 +- packages/@aws-cdk/s3/lib/index.ts | 4 +- packages/@aws-cdk/s3/package.json | 3 +- packages/@aws-cdk/s3/test/test.bucket.ts | 57 ++++---- packages/@aws-cdk/s3/test/test.util.ts | 7 +- packages/@aws-cdk/sdb/.gitignore | 2 +- packages/@aws-cdk/sdb/lib/index.ts | 4 +- packages/@aws-cdk/sdb/package.json | 3 +- packages/@aws-cdk/serverless/.gitignore | 2 +- packages/@aws-cdk/serverless/lib/index.ts | 4 +- packages/@aws-cdk/serverless/package.json | 3 +- packages/@aws-cdk/servicecatalog/.gitignore | 2 +- packages/@aws-cdk/servicecatalog/lib/index.ts | 4 +- packages/@aws-cdk/servicecatalog/package.json | 3 +- packages/@aws-cdk/servicediscovery/.gitignore | 2 +- .../@aws-cdk/servicediscovery/lib/index.ts | 4 +- .../@aws-cdk/servicediscovery/package.json | 3 +- packages/@aws-cdk/ses/.gitignore | 2 +- packages/@aws-cdk/ses/lib/index.ts | 4 +- packages/@aws-cdk/ses/package.json | 3 +- packages/@aws-cdk/sns/.gitignore | 2 +- packages/@aws-cdk/sns/lib/index.ts | 4 +- packages/@aws-cdk/sns/lib/policy.ts | 4 +- packages/@aws-cdk/sns/lib/subscription.ts | 4 +- packages/@aws-cdk/sns/lib/topic-ref.ts | 2 +- packages/@aws-cdk/sns/lib/topic.ts | 4 +- packages/@aws-cdk/sns/package.json | 1 - packages/@aws-cdk/sqs/.gitignore | 2 +- packages/@aws-cdk/sqs/lib/index.ts | 4 +- packages/@aws-cdk/sqs/lib/policy.ts | 4 +- packages/@aws-cdk/sqs/lib/queue-ref.ts | 2 +- packages/@aws-cdk/sqs/lib/queue.ts | 4 +- packages/@aws-cdk/sqs/package.json | 3 +- packages/@aws-cdk/ssm/.gitignore | 2 +- packages/@aws-cdk/ssm/lib/index.ts | 4 +- packages/@aws-cdk/ssm/package.json | 3 +- packages/@aws-cdk/stepfunctions/.gitignore | 2 +- packages/@aws-cdk/stepfunctions/lib/index.ts | 4 +- packages/@aws-cdk/stepfunctions/package.json | 3 +- packages/@aws-cdk/util/package.json | 3 +- packages/@aws-cdk/waf/.gitignore | 2 +- packages/@aws-cdk/waf/lib/index.ts | 4 +- packages/@aws-cdk/waf/package.json | 3 +- packages/@aws-cdk/wafregional/.gitignore | 2 +- packages/@aws-cdk/wafregional/lib/index.ts | 4 +- packages/@aws-cdk/wafregional/package.json | 3 +- packages/@aws-cdk/workspaces/.gitignore | 2 +- packages/@aws-cdk/workspaces/lib/index.ts | 4 +- packages/@aws-cdk/workspaces/package.json | 3 +- packages/aws-cdk-docs/build-docs.sh | 2 +- packages/aws-cdk/lib/api/deploy-stack.ts | 4 +- .../aws-cdk/lib/api/util/toolkit-stack.ts | 18 +-- tools/cfn2ts/bin/cfn2ts.ts | 2 +- tools/cfn2ts/lib/codegen.ts | 132 ++++++++++-------- tools/cfn2ts/lib/genspec.ts | 14 +- tools/cfn2ts/lib/index.ts | 17 ++- tools/cfn2ts/lib/spec-utils.ts | 2 +- tools/cfn2ts/package.json | 2 +- 310 files changed, 788 insertions(+), 950 deletions(-) create mode 100755 create-missing-libraries.sh delete mode 100755 create_missing_libraries.sh rename examples/cdk-examples-typescript/chat-app/{CognitoChatRoomPool.ts => cognito-chat-room-pool.ts} (68%) rename examples/cdk-examples-typescript/chat-app/{DynamodbPostsTable.ts => dynamodb-posts-table.ts} (100%) delete mode 100644 packages/@aws-cdk/autoscaling/tsconfig.json delete mode 100644 packages/@aws-cdk/autoscaling/tslint.json rename packages/@aws-cdk/{cloudformation-resource-spec => cdk-cfnspec}/.gitignore (100%) rename packages/@aws-cdk/{cloudformation-resource-spec => cdk-cfnspec}/.npmignore (100%) rename packages/@aws-cdk/{cloudformation-resource-spec => cdk-cfnspec}/build-tools/build.ts (100%) rename packages/@aws-cdk/{cloudformation-resource-spec => cdk-cfnspec}/build-tools/update.sh (100%) rename packages/@aws-cdk/{cloudformation-resource-spec => cdk-cfnspec}/lib/index.ts (100%) rename packages/@aws-cdk/{cloudformation-resource-spec => cdk-cfnspec}/lib/schema/base-types.ts (100%) rename packages/@aws-cdk/{cloudformation-resource-spec => cdk-cfnspec}/lib/schema/index.ts (100%) rename packages/@aws-cdk/{cloudformation-resource-spec => cdk-cfnspec}/lib/schema/property.ts (100%) rename packages/@aws-cdk/{cloudformation-resource-spec => cdk-cfnspec}/lib/schema/resource-type.ts (100%) rename packages/@aws-cdk/{cloudformation-resource-spec => cdk-cfnspec}/lib/schema/specification.ts (100%) rename packages/@aws-cdk/{cloudformation-resource-spec => cdk-cfnspec}/package-lock.json (100%) rename packages/@aws-cdk/{cloudformation-resource-spec => cdk-cfnspec}/package.json (94%) rename packages/@aws-cdk/{cloudformation-resource-spec => cdk-cfnspec}/spec-input/000_CloudFormationResourceSpecification.json (100%) rename packages/@aws-cdk/{cloudformation-resource-spec => cdk-cfnspec}/spec-input/000_sam.spec.json (100%) rename packages/@aws-cdk/{cloudformation-resource-spec => cdk-cfnspec}/spec-input/500_Cognity_IdentityPoolRoleAttachment_patches.json (100%) rename packages/@aws-cdk/{cloudformation-resource-spec => cdk-cfnspec}/spec-input/500_SAM_Serverless_Function_S3Event_Events_patch.json (100%) rename packages/@aws-cdk/{cloudformation-resource-spec => cdk-cfnspec}/spec-input/500_SAM_Serverless_Function_S3Location_Version_patch.json (100%) rename packages/@aws-cdk/{cloudformation-resource-spec => cdk-cfnspec}/spec-input/500_SSM_AssociationName_patch.json (100%) rename packages/@aws-cdk/{cloudformation-resource-spec => cdk-cfnspec}/spec-input/500_SSM_AssociationName_patch.md (100%) rename packages/@aws-cdk/{cloudformation-resource-spec => cdk-cfnspec}/spec-input/510_ElasticSearch_Domain_patches.json (100%) rename packages/@aws-cdk/{cloudformation-resource-spec => cdk-cfnspec}/test/spec-validators.ts (100%) rename packages/@aws-cdk/{cloudformation-resource-spec => cdk-cfnspec}/test/test.filtered-specification.ts (100%) rename packages/@aws-cdk/{cloudformation-resource-spec => cdk-cfnspec}/test/test.namespaces.ts (100%) rename packages/@aws-cdk/{cloudformation-resource-spec => cdk-cfnspec}/tsconfig.json (100%) rename packages/@aws-cdk/{runtime/lib/index.ts => core/lib/runtime.ts} (93%) delete mode 100644 packages/@aws-cdk/runtime/.gitignore delete mode 100644 packages/@aws-cdk/runtime/.npmignore delete mode 100644 packages/@aws-cdk/runtime/package.json delete mode 100644 packages/@aws-cdk/runtime/test/test.dates.ts diff --git a/create-missing-libraries.sh b/create-missing-libraries.sh new file mode 100755 index 0000000000000..c19bb7d534fb8 --- /dev/null +++ b/create-missing-libraries.sh @@ -0,0 +1,119 @@ +#!/bin/bash +set -euo pipefail + +export PATH=node_modules/.bin:$PATH + +lerna exec --scope=cfn2ts \ + --scope=pkglint \ + --scope=@aws-cdk/cdk-cfnspec \ + --scope=@aws-cdk/assert \ + --scope=@aws-cdk/cloudformation-diff \ + --scope=@aws-cdk/core \ + --scope=@aws-cdk/cx-api \ + --stream \ + npm run build + +VERSION=$(node -e 'console.log(require("./lerna.json").version);') + +for S in $(node -e 'console.log(require("./packages/@aws-cdk/cdk-cfnspec").namespaces.join("\n"));'); do + P=$(tr 'A-Z' 'a-z' <<< "${S/AWS::/@aws-cdk/}") + PB=$(basename ${P}) + if [ ! -d packages/${P} ]; then + echo "⏳ Creating package ${P} for scope ${S}..." + mkdir -p packages/${P}/test + mkdir -p packages/${P}/lib + cat < packages/${P}/.gitignore +*.js +*.js.map +*.d.ts +*.generated.ts +tsconfig.json +tslint.json +node_modules +dist +EOM + + cat <> packages/${P}/.npmignore +# Don't include original .ts files when doing \`npm pack\` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz +EOM + + cat <> packages/${P}/package.json +{ + "name": "${P}", + "version": "${VERSION}", + "description": "The CDK Construct Library for ${S}", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "bundledDependencies": [], + "names": { + "java": "com.amazonaws.cdk.${PB}", + "dotnet": "${S/AWS::/Aws.Cdk.}" + } + }, + "repository": { + "type": "git", + "url": "git://github.com/awslabs/aws-cdk" + }, + "scripts": { + "build": "cfn2ts --scope=${S} && jsii && tslint -p . && pkglint", + "watch": "jsii -w", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", + "pkglint": "pkglint -f" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "${PB}" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "license": "LicenseRef-LICENSE", + "devDependencies": { + "@aws-cdk/assert": "^${VERSION}", + "cfn2ts": "^${VERSION}", + "pkglint": "^${VERSION}" + }, + "dependencies": { + "@aws-cdk/core": "^${VERSION}" + } +} +EOM + + cat <> packages/${P}/lib/index.ts +// ${S} CloudFormation Resources: +export * from './${PB}.generated'; +EOM + + cat <> packages/${P}/test/test.${PB}.ts +import { Test, testCase } from 'nodeunit'; +import {} from '../lib'; + +exports = testCase({ + notTested(test: Test) { + test.ok(true, 'No tests are specified for this package.'); + test.done(); + } +}); +EOM + + echo "⌛️ Bootstrapping & building ${P}" + lerna bootstrap --scope=${P} + lerna run build --scope=${P} + + git add packages/${P} + + echo "✅ Have fun with your new package ${P}" + fi +done diff --git a/create_missing_libraries.sh b/create_missing_libraries.sh deleted file mode 100755 index 60af9a6cc3037..0000000000000 --- a/create_missing_libraries.sh +++ /dev/null @@ -1,97 +0,0 @@ -#!/bin/bash -set -euo pipefail - -VERSION=$(node -e 'console.log(require("./lerna.json").version);') - -for S in $(node -e 'console.log(require("./packages/@aws-cdk/cloudformation-resource-spec").namespaces.join("\n"));'); do - P=$(tr 'A-Z' 'a-z' <<< "${S/AWS::/@aws-cdk/}") - PB=$(basename ${P}) - if [ ! -d packages/${P} ]; then - echo "⏳ Creating package ${P} for scope ${S}..." - mkdir -p packages/${P}/test - mkdir -p packages/${P}/lib - echo '*.js' >> packages/${P}/.gitignore - echo '*.js.map' >> packages/${P}/.gitignore - echo '*.d.ts' >> packages/${P}/.gitignore - echo 'tsconfig.json' >> packages/${P}/.gitignore - echo 'tslint.json' >> packages/${P}/.gitignore - echo 'node_modules' >> packages/${P}/.gitignore - echo 'cfn' >> packages/${P}/.gitignore - echo 'dist' >> packages/${P}/.gitignore - - echo "# Don't include original .ts files when doing \`npm pack\`" >> packages/${P}/.npmignore - echo '*.ts' >> packages/${P}/.npmignore - echo '!*.d.ts' >> packages/${P}/.npmignore - echo 'coverage' >> packages/${P}/.npmignore - echo '.nyc_output' >> packages/${P}/.npmignore - echo '*.tgz' >> packages/${P}/.npmignore - - echo '{' >> packages/${P}/package.json - echo " \"name\": \"${P}\"," >> packages/${P}/package.json - echo " \"version\": \"${VERSION}\"," >> packages/${P}/package.json - echo " \"description\": \"The CDK Construct Library for ${S}\"," >> packages/${P}/package.json - echo " \"main\": \"lib/index.js\"," >> packages/${P}/package.json - echo " \"types\": \"lib/index.d.ts\"," >> packages/${P}/package.json - echo " \"jsii\": {" >> packages/${P}/package.json - echo " \"outdir\": \"dist\"," >> packages/${P}/package.json - echo " \"bundledDependencies\": []," >> packages/${P}/package.json - echo " \"names\": {" >> packages/${P}/package.json - echo " \"java\": \"com.amazonaws.cdk.${PB}\"," >> packages/${P}/package.json - echo " \"dotnet\": \"${S/AWS::/Aws.Cdk.}\"" >> packages/${P}/package.json - echo " }" >> packages/${P}/package.json - echo " }," >> packages/${P}/package.json - echo " \"repository\": {" >> packages/${P}/package.json - echo " \"type\": \"git\"," >> packages/${P}/package.json - echo " \"url\": \"git://github.com/awslabs/aws-cdk\"" >> packages/${P}/package.json - echo " }," >> packages/${P}/package.json - echo " \"scripts\": {" >> packages/${P}/package.json - echo " \"build\": \"cfn2ts --scope=${S} && jsii && tslint -p . && pkglint\"," >> packages/${P}/package.json - echo " \"watch\": \"jsii -w\"," >> packages/${P}/package.json - echo " \"lint\": \"jsii && tslint -p . --force\"," >> packages/${P}/package.json - echo " \"test\": \"nodeunit test/test.*.js && cdk-integ-assert\"," >> packages/${P}/package.json - echo " \"integ\": \"cdk-integ\"," >> packages/${P}/package.json - echo " \"pkglint\": \"pkglint -f\"" >> packages/${P}/package.json - echo " }," >> packages/${P}/package.json - echo " \"keywords\": [" >> packages/${P}/package.json - echo " \"aws\"," >> packages/${P}/package.json - echo " \"cdk\"," >> packages/${P}/package.json - echo " \"constructs\"," >> packages/${P}/package.json - echo " \"${PB}\"" >> packages/${P}/package.json - echo " ]," >> packages/${P}/package.json - echo " \"author\": {" >> packages/${P}/package.json - echo " \"name\": \"Amazon Web Services\"," >> packages/${P}/package.json - echo " \"url\": \"https://aws.amazon.com\"" >> packages/${P}/package.json - echo " }," >> packages/${P}/package.json - echo " \"license\": \"LicenseRef-LICENSE\"," >> packages/${P}/package.json - echo " \"devDependencies\": {" >> packages/${P}/package.json - echo " \"@aws-cdk/assert\": \"^${VERSION}\"," >> packages/${P}/package.json - echo " \"cfn2ts\": \"^${VERSION}\"," >> packages/${P}/package.json - echo " \"pkglint\": \"^${VERSION}\"" >> packages/${P}/package.json - echo " }," >> packages/${P}/package.json - echo " \"dependencies\": {" >> packages/${P}/package.json - echo " \"@aws-cdk/core\": \"^${VERSION}\"," >> packages/${P}/package.json - echo " \"@aws-cdk/runtime\": \"^${VERSION}\"" >> packages/${P}/package.json - echo " }" >> packages/${P}/package.json - echo '}' >> packages/${P}/package.json - - echo "// The L1 Library for ${S}:" >> packages/${P}/lib/index.ts - echo "export * from '../cfn/${PB}';" >> packages/${P}/lib/index.ts - - echo "import { Test, testCase } from 'nodeunit';" >> packages/${P}/test/test.${PB}.ts - echo "" >> packages/${P}/test/test.${PB}.ts - echo "exports = testCase({" >> packages/${P}/test/test.${PB}.ts - echo " notTested(test: Test) {" >> packages/${P}/test/test.${PB}.ts - echo " test.ok(true, 'No tests are specified for this package.');" >> packages/${P}/test/test.${PB}.ts - echo " test.done();" >> packages/${P}/test/test.${PB}.ts - echo " }" >> packages/${P}/test/test.${PB}.ts - echo "});" >> packages/${P}/test/test.${PB}.ts - - echo "⌛️ Bootstrapping & building ${P}" - lerna bootstrap --scope=${P} - lerna run build --scope=${P} - - git add packages/${P} - - echo "✅ Have fun with your new package ${P}" - fi -done diff --git a/examples/cdk-examples-java/project/src/main/java/com/amazonaws/cdk/examples/HelloJavaStack.java b/examples/cdk-examples-java/project/src/main/java/com/amazonaws/cdk/examples/HelloJavaStack.java index 1eb463a6cae04..1cded19691266 100644 --- a/examples/cdk-examples-java/project/src/main/java/com/amazonaws/cdk/examples/HelloJavaStack.java +++ b/examples/cdk-examples-java/project/src/main/java/com/amazonaws/cdk/examples/HelloJavaStack.java @@ -10,8 +10,8 @@ import com.amazonaws.cdk.ec2.VpcNetwork; import com.amazonaws.cdk.ec2.WindowsImage; import com.amazonaws.cdk.ec2.WindowsVersion; -import com.amazonaws.cdk.resources.s3.BucketResource; -import com.amazonaws.cdk.resources.s3.BucketResourceProps; +import com.amazonaws.cdk.s3.cloudformation.BucketResource; +import com.amazonaws.cdk.s3.cloudformation.BucketResourceProps; import com.amazonaws.cdk.sns.Topic; import com.amazonaws.cdk.sqs.Queue; import com.amazonaws.cdk.sqs.QueueProps; @@ -63,4 +63,4 @@ public List validate() { return Collections.emptyList(); } } -} \ No newline at end of file +} diff --git a/examples/cdk-examples-typescript/advanced-usage/index.ts b/examples/cdk-examples-typescript/advanced-usage/index.ts index b02ef847d7e9f..5d1a3c509669f 100644 --- a/examples/cdk-examples-typescript/advanced-usage/index.ts +++ b/examples/cdk-examples-typescript/advanced-usage/index.ts @@ -1,12 +1,10 @@ -import { StackResource } from '@aws-cdk/cloudformation'; +import { cloudformation } from '@aws-cdk/cloudformation'; import * as cdk from '@aws-cdk/core'; -import { PolicyStatement, ServicePrincipal } from '@aws-cdk/core'; -import { InstanceResource, WindowsImage, WindowsVersion } from '@aws-cdk/ec2'; -import { } from '@aws-cdk/ec2'; -import { Role } from '@aws-cdk/iam'; -import { Bucket } from '@aws-cdk/s3'; -import { SubscriptionResource, TopicResource } from '@aws-cdk/sns'; -import { QueueResource } from '@aws-cdk/sqs'; +import * as ec2 from '@aws-cdk/ec2'; +import * as iam from '@aws-cdk/iam'; +import * as s3 from '@aws-cdk/s3'; +import * as sns from '@aws-cdk/sns'; +import * as sqs from '@aws-cdk/sqs'; /** * This stack demonstrates the use of the IAM policy library shipped with the CDK. @@ -17,16 +15,16 @@ class PolicyExample extends cdk.Stack { // here's how to create an IAM Role with an assume policy for the Lambda // service principal. - const role = new Role(this, 'Role', { - assumedBy: new ServicePrincipal('lambda.amazon.aws.com') + const role = new iam.Role(this, 'Role', { + assumedBy: new cdk.ServicePrincipal('lambda.amazon.aws.com') }); // when you call `addToPolicy`, a default policy is defined and attached // to the bucket. - const bucket = new Bucket(this, 'MyBucket'); + const bucket = new s3.Bucket(this, 'MyBucket'); // the role also has a policy attached to it. - role.addToPolicy(new PolicyStatement() + role.addToPolicy(new cdk.PolicyStatement() .addResource(bucket.arnForObjects('*')) .addResource(bucket.bucketArn) .addActions('s3:*')); @@ -47,7 +45,7 @@ class EnvContextExample extends cdk.Stack { const azs = new cdk.AvailabilityZoneProvider(this).availabilityZones; // get the AMI ID for a specific Windows version in this region - const ami = new WindowsImage(WindowsVersion.WindowsServer2016EnglishNanoBase).getImage(this); + const ami = new ec2.WindowsImage(ec2.WindowsVersion.WindowsServer2016EnglishNanoBase).getImage(this); for (const az of azs) { if (typeof(az) !== 'string') { @@ -57,7 +55,7 @@ class EnvContextExample extends cdk.Stack { // render construct name based on it's availablity zone const constructName = `InstanceFor${az.replace(/-/g, '').toUpperCase()}`; - new InstanceResource(this, constructName, { + new ec2.cloudformation.InstanceResource(this, constructName, { imageId: ami.imageId, availabilityZone: az, }); @@ -92,7 +90,7 @@ class IncludeExample extends cdk.Stack { // add constructs (and resources) programmatically new EnvContextExample(parent, 'Example'); - new QueueResource(this, 'CDKQueue', {}); + new sqs.cloudformation.QueueResource(this, 'CDKQueue', {}); } } @@ -106,7 +104,7 @@ class NestedStackExample extends cdk.Stack { // add an "AWS::CloudFormation::Stack" resource which uses the MongoDB quickstart // https://aws.amazon.com/quickstart/architecture/mongodb/ // only non-default values are provided here. - new StackResource(this, 'NestedStack', { + new cloudformation.StackResource(this, 'NestedStack', { templateUrl: 'https://s3.amazonaws.com/quickstart-reference/mongodb/latest/templates/mongodb-master.template', parameters: { KeyPairName: 'my-key-pair', @@ -127,10 +125,10 @@ class ResourceReferencesExample extends cdk.Stack { constructor(parent: cdk.App, name: string, props?: cdk.StackProps) { super(parent, name, props); - const topic = new TopicResource(this, 'Topic', {}); - const queue = new QueueResource(this, 'Queue', {}); + const topic = new sns.cloudformation.TopicResource(this, 'Topic', {}); + const queue = new sqs.cloudformation.QueueResource(this, 'Queue', {}); - new SubscriptionResource(this, 'Subscription', { + new sns.cloudformation.SubscriptionResource(this, 'Subscription', { topicArn: topic.ref, // resolves to { Ref: } protocol: 'sqs', endpoint: queue.queueArn // resolves to { "Fn::GetAtt": [ , "Arn" ] } diff --git a/examples/cdk-examples-typescript/chat-app/CognitoChatRoomPool.ts b/examples/cdk-examples-typescript/chat-app/cognito-chat-room-pool.ts similarity index 68% rename from examples/cdk-examples-typescript/chat-app/CognitoChatRoomPool.ts rename to examples/cdk-examples-typescript/chat-app/cognito-chat-room-pool.ts index a63ef2e29c96b..f894a5b8a1ac3 100644 --- a/examples/cdk-examples-typescript/chat-app/CognitoChatRoomPool.ts +++ b/examples/cdk-examples-typescript/chat-app/cognito-chat-room-pool.ts @@ -1,12 +1,12 @@ -import { UserPoolClientResource, UserPoolResource } from '@aws-cdk/cognito'; -import { Construct } from '@aws-cdk/core'; +import * as cognito from '@aws-cdk/cognito'; +import * as cdk from '@aws-cdk/core'; -export class CognitoChatRoomPool extends Construct { - constructor(parent: Construct, name: string) { +export class CognitoChatRoomPool extends cdk.Construct { + constructor(parent: cdk.Construct, name: string) { super(parent, name); // Create chat room user pool - const chatPool = new UserPoolResource(this, 'UserPool', { + const chatPool = new cognito.cloudformation.UserPoolResource(this, 'UserPool', { adminCreateUserConfig: { allowAdminCreateUserOnly: false }, @@ -26,7 +26,7 @@ export class CognitoChatRoomPool extends Construct { }); // Now for the client - new UserPoolClientResource(this, 'UserPoolClient', { + new cognito.cloudformation.UserPoolClientResource(this, 'UserPoolClient', { clientName: 'Chat-Room', explicitAuthFlows: [ 'ADMIN_NO_SRP_AUTH' ], refreshTokenValidity: 30, diff --git a/examples/cdk-examples-typescript/chat-app/DynamodbPostsTable.ts b/examples/cdk-examples-typescript/chat-app/dynamodb-posts-table.ts similarity index 100% rename from examples/cdk-examples-typescript/chat-app/DynamodbPostsTable.ts rename to examples/cdk-examples-typescript/chat-app/dynamodb-posts-table.ts diff --git a/examples/cdk-examples-typescript/chat-app/index.ts b/examples/cdk-examples-typescript/chat-app/index.ts index 24d2a7b749fbb..10fa4ea63c866 100644 --- a/examples/cdk-examples-typescript/chat-app/index.ts +++ b/examples/cdk-examples-typescript/chat-app/index.ts @@ -1,8 +1,8 @@ import { App, Construct, Stack, StackProps } from '@aws-cdk/core'; import { Lambda, LambdaRuntime, LambdaS3Code } from '@aws-cdk/lambda'; import { BucketName, BucketRef } from '@aws-cdk/s3'; -import { CognitoChatRoomPool } from './CognitoChatRoomPool'; -import { DynamoPostsTable } from './DynamodbPostsTable'; +import { CognitoChatRoomPool } from './cognito-chat-room-pool'; +import { DynamoPostsTable } from './dynamodb-posts-table'; class MyStack extends Stack { constructor(parent: App, name: string, props?: StackProps) { diff --git a/examples/cdk-examples-typescript/cloudformation/index.ts b/examples/cdk-examples-typescript/cloudformation/index.ts index 5148ac52343c5..a7a943a5e81d4 100644 --- a/examples/cdk-examples-typescript/cloudformation/index.ts +++ b/examples/cdk-examples-typescript/cloudformation/index.ts @@ -1,17 +1,17 @@ -import { App, Stack } from '@aws-cdk/core'; -import { QueueResource } from '@aws-cdk/sqs'; +import * as cdk from '@aws-cdk/core'; +import * as sqs from '@aws-cdk/sqs'; -class CloudFormationExample extends Stack { - constructor(parent: App) { +class CloudFormationExample extends cdk.Stack { + constructor(parent: cdk.App) { super(parent); - new QueueResource(this, 'MyQueue', { + new sqs.cloudformation.QueueResource(this, 'MyQueue', { visibilityTimeout: 300 }); } } -const app = new App(process.argv); +const app = new cdk.App(process.argv); new CloudFormationExample(app); diff --git a/examples/cdk-examples-typescript/package.json b/examples/cdk-examples-typescript/package.json index 6489e5b7111be..8a2c820f641fd 100644 --- a/examples/cdk-examples-typescript/package.json +++ b/examples/cdk-examples-typescript/package.json @@ -30,7 +30,6 @@ "@aws-cdk/lambda": "^0.7.3-beta", "@aws-cdk/neptune": "^0.7.3-beta", "@aws-cdk/rds": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta", "@aws-cdk/rtv": "^0.7.3-beta", "@aws-cdk/s3": "^0.7.3-beta", "@aws-cdk/sns": "^0.7.3-beta", diff --git a/examples/cdk-examples-typescript/sns-sqs/index.ts b/examples/cdk-examples-typescript/sns-sqs/index.ts index f833323e188c5..9ea4534ea61ca 100644 --- a/examples/cdk-examples-typescript/sns-sqs/index.ts +++ b/examples/cdk-examples-typescript/sns-sqs/index.ts @@ -1,13 +1,13 @@ -import { App, PolicyDocument, PolicyStatement, Stack } from "@aws-cdk/core"; -import { SubscriptionResource, Topic, TopicResource } from '@aws-cdk/sns'; -import { Queue, QueuePolicyResource, QueueResource } from '@aws-cdk/sqs'; +import * as cdk from "@aws-cdk/core"; +import * as sns from '@aws-cdk/sns'; +import * as sqs from '@aws-cdk/sqs'; -class ACL extends Stack { - constructor(parent: App, name: string) { +class ACL extends cdk.Stack { + constructor(parent: cdk.App, name: string) { super(parent, name); - const topic = new Topic(this, 'MyTopic'); - const queue = new Queue(this, 'MyQueue', { + const topic = new sns.Topic(this, 'MyTopic'); + const queue = new sqs.Queue(this, 'MyQueue', { visibilityTimeoutSec: 300 }); @@ -15,34 +15,34 @@ class ACL extends Stack { } } -class CFN extends Stack { - constructor(parent: App, name: string) { +class CFN extends cdk.Stack { + constructor(parent: cdk.App, name: string) { super(parent, name); - const topic = new TopicResource(this, 'MyTopic'); - const queue = new QueueResource(this, 'MyQueue'); + const topic = new sns.cloudformation.TopicResource(this, 'MyTopic'); + const queue = new sqs.cloudformation.QueueResource(this, 'MyQueue'); - new SubscriptionResource(this, 'TopicToQueue', { + new sns.cloudformation.SubscriptionResource(this, 'TopicToQueue', { topicArn: topic.ref, // ref == arn for topics endpoint: queue.queueName, protocol: 'sqs' }); - const policyDocument = new PolicyDocument(); - policyDocument.addStatement(new PolicyStatement() + const policyDocument = new cdk.PolicyDocument(); + policyDocument.addStatement(new cdk.PolicyStatement() .addResource(queue.queueArn) .addAction('sqs:SendMessage') .addServicePrincipal('sns.amazonaws.com') .setCondition('ArnEquals', { 'aws:SourceArn': topic.ref })); - new QueuePolicyResource(this, 'MyQueuePolicy', { + new sqs.cloudformation.QueuePolicyResource(this, 'MyQueuePolicy', { policyDocument, queues: [ queue.ref ] }); } } -const app = new App(process.argv); +const app = new cdk.App(process.argv); new ACL(app, 'acl'); new CFN(app, 'cfn'); process.stdout.write(app.run()); diff --git a/packages/@aws-cdk/acm/.gitignore b/packages/@aws-cdk/acm/.gitignore index 457fcbd4e186b..9dc86b1121472 100644 --- a/packages/@aws-cdk/acm/.gitignore +++ b/packages/@aws-cdk/acm/.gitignore @@ -4,5 +4,5 @@ tslint.json *.js.map *.d.ts node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/acm/lib/certificate.ts b/packages/@aws-cdk/acm/lib/certificate.ts index cfb8f5a45a072..8f014a9f57939 100644 --- a/packages/@aws-cdk/acm/lib/certificate.ts +++ b/packages/@aws-cdk/acm/lib/certificate.ts @@ -1,6 +1,6 @@ import { Construct } from '@aws-cdk/core'; -import * as certificatemanager from '../cfn/certificatemanager'; import { CertificateArn, CertificateRef } from './certificate-ref'; +import * as certificatemanager from './certificatemanager.generated'; import { apexDomain } from './util'; /** @@ -59,7 +59,7 @@ export class Certificate extends CertificateRef { const allDomainNames = [props.domainName].concat(props.subjectAlternativeNames || []); - const cert = new certificatemanager.CertificateResource(this, 'Resource', { + const cert = new certificatemanager.cloudformation.CertificateResource(this, 'Resource', { domainName: props.domainName, subjectAlternativeNames: props.subjectAlternativeNames, domainValidationOptions: allDomainNames.map(domainValidationOption), @@ -72,7 +72,7 @@ export class Certificate extends CertificateRef { * * Closes over props. */ - function domainValidationOption(domainName: string): certificatemanager.CertificateResource.DomainValidationOptionProperty { + function domainValidationOption(domainName: string): certificatemanager.cloudformation.CertificateResource.DomainValidationOptionProperty { const overrideDomain = props.validationDomains && props.validationDomains[domainName]; return { domainName, diff --git a/packages/@aws-cdk/acm/lib/index.ts b/packages/@aws-cdk/acm/lib/index.ts index bf641118ecc1f..758cc2f3e0b24 100644 --- a/packages/@aws-cdk/acm/lib/index.ts +++ b/packages/@aws-cdk/acm/lib/index.ts @@ -1,5 +1,5 @@ export * from './certificate'; export * from './certificate-ref'; -// The L1 library for AWS::CertificateManager: -export * from '../cfn/certificatemanager'; +// AWS::CertificateManager CloudFormation Resources: +export * from './certificatemanager.generated'; diff --git a/packages/@aws-cdk/acm/package.json b/packages/@aws-cdk/acm/package.json index 3401bdb07b270..38a6386935037 100644 --- a/packages/@aws-cdk/acm/package.json +++ b/packages/@aws-cdk/acm/package.json @@ -42,7 +42,6 @@ }, "dependencies": { "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/iam": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/iam": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/apigateway/.gitignore b/packages/@aws-cdk/apigateway/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/apigateway/.gitignore +++ b/packages/@aws-cdk/apigateway/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/apigateway/lib/index.ts b/packages/@aws-cdk/apigateway/lib/index.ts index 50532244fddc0..7dbb5e9fe70c8 100644 --- a/packages/@aws-cdk/apigateway/lib/index.ts +++ b/packages/@aws-cdk/apigateway/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::ApiGateway: -export * from '../cfn/apigateway'; +// AWS::ApiGateway CloudFormation Resources: +export * from './apigateway.generated'; diff --git a/packages/@aws-cdk/apigateway/package.json b/packages/@aws-cdk/apigateway/package.json index 18dc7748bea37..a9e2973755a39 100644 --- a/packages/@aws-cdk/apigateway/package.json +++ b/packages/@aws-cdk/apigateway/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/applicationautoscaling/.gitignore b/packages/@aws-cdk/applicationautoscaling/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/applicationautoscaling/.gitignore +++ b/packages/@aws-cdk/applicationautoscaling/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/applicationautoscaling/lib/index.ts b/packages/@aws-cdk/applicationautoscaling/lib/index.ts index a972411744ec0..5f831ad820f97 100644 --- a/packages/@aws-cdk/applicationautoscaling/lib/index.ts +++ b/packages/@aws-cdk/applicationautoscaling/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::ApplicationAutoScaling: -export * from '../cfn/applicationautoscaling'; +// AWS::ApplicationAutoScaling CloudFormation Resources: +export * from './applicationautoscaling.generated'; diff --git a/packages/@aws-cdk/applicationautoscaling/package.json b/packages/@aws-cdk/applicationautoscaling/package.json index 39db641e3dd03..da507137a4dfc 100644 --- a/packages/@aws-cdk/applicationautoscaling/package.json +++ b/packages/@aws-cdk/applicationautoscaling/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/appsync/.gitignore b/packages/@aws-cdk/appsync/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/appsync/.gitignore +++ b/packages/@aws-cdk/appsync/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/appsync/lib/index.ts b/packages/@aws-cdk/appsync/lib/index.ts index 06c2da66650b9..f7dffe48abcae 100644 --- a/packages/@aws-cdk/appsync/lib/index.ts +++ b/packages/@aws-cdk/appsync/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::AppSync: -export * from '../cfn/appsync'; +// AWS::AppSync CloudFormation Resources: +export * from './appsync.generated'; diff --git a/packages/@aws-cdk/appsync/package.json b/packages/@aws-cdk/appsync/package.json index 1e8bb675e732c..526e5aa1afd65 100644 --- a/packages/@aws-cdk/appsync/package.json +++ b/packages/@aws-cdk/appsync/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/athena/.gitignore b/packages/@aws-cdk/athena/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/athena/.gitignore +++ b/packages/@aws-cdk/athena/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/athena/lib/index.ts b/packages/@aws-cdk/athena/lib/index.ts index 9a29c80834a36..ccfa2e983f38c 100644 --- a/packages/@aws-cdk/athena/lib/index.ts +++ b/packages/@aws-cdk/athena/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::Athena: -export * from '../cfn/athena'; +// AWS::Athena CloudFormation Resources: +export * from './athena.generated'; diff --git a/packages/@aws-cdk/athena/package.json b/packages/@aws-cdk/athena/package.json index 20ac8cd0ff61f..55a1dacd92724 100644 --- a/packages/@aws-cdk/athena/package.json +++ b/packages/@aws-cdk/athena/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/autoscaling/.gitignore b/packages/@aws-cdk/autoscaling/.gitignore index 7a47c172b3599..7a6f995a22be3 100644 --- a/packages/@aws-cdk/autoscaling/.gitignore +++ b/packages/@aws-cdk/autoscaling/.gitignore @@ -1,5 +1,8 @@ *.js +*.js.map *.d.ts +*.generated.ts +tsconfig.json +tslint.json node_modules -cfn dist diff --git a/packages/@aws-cdk/autoscaling/lib/index.ts b/packages/@aws-cdk/autoscaling/lib/index.ts index eb7e739c080c7..587f116115a71 100644 --- a/packages/@aws-cdk/autoscaling/lib/index.ts +++ b/packages/@aws-cdk/autoscaling/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 library for AWS::AutoScaling: -export * from '../cfn/autoscaling'; +// AWS::AutoScaling CloudFormation Resources: +export * from './autoscaling.generated'; diff --git a/packages/@aws-cdk/autoscaling/package.json b/packages/@aws-cdk/autoscaling/package.json index 5e5c103f087f9..02ff9f7361e8d 100644 --- a/packages/@aws-cdk/autoscaling/package.json +++ b/packages/@aws-cdk/autoscaling/package.json @@ -1,7 +1,7 @@ { "name": "@aws-cdk/autoscaling", "version": "0.7.3-beta", - "description": "The CDK Construct Library for Application AutoScaling", + "description": "The CDK Construct Library for AWS::AutoScaling", "main": "lib/index.js", "types": "lib/index.d.ts", "jsii": { @@ -19,16 +19,15 @@ "scripts": { "build": "cfn2ts --scope=AWS::AutoScaling && jsii && tslint -p . && pkglint", "watch": "jsii -w", - "lint": "tsc && tslint -p . --force", - "test": "nodeunit test/test.*.js", + "lint": "jsii && tslint -p . --force", + "test": "nodeunit test/test.*.js && cdk-integ-assert", + "integ": "cdk-integ", "pkglint": "pkglint -f" }, "keywords": [ "aws", "cdk", - "cloudlib", - "aws-cloudlib", - "aws-clib", + "constructs", "autoscaling" ], "author": { @@ -42,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/autoscaling/test/test.autoscaling.ts b/packages/@aws-cdk/autoscaling/test/test.autoscaling.ts index db4c843199541..2222a288762d5 100644 --- a/packages/@aws-cdk/autoscaling/test/test.autoscaling.ts +++ b/packages/@aws-cdk/autoscaling/test/test.autoscaling.ts @@ -1,4 +1,5 @@ import { Test, testCase } from 'nodeunit'; +import {} from '../lib'; exports = testCase({ notTested(test: Test) { diff --git a/packages/@aws-cdk/autoscaling/tsconfig.json b/packages/@aws-cdk/autoscaling/tsconfig.json deleted file mode 100644 index 5ae4f32b6ed34..0000000000000 --- a/packages/@aws-cdk/autoscaling/tsconfig.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "compilerOptions": { - "target": "es2018", - "lib": [ - "es2016", - "es2017.object", - "es2017.string" - ], - "module": "commonjs", - "declaration": true, - "strict": true, - "strictPropertyInitialization": true, - "noImplicitAny": true, - "strictNullChecks": true, - "noImplicitThis": true, - "alwaysStrict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - "inlineSourceMap": true, - "experimentalDecorators": true, - "jsx": "react", - "jsxFactory": "jsx.create" - }, - "_generated_by_jsii_": "generated by jsii - you can delete, and ideally add to your .gitignore" -} diff --git a/packages/@aws-cdk/autoscaling/tslint.json b/packages/@aws-cdk/autoscaling/tslint.json deleted file mode 100644 index ddd9bc8e0f437..0000000000000 --- a/packages/@aws-cdk/autoscaling/tslint.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "extends": "tslint:recommended", - "rules": { - "semicolon": [ - true, - "always", - "ignore-interfaces" - ], - "no-invalid-template-strings": false, - "quotemark": false, - "interface-name": false, - "max-classes-per-file": false, - "member-access": { - "severity": "warning" - }, - "interface-over-type-literal": false, - "eofline": false, - "arrow-parens": false, - "no-namespace": false, - "max-line-length": [ - true, - 150 - ], - "object-literal-sort-keys": false, - "trailing-comma": false, - "no-unused-expression": [ - true, - "allow-new" - ], - "variable-name": [ - true, - "ban-keywords", - "check-format", - "allow-leading-underscore", - "allow-pascal-case" - ] - } -} diff --git a/packages/@aws-cdk/autoscalingplans/.gitignore b/packages/@aws-cdk/autoscalingplans/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/autoscalingplans/.gitignore +++ b/packages/@aws-cdk/autoscalingplans/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/autoscalingplans/lib/index.ts b/packages/@aws-cdk/autoscalingplans/lib/index.ts index 81854164913e2..d3c4bfa27331a 100644 --- a/packages/@aws-cdk/autoscalingplans/lib/index.ts +++ b/packages/@aws-cdk/autoscalingplans/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::AutoScalingPlans: -export * from '../cfn/autoscalingplans'; +// AWS::AutoScalingPlans CloudFormation Resources: +export * from './autoscalingplans.generated'; diff --git a/packages/@aws-cdk/autoscalingplans/package.json b/packages/@aws-cdk/autoscalingplans/package.json index 3be762b11d100..8b2ef55b75461 100644 --- a/packages/@aws-cdk/autoscalingplans/package.json +++ b/packages/@aws-cdk/autoscalingplans/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/batch/.gitignore b/packages/@aws-cdk/batch/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/batch/.gitignore +++ b/packages/@aws-cdk/batch/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/batch/lib/index.ts b/packages/@aws-cdk/batch/lib/index.ts index 9fbd6e696e4a3..5f0b6784e8e2a 100644 --- a/packages/@aws-cdk/batch/lib/index.ts +++ b/packages/@aws-cdk/batch/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::Batch: -export * from '../cfn/batch'; +// AWS::Batch CloudFormation Resources: +export * from './batch.generated'; diff --git a/packages/@aws-cdk/batch/package.json b/packages/@aws-cdk/batch/package.json index 35fb90b35bb73..bf4f793583b26 100644 --- a/packages/@aws-cdk/batch/package.json +++ b/packages/@aws-cdk/batch/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/budgets/.gitignore b/packages/@aws-cdk/budgets/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/budgets/.gitignore +++ b/packages/@aws-cdk/budgets/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/budgets/lib/index.ts b/packages/@aws-cdk/budgets/lib/index.ts index fd2d6bcc01d46..57d3d60547051 100644 --- a/packages/@aws-cdk/budgets/lib/index.ts +++ b/packages/@aws-cdk/budgets/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::Budgets: -export * from '../cfn/budgets'; +// AWS::Budgets CloudFormation Resources: +export * from './budgets.generated'; diff --git a/packages/@aws-cdk/budgets/package.json b/packages/@aws-cdk/budgets/package.json index d6cb39484cb1f..12643e88e5f64 100644 --- a/packages/@aws-cdk/budgets/package.json +++ b/packages/@aws-cdk/budgets/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/cloudformation-resource-spec/.gitignore b/packages/@aws-cdk/cdk-cfnspec/.gitignore similarity index 100% rename from packages/@aws-cdk/cloudformation-resource-spec/.gitignore rename to packages/@aws-cdk/cdk-cfnspec/.gitignore diff --git a/packages/@aws-cdk/cloudformation-resource-spec/.npmignore b/packages/@aws-cdk/cdk-cfnspec/.npmignore similarity index 100% rename from packages/@aws-cdk/cloudformation-resource-spec/.npmignore rename to packages/@aws-cdk/cdk-cfnspec/.npmignore diff --git a/packages/@aws-cdk/cloudformation-resource-spec/build-tools/build.ts b/packages/@aws-cdk/cdk-cfnspec/build-tools/build.ts similarity index 100% rename from packages/@aws-cdk/cloudformation-resource-spec/build-tools/build.ts rename to packages/@aws-cdk/cdk-cfnspec/build-tools/build.ts diff --git a/packages/@aws-cdk/cloudformation-resource-spec/build-tools/update.sh b/packages/@aws-cdk/cdk-cfnspec/build-tools/update.sh similarity index 100% rename from packages/@aws-cdk/cloudformation-resource-spec/build-tools/update.sh rename to packages/@aws-cdk/cdk-cfnspec/build-tools/update.sh diff --git a/packages/@aws-cdk/cloudformation-resource-spec/lib/index.ts b/packages/@aws-cdk/cdk-cfnspec/lib/index.ts similarity index 100% rename from packages/@aws-cdk/cloudformation-resource-spec/lib/index.ts rename to packages/@aws-cdk/cdk-cfnspec/lib/index.ts diff --git a/packages/@aws-cdk/cloudformation-resource-spec/lib/schema/base-types.ts b/packages/@aws-cdk/cdk-cfnspec/lib/schema/base-types.ts similarity index 100% rename from packages/@aws-cdk/cloudformation-resource-spec/lib/schema/base-types.ts rename to packages/@aws-cdk/cdk-cfnspec/lib/schema/base-types.ts diff --git a/packages/@aws-cdk/cloudformation-resource-spec/lib/schema/index.ts b/packages/@aws-cdk/cdk-cfnspec/lib/schema/index.ts similarity index 100% rename from packages/@aws-cdk/cloudformation-resource-spec/lib/schema/index.ts rename to packages/@aws-cdk/cdk-cfnspec/lib/schema/index.ts diff --git a/packages/@aws-cdk/cloudformation-resource-spec/lib/schema/property.ts b/packages/@aws-cdk/cdk-cfnspec/lib/schema/property.ts similarity index 100% rename from packages/@aws-cdk/cloudformation-resource-spec/lib/schema/property.ts rename to packages/@aws-cdk/cdk-cfnspec/lib/schema/property.ts diff --git a/packages/@aws-cdk/cloudformation-resource-spec/lib/schema/resource-type.ts b/packages/@aws-cdk/cdk-cfnspec/lib/schema/resource-type.ts similarity index 100% rename from packages/@aws-cdk/cloudformation-resource-spec/lib/schema/resource-type.ts rename to packages/@aws-cdk/cdk-cfnspec/lib/schema/resource-type.ts diff --git a/packages/@aws-cdk/cloudformation-resource-spec/lib/schema/specification.ts b/packages/@aws-cdk/cdk-cfnspec/lib/schema/specification.ts similarity index 100% rename from packages/@aws-cdk/cloudformation-resource-spec/lib/schema/specification.ts rename to packages/@aws-cdk/cdk-cfnspec/lib/schema/specification.ts diff --git a/packages/@aws-cdk/cloudformation-resource-spec/package-lock.json b/packages/@aws-cdk/cdk-cfnspec/package-lock.json similarity index 100% rename from packages/@aws-cdk/cloudformation-resource-spec/package-lock.json rename to packages/@aws-cdk/cdk-cfnspec/package-lock.json diff --git a/packages/@aws-cdk/cloudformation-resource-spec/package.json b/packages/@aws-cdk/cdk-cfnspec/package.json similarity index 94% rename from packages/@aws-cdk/cloudformation-resource-spec/package.json rename to packages/@aws-cdk/cdk-cfnspec/package.json index 5bfb9b9d25e82..23e404dab1d20 100644 --- a/packages/@aws-cdk/cloudformation-resource-spec/package.json +++ b/packages/@aws-cdk/cdk-cfnspec/package.json @@ -1,5 +1,5 @@ { - "name": "@aws-cdk/cloudformation-resource-spec", + "name": "@aws-cdk/cdk-cfnspec", "description": "The CloudFormation resource specification used by @aws-cdk packages", "version": "0.7.3-beta", "scripts": { diff --git a/packages/@aws-cdk/cloudformation-resource-spec/spec-input/000_CloudFormationResourceSpecification.json b/packages/@aws-cdk/cdk-cfnspec/spec-input/000_CloudFormationResourceSpecification.json similarity index 100% rename from packages/@aws-cdk/cloudformation-resource-spec/spec-input/000_CloudFormationResourceSpecification.json rename to packages/@aws-cdk/cdk-cfnspec/spec-input/000_CloudFormationResourceSpecification.json diff --git a/packages/@aws-cdk/cloudformation-resource-spec/spec-input/000_sam.spec.json b/packages/@aws-cdk/cdk-cfnspec/spec-input/000_sam.spec.json similarity index 100% rename from packages/@aws-cdk/cloudformation-resource-spec/spec-input/000_sam.spec.json rename to packages/@aws-cdk/cdk-cfnspec/spec-input/000_sam.spec.json diff --git a/packages/@aws-cdk/cloudformation-resource-spec/spec-input/500_Cognity_IdentityPoolRoleAttachment_patches.json b/packages/@aws-cdk/cdk-cfnspec/spec-input/500_Cognity_IdentityPoolRoleAttachment_patches.json similarity index 100% rename from packages/@aws-cdk/cloudformation-resource-spec/spec-input/500_Cognity_IdentityPoolRoleAttachment_patches.json rename to packages/@aws-cdk/cdk-cfnspec/spec-input/500_Cognity_IdentityPoolRoleAttachment_patches.json diff --git a/packages/@aws-cdk/cloudformation-resource-spec/spec-input/500_SAM_Serverless_Function_S3Event_Events_patch.json b/packages/@aws-cdk/cdk-cfnspec/spec-input/500_SAM_Serverless_Function_S3Event_Events_patch.json similarity index 100% rename from packages/@aws-cdk/cloudformation-resource-spec/spec-input/500_SAM_Serverless_Function_S3Event_Events_patch.json rename to packages/@aws-cdk/cdk-cfnspec/spec-input/500_SAM_Serverless_Function_S3Event_Events_patch.json diff --git a/packages/@aws-cdk/cloudformation-resource-spec/spec-input/500_SAM_Serverless_Function_S3Location_Version_patch.json b/packages/@aws-cdk/cdk-cfnspec/spec-input/500_SAM_Serverless_Function_S3Location_Version_patch.json similarity index 100% rename from packages/@aws-cdk/cloudformation-resource-spec/spec-input/500_SAM_Serverless_Function_S3Location_Version_patch.json rename to packages/@aws-cdk/cdk-cfnspec/spec-input/500_SAM_Serverless_Function_S3Location_Version_patch.json diff --git a/packages/@aws-cdk/cloudformation-resource-spec/spec-input/500_SSM_AssociationName_patch.json b/packages/@aws-cdk/cdk-cfnspec/spec-input/500_SSM_AssociationName_patch.json similarity index 100% rename from packages/@aws-cdk/cloudformation-resource-spec/spec-input/500_SSM_AssociationName_patch.json rename to packages/@aws-cdk/cdk-cfnspec/spec-input/500_SSM_AssociationName_patch.json diff --git a/packages/@aws-cdk/cloudformation-resource-spec/spec-input/500_SSM_AssociationName_patch.md b/packages/@aws-cdk/cdk-cfnspec/spec-input/500_SSM_AssociationName_patch.md similarity index 100% rename from packages/@aws-cdk/cloudformation-resource-spec/spec-input/500_SSM_AssociationName_patch.md rename to packages/@aws-cdk/cdk-cfnspec/spec-input/500_SSM_AssociationName_patch.md diff --git a/packages/@aws-cdk/cloudformation-resource-spec/spec-input/510_ElasticSearch_Domain_patches.json b/packages/@aws-cdk/cdk-cfnspec/spec-input/510_ElasticSearch_Domain_patches.json similarity index 100% rename from packages/@aws-cdk/cloudformation-resource-spec/spec-input/510_ElasticSearch_Domain_patches.json rename to packages/@aws-cdk/cdk-cfnspec/spec-input/510_ElasticSearch_Domain_patches.json diff --git a/packages/@aws-cdk/cloudformation-resource-spec/test/spec-validators.ts b/packages/@aws-cdk/cdk-cfnspec/test/spec-validators.ts similarity index 100% rename from packages/@aws-cdk/cloudformation-resource-spec/test/spec-validators.ts rename to packages/@aws-cdk/cdk-cfnspec/test/spec-validators.ts diff --git a/packages/@aws-cdk/cloudformation-resource-spec/test/test.filtered-specification.ts b/packages/@aws-cdk/cdk-cfnspec/test/test.filtered-specification.ts similarity index 100% rename from packages/@aws-cdk/cloudformation-resource-spec/test/test.filtered-specification.ts rename to packages/@aws-cdk/cdk-cfnspec/test/test.filtered-specification.ts diff --git a/packages/@aws-cdk/cloudformation-resource-spec/test/test.namespaces.ts b/packages/@aws-cdk/cdk-cfnspec/test/test.namespaces.ts similarity index 100% rename from packages/@aws-cdk/cloudformation-resource-spec/test/test.namespaces.ts rename to packages/@aws-cdk/cdk-cfnspec/test/test.namespaces.ts diff --git a/packages/@aws-cdk/cloudformation-resource-spec/tsconfig.json b/packages/@aws-cdk/cdk-cfnspec/tsconfig.json similarity index 100% rename from packages/@aws-cdk/cloudformation-resource-spec/tsconfig.json rename to packages/@aws-cdk/cdk-cfnspec/tsconfig.json diff --git a/packages/@aws-cdk/certificatemanager/.gitignore b/packages/@aws-cdk/certificatemanager/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/certificatemanager/.gitignore +++ b/packages/@aws-cdk/certificatemanager/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/certificatemanager/lib/index.ts b/packages/@aws-cdk/certificatemanager/lib/index.ts index cc9d9a163a300..54e3e79c1836d 100644 --- a/packages/@aws-cdk/certificatemanager/lib/index.ts +++ b/packages/@aws-cdk/certificatemanager/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::CertificateManager: -export * from '../cfn/certificatemanager'; +// AWS::CertificateManager CloudFormation Resources: +export * from './certificatemanager.generated'; diff --git a/packages/@aws-cdk/certificatemanager/package.json b/packages/@aws-cdk/certificatemanager/package.json index 4fd27b071ab39..f65832e3a7862 100644 --- a/packages/@aws-cdk/certificatemanager/package.json +++ b/packages/@aws-cdk/certificatemanager/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/cloud9/.gitignore b/packages/@aws-cdk/cloud9/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/cloud9/.gitignore +++ b/packages/@aws-cdk/cloud9/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/cloud9/lib/index.ts b/packages/@aws-cdk/cloud9/lib/index.ts index c3513f9c47019..96f6a78740758 100644 --- a/packages/@aws-cdk/cloud9/lib/index.ts +++ b/packages/@aws-cdk/cloud9/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::Cloud9: -export * from '../cfn/cloud9'; +// AWS::Cloud9 CloudFormation Resources: +export * from './cloud9.generated'; diff --git a/packages/@aws-cdk/cloud9/package.json b/packages/@aws-cdk/cloud9/package.json index db7f40917feb7..a0e35aae74e4b 100644 --- a/packages/@aws-cdk/cloud9/package.json +++ b/packages/@aws-cdk/cloud9/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/cloudformation-diff/lib/diff/index.ts b/packages/@aws-cdk/cloudformation-diff/lib/diff/index.ts index ddee58c03579f..68096546d7e88 100644 --- a/packages/@aws-cdk/cloudformation-diff/lib/diff/index.ts +++ b/packages/@aws-cdk/cloudformation-diff/lib/diff/index.ts @@ -1,4 +1,4 @@ -import { filteredSpecification, schema } from '@aws-cdk/cloudformation-resource-spec'; +import { filteredSpecification, schema } from '@aws-cdk/cdk-cfnspec'; import * as types from './types'; import { diffKeyedEntities } from './util'; diff --git a/packages/@aws-cdk/cloudformation-diff/package.json b/packages/@aws-cdk/cloudformation-diff/package.json index 8e50b830d562e..73b82c81b1c0c 100644 --- a/packages/@aws-cdk/cloudformation-diff/package.json +++ b/packages/@aws-cdk/cloudformation-diff/package.json @@ -20,7 +20,7 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/cloudformation-resource-spec": "^0.7.3-beta", + "@aws-cdk/cdk-cfnspec": "^0.7.3-beta", "colors": "^1.2.1", "source-map-support": "^0.5.6" }, diff --git a/packages/@aws-cdk/cloudformation/.gitignore b/packages/@aws-cdk/cloudformation/.gitignore index a725ff9821bb6..7566dec850f55 100644 --- a/packages/@aws-cdk/cloudformation/.gitignore +++ b/packages/@aws-cdk/cloudformation/.gitignore @@ -3,6 +3,6 @@ tsconfig.json tslint.json *.js.map *.d.ts -cfn +*.generated.ts dist lib/generated/resources.ts diff --git a/packages/@aws-cdk/cloudformation/lib/index.ts b/packages/@aws-cdk/cloudformation/lib/index.ts index 138144dffd6ba..2444a5170ec27 100644 --- a/packages/@aws-cdk/cloudformation/lib/index.ts +++ b/packages/@aws-cdk/cloudformation/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 library for AWS::CloudFormation: -export * from '../cfn/cloudformation'; +// AWS::CloudFormation CloudFormation Resources: +export * from './cloudformation.generated'; diff --git a/packages/@aws-cdk/cloudformation/package.json b/packages/@aws-cdk/cloudformation/package.json index a41a0e45a3da1..ebd2d27e1f3ac 100644 --- a/packages/@aws-cdk/cloudformation/package.json +++ b/packages/@aws-cdk/cloudformation/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/cloudfront/.gitignore b/packages/@aws-cdk/cloudfront/.gitignore index 7c42563bade37..d8137d0d3bdfe 100644 --- a/packages/@aws-cdk/cloudfront/.gitignore +++ b/packages/@aws-cdk/cloudfront/.gitignore @@ -3,7 +3,7 @@ tsconfig.json tslint.json *.js.map -cfn +*.generated.ts dist coverage .nyc_output diff --git a/packages/@aws-cdk/cloudfront/lib/index.ts b/packages/@aws-cdk/cloudfront/lib/index.ts index 75e153b9d9fa7..d6360d236730b 100644 --- a/packages/@aws-cdk/cloudfront/lib/index.ts +++ b/packages/@aws-cdk/cloudfront/lib/index.ts @@ -1,4 +1,4 @@ export * from './web_distribution'; -// The L1 library for AWS::CloudFront: -export * from '../cfn/cloudfront'; +// AWS::CloudFront CloudFormation Resources: +export * from './cloudfront.generated'; diff --git a/packages/@aws-cdk/cloudfront/lib/web_distribution.ts b/packages/@aws-cdk/cloudfront/lib/web_distribution.ts index d7f70e77bc62c..23f94dd3e5445 100644 --- a/packages/@aws-cdk/cloudfront/lib/web_distribution.ts +++ b/packages/@aws-cdk/cloudfront/lib/web_distribution.ts @@ -1,7 +1,7 @@ import { CertificateArn } from '@aws-cdk/acm'; import { Construct, FnConcat, } from '@aws-cdk/core'; import { Bucket, BucketRef } from '@aws-cdk/s3'; -import * as cloudfront from '../cfn/cloudfront'; +import * as cloudfront from './cloudfront.generated'; export enum HttpVersion { HTTP1_1 = "http1.1", @@ -195,7 +195,7 @@ export interface S3OriginConfig { /** * The optional origin identity cloudfront will use when calling your s3 bucket. */ - readonly originAccessIdentity?: cloudfront.CloudFrontOriginAccessIdentityResource + readonly originAccessIdentity?: cloudfront.cloudformation.CloudFrontOriginAccessIdentityResource } /** @@ -281,7 +281,7 @@ export interface Behavior { * @default none (no cookies - no headers) * */ - forwardedValues?: cloudfront.DistributionResource.ForwardedValuesProperty; + forwardedValues?: cloudfront.cloudformation.DistributionResource.ForwardedValuesProperty; /** * The minimum amount of time that you want objects to stay in the cache @@ -384,7 +384,7 @@ export interface CloudFrontWebDistributionProps { /** * How CloudFront should handle requests that are no successful (eg PageNotFound) */ - errorConfigurations?: cloudfront.DistributionResource.CustomErrorResponseProperty[]; + errorConfigurations?: cloudfront.cloudformation.DistributionResource.CustomErrorResponseProperty[]; } /** @@ -457,7 +457,7 @@ export class CloudFrontWebDistribution extends Construct { constructor(parent: Construct, name: string, props: CloudFrontWebDistributionProps) { super(parent, name); - const distributionConfig: cloudfront.DistributionResource.DistributionConfigProperty = { + const distributionConfig: cloudfront.cloudformation.DistributionResource.DistributionConfigProperty = { comment: props.comment, enabled: true, defaultRootObject: props.defaultRootObject || "index.html", @@ -470,7 +470,7 @@ export class CloudFrontWebDistribution extends Construct { const behaviors: BehaviorWithOrigin[] = []; - const origins: cloudfront.DistributionResource.OriginProperty[] = []; + const origins: cloudfront.cloudformation.DistributionResource.OriginProperty[] = []; let originIndex = 1; for (const originConfig of props.originConfigs) { @@ -482,10 +482,10 @@ export class CloudFrontWebDistribution extends Construct { throw new Error("There cannot be both an s3OriginSource and a customOriginSource in the same SourceConfiguration."); } - const originHeaders: cloudfront.DistributionResource.OriginCustomHeaderProperty[] = []; + const originHeaders: cloudfront.cloudformation.DistributionResource.OriginCustomHeaderProperty[] = []; if (originConfig.originHeaders) { Object.keys(originConfig.originHeaders).forEach(key => { - const oHeader: cloudfront.DistributionResource.OriginCustomHeaderProperty = { + const oHeader: cloudfront.cloudformation.DistributionResource.OriginCustomHeaderProperty = { headerName: key, headerValue: originConfig.originHeaders![key] }; @@ -493,7 +493,7 @@ export class CloudFrontWebDistribution extends Construct { }); } - const originProperty: cloudfront.DistributionResource.OriginProperty = { + const originProperty: cloudfront.cloudformation.DistributionResource.OriginProperty = { id: originId, domainName: originConfig.s3OriginSource ? originConfig.s3OriginSource.s3BucketSource.domainName : @@ -530,12 +530,12 @@ export class CloudFrontWebDistribution extends Construct { throw new Error("There can only be one default behavior across all sources. [ One default behavior per distribution ]."); } distributionConfig.defaultCacheBehavior = this.toBehavior(defaultBehaviors[0]); - const otherBehaviors: cloudfront.DistributionResource.CacheBehaviorProperty[] = []; + const otherBehaviors: cloudfront.cloudformation.DistributionResource.CacheBehaviorProperty[] = []; for (const behavior of behaviors.filter(b => !b.isDefaultBehavior)) { if (!behavior.pathPattern) { throw new Error("pathPattern is required for all non-default behaviors"); } - otherBehaviors.push(this.toBehavior(behavior) as cloudfront.DistributionResource.CacheBehaviorProperty); + otherBehaviors.push(this.toBehavior(behavior) as cloudfront.cloudformation.DistributionResource.CacheBehaviorProperty); } distributionConfig.cacheBehaviors = otherBehaviors; @@ -551,7 +551,7 @@ export class CloudFrontWebDistribution extends Construct { }; } - const distribution = new cloudfront.DistributionResource(this, 'CFDistribution', {distributionConfig}); + const distribution = new cloudfront.cloudformation.DistributionResource(this, 'CFDistribution', {distributionConfig}); this.domainName = distribution.distributionDomainName; } diff --git a/packages/@aws-cdk/cloudfront/package.json b/packages/@aws-cdk/cloudfront/package.json index 8d8daf803d488..ccf7276805025 100644 --- a/packages/@aws-cdk/cloudfront/package.json +++ b/packages/@aws-cdk/cloudfront/package.json @@ -45,7 +45,6 @@ "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", "@aws-cdk/kms": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta", "@aws-cdk/s3": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/cloudtrail/.gitignore b/packages/@aws-cdk/cloudtrail/.gitignore index bf0626570e337..f15b7d5e08722 100644 --- a/packages/@aws-cdk/cloudtrail/.gitignore +++ b/packages/@aws-cdk/cloudtrail/.gitignore @@ -3,5 +3,5 @@ tsconfig.json tslint.json *.js.map *.d.ts -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/cloudtrail/lib/index.ts b/packages/@aws-cdk/cloudtrail/lib/index.ts index efa0236f3d036..60aa07be883bf 100644 --- a/packages/@aws-cdk/cloudtrail/lib/index.ts +++ b/packages/@aws-cdk/cloudtrail/lib/index.ts @@ -1,12 +1,12 @@ import { AwsAccountId, Construct, FnConcat, PolicyStatement, ServicePrincipal, Token } from '@aws-cdk/core'; import { Role } from '@aws-cdk/iam'; import { EncryptionKeyRef } from '@aws-cdk/kms'; -import { LogGroupResource } from '@aws-cdk/logs'; +import * as logs from '@aws-cdk/logs'; import { Bucket, BucketEncryption } from '@aws-cdk/s3'; -import * as cloudtrail from '../cfn/cloudtrail'; +import * as cloudtrail from './cloudtrail.generated'; -// The L1 library for AWS::CloudTrail: -export * from '../cfn/cloudtrail'; +// AWS::CloudTrail CloudFormation Resources: +export * from './cloudtrail.generated'; export interface CloudTrailProps { /** @@ -144,7 +144,7 @@ export class CloudTrail extends Construct { .setCondition("StringEquals", {'s3:x-amz-acl': "bucket-owner-full-control"})); if (props.sendToCloudWatchLogs) { - const logGroup = new LogGroupResource(this, "LogGroup", { + const logGroup = new logs.cloudformation.LogGroupResource(this, "LogGroup", { retentionInDays: props.cloudWatchLogsRetentionTimeDays || LogRetention.OneYear }); this.cloudWatchLogsGroupArn = logGroup.ref; @@ -167,7 +167,7 @@ export class CloudTrail extends Construct { } // TODO: not all regions support validation. Use service configuration data to fail gracefully - const trail = new cloudtrail.TrailResource(this, 'Resource', { + const trail = new cloudtrail.cloudformation.TrailResource(this, 'Resource', { isLogging: true, enableLogFileValidation: props.enableFileValidation == null ? true : props.enableFileValidation, isMultiRegionTrail: props.isMultiRegionTrail == null ? true : props.isMultiRegionTrail, diff --git a/packages/@aws-cdk/cloudtrail/package.json b/packages/@aws-cdk/cloudtrail/package.json index 51b39b01236a9..b9d1a415dd3cd 100644 --- a/packages/@aws-cdk/cloudtrail/package.json +++ b/packages/@aws-cdk/cloudtrail/package.json @@ -46,7 +46,6 @@ "@aws-cdk/iam": "^0.7.3-beta", "@aws-cdk/kms": "^0.7.3-beta", "@aws-cdk/logs": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta", "@aws-cdk/s3": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/cloudwatch/.gitignore b/packages/@aws-cdk/cloudwatch/.gitignore index e415b9b6b0540..39c91e9b0d07a 100644 --- a/packages/@aws-cdk/cloudwatch/.gitignore +++ b/packages/@aws-cdk/cloudwatch/.gitignore @@ -3,7 +3,7 @@ tsconfig.json tslint.json *.js.map *.d.ts -cfn +*.generated.ts dist lib/generated/resources.ts *.tgz diff --git a/packages/@aws-cdk/cloudwatch/lib/alarm.ts b/packages/@aws-cdk/cloudwatch/lib/alarm.ts index 41b7e5f08afa2..ad6f823301982 100644 --- a/packages/@aws-cdk/cloudwatch/lib/alarm.ts +++ b/packages/@aws-cdk/cloudwatch/lib/alarm.ts @@ -1,5 +1,5 @@ import { Arn, Construct, Token } from '@aws-cdk/core'; -import * as cloudwatch from '../cfn/cloudwatch'; +import * as cloudwatch from './cloudwatch.generated'; import { HorizontalAnnotation } from './graph'; import { Dimension, Metric, Statistic, Unit } from './metric'; import { parseStatistic } from './util.statistic'; @@ -140,7 +140,7 @@ export class Alarm extends Construct { const comparisonOperator = props.comparisonOperator || ComparisonOperator.GreaterThanOrEqualToThreshold; - const alarm = new cloudwatch.AlarmResource(this, 'Resource', { + const alarm = new cloudwatch.cloudformation.AlarmResource(this, 'Resource', { // Meta alarmDescription: props.alarmDescription, alarmName: props.alarmName, diff --git a/packages/@aws-cdk/cloudwatch/lib/dashboard.ts b/packages/@aws-cdk/cloudwatch/lib/dashboard.ts index f6a0224b51e7c..8a961dbb4daca 100644 --- a/packages/@aws-cdk/cloudwatch/lib/dashboard.ts +++ b/packages/@aws-cdk/cloudwatch/lib/dashboard.ts @@ -1,5 +1,5 @@ import { Construct, Stack, Token, tokenAwareJsonify } from "@aws-cdk/core"; -import * as cloudwatch from '../cfn/cloudwatch'; +import * as cloudwatch from './cloudwatch.generated'; import { Column, Row } from "./layout"; import { IWidget } from "./widget"; @@ -17,7 +17,7 @@ export interface DashboardProps { */ export class Dashboard extends Construct { private readonly rows: IWidget[] = []; - private readonly dashboard: cloudwatch.DashboardResource; + private readonly dashboard: cloudwatch.cloudformation.DashboardResource; constructor(parent: Construct, name: string, props?: DashboardProps) { super(parent, name); @@ -28,7 +28,7 @@ export class Dashboard extends Construct { // See: https://github.com/awslabs/aws-cdk/issues/213 const dashboardName = (props && props.dashboardName) || new Token(() => this.generateDashboardName()); - this.dashboard = new cloudwatch.DashboardResource(this, 'Resource', { + this.dashboard = new cloudwatch.cloudformation.DashboardResource(this, 'Resource', { dashboardName, dashboardBody: new Token(() => { const column = new Column(...this.rows); diff --git a/packages/@aws-cdk/cloudwatch/lib/index.ts b/packages/@aws-cdk/cloudwatch/lib/index.ts index 019474f07c432..5940a823ca866 100644 --- a/packages/@aws-cdk/cloudwatch/lib/index.ts +++ b/packages/@aws-cdk/cloudwatch/lib/index.ts @@ -6,5 +6,5 @@ export * from './metric'; export * from './text'; export * from './widget'; -// The L1 library for AWS::CloudWatch: -export * from '../cfn/cloudwatch'; +// AWS::CloudWatch CloudFormation Resources: +export * from './cloudwatch.generated'; diff --git a/packages/@aws-cdk/cloudwatch/package.json b/packages/@aws-cdk/cloudwatch/package.json index 1ca4b690ca8b2..909e4bb8bfaba 100644 --- a/packages/@aws-cdk/cloudwatch/package.json +++ b/packages/@aws-cdk/cloudwatch/package.json @@ -42,7 +42,6 @@ }, "dependencies": { "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/iam": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/iam": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/codebuild/.gitignore b/packages/@aws-cdk/codebuild/.gitignore index a725ff9821bb6..7566dec850f55 100644 --- a/packages/@aws-cdk/codebuild/.gitignore +++ b/packages/@aws-cdk/codebuild/.gitignore @@ -3,6 +3,6 @@ tsconfig.json tslint.json *.js.map *.d.ts -cfn +*.generated.ts dist lib/generated/resources.ts diff --git a/packages/@aws-cdk/codebuild/lib/artifacts.ts b/packages/@aws-cdk/codebuild/lib/artifacts.ts index 5c26a6c1bae99..91b0360fbc455 100644 --- a/packages/@aws-cdk/codebuild/lib/artifacts.ts +++ b/packages/@aws-cdk/codebuild/lib/artifacts.ts @@ -1,22 +1,22 @@ import { BucketRef } from '@aws-cdk/s3'; -import * as codebuild from '../cfn/codebuild'; +import * as codebuild from './codebuild.generated'; import { BuildProject } from './project'; export abstract class BuildArtifacts { - public abstract toArtifactsJSON(): codebuild.ProjectResource.ArtifactsProperty; + public abstract toArtifactsJSON(): codebuild.cloudformation.ProjectResource.ArtifactsProperty; public bind(_project: BuildProject) { return; } } export class NoBuildArtifacts extends BuildArtifacts { - public toArtifactsJSON(): codebuild.ProjectResource.ArtifactsProperty { + public toArtifactsJSON(): codebuild.cloudformation.ProjectResource.ArtifactsProperty { return { type: 'NO_ARTIFACTS' }; } } export class CodePipelineBuildArtifacts extends BuildArtifacts { - public toArtifactsJSON(): codebuild.ProjectResource.ArtifactsProperty { + public toArtifactsJSON(): codebuild.cloudformation.ProjectResource.ArtifactsProperty { return { type: 'CODEPIPELINE' }; } } @@ -68,7 +68,7 @@ export class S3BucketBuildArtifacts extends BuildArtifacts { this.props.bucket.grantReadWrite(project.role); } - public toArtifactsJSON(): codebuild.ProjectResource.ArtifactsProperty { + public toArtifactsJSON(): codebuild.cloudformation.ProjectResource.ArtifactsProperty { return { type: 'S3', location: this.props.bucket.bucketName, diff --git a/packages/@aws-cdk/codebuild/lib/index.ts b/packages/@aws-cdk/codebuild/lib/index.ts index 3f6cc1afb4958..55df0a8ad66cd 100644 --- a/packages/@aws-cdk/codebuild/lib/index.ts +++ b/packages/@aws-cdk/codebuild/lib/index.ts @@ -2,5 +2,5 @@ export * from './project'; export * from './source'; export * from './artifacts'; -// The L1 library for AWS::CodeBuild: -export * from '../cfn/codebuild'; +// AWS::CodeBuild CloudFormation Resources: +export * from './codebuild.generated'; diff --git a/packages/@aws-cdk/codebuild/lib/project.ts b/packages/@aws-cdk/codebuild/lib/project.ts index 3b9903f45656c..d2b4c37abc5b9 100644 --- a/packages/@aws-cdk/codebuild/lib/project.ts +++ b/packages/@aws-cdk/codebuild/lib/project.ts @@ -4,8 +4,8 @@ import { IEventRuleTarget } from '@aws-cdk/events'; import { Role } from '@aws-cdk/iam'; import { EncryptionKeyRef } from '@aws-cdk/kms'; import { BucketRef } from '@aws-cdk/s3'; -import * as codebuild from '../cfn/codebuild'; import { BuildArtifacts, CodePipelineBuildArtifacts, NoBuildArtifacts } from './artifacts'; +import * as codebuild from './codebuild.generated'; import { BuildSource } from './source'; const CODEPIPELINE_TYPE = 'CODEPIPELINE'; @@ -315,7 +315,7 @@ export class BuildProject extends BuildProjectRef { const environment = this.renderEnvironment(props.environment, props.environmentVariables); - let cache: codebuild.ProjectResource.ProjectCacheProperty | undefined; + let cache: codebuild.cloudformation.ProjectResource.ProjectCacheProperty | undefined; if (props.cacheBucket) { const cacheDir = props.cacheDir != null ? props.cacheDir : ''; cache = { @@ -341,7 +341,7 @@ export class BuildProject extends BuildProjectRef { this.validateCodePipelineSettings(source, artifacts); - const resource = new codebuild.ProjectResource(this, 'Resource', { + const resource = new codebuild.cloudformation.ProjectResource(this, 'Resource', { description: props.description, source: sourceJson, artifacts: artifacts.toArtifactsJSON(), @@ -388,7 +388,7 @@ export class BuildProject extends BuildProjectRef { } private renderEnvironment(env: BuildEnvironment = {}, projectVars: { [name: string]: BuildEnvironmentVariable } = {}): - codebuild.ProjectResource.EnvironmentProperty { + codebuild.cloudformation.ProjectResource.EnvironmentProperty { const vars: { [name: string]: BuildEnvironmentVariable } = {}; const containerVars = env.environmentVariables || {}; diff --git a/packages/@aws-cdk/codebuild/lib/source.ts b/packages/@aws-cdk/codebuild/lib/source.ts index c195958394203..74e8e892ee71a 100644 --- a/packages/@aws-cdk/codebuild/lib/source.ts +++ b/packages/@aws-cdk/codebuild/lib/source.ts @@ -1,7 +1,7 @@ import { Repository } from '@aws-cdk/codecommit'; import { FnConcat, PolicyStatement } from '@aws-cdk/core'; import { BucketRef } from '@aws-cdk/s3'; -import * as codebuild from '../cfn/codebuild'; +import * as codebuild from './codebuild.generated'; import { BuildProject } from './project'; /** @@ -18,7 +18,7 @@ export abstract class BuildSource { return; } - public abstract toSourceJSON(): codebuild.ProjectResource.SourceProperty; + public abstract toSourceJSON(): codebuild.cloudformation.ProjectResource.SourceProperty; } /** @@ -36,7 +36,7 @@ export class CodeCommitSource extends BuildSource { .addResource(this.repo.repositoryArn)); } - public toSourceJSON(): codebuild.ProjectResource.SourceProperty { + public toSourceJSON(): codebuild.cloudformation.ProjectResource.SourceProperty { return { type: SourceType.CodeCommit, location: this.repo.repositoryCloneUrlHttp @@ -48,7 +48,7 @@ export class CodeCommitSource extends BuildSource { * CodePipeline Source definition for a CodeBuild project */ export class CodePipelineSource extends BuildSource { - public toSourceJSON(): codebuild.ProjectResource.SourceProperty { + public toSourceJSON(): codebuild.cloudformation.ProjectResource.SourceProperty { return { type: SourceType.CodePipeline }; @@ -69,7 +69,7 @@ export class GitHubSource extends BuildSource { this.oauthToken = oauthToken; } - public toSourceJSON(): codebuild.ProjectResource.SourceProperty { + public toSourceJSON(): codebuild.cloudformation.ProjectResource.SourceProperty { return { type: SourceType.GitHub, auth: this.oauthToken != null ? { type: 'OAUTH', resource: this.oauthToken } : undefined, @@ -87,7 +87,7 @@ export class GitHubEnterpriseSource extends BuildSource { this.cloneUrl = cloneUrl; } - public toSourceJSON(): codebuild.ProjectResource.SourceProperty { + public toSourceJSON(): codebuild.cloudformation.ProjectResource.SourceProperty { return { type: SourceType.GitHubEnterPrise, location: this.cloneUrl, @@ -103,7 +103,7 @@ export class BitBucketSource extends BuildSource { super(); this.httpsCloneUrl = httpsCloneUrl; } - public toSourceJSON(): codebuild.ProjectResource.SourceProperty { + public toSourceJSON(): codebuild.cloudformation.ProjectResource.SourceProperty { return { type: SourceType.BitBucket, location: this.httpsCloneUrl @@ -119,7 +119,7 @@ export class S3BucketSource extends BuildSource { super(); } - public toSourceJSON(): codebuild.ProjectResource.SourceProperty { + public toSourceJSON(): codebuild.cloudformation.ProjectResource.SourceProperty { return { type: SourceType.S3, location: new FnConcat(this.bucket.bucketName, '/', this.path) diff --git a/packages/@aws-cdk/codebuild/package.json b/packages/@aws-cdk/codebuild/package.json index 44bf6e724e3ab..22c71466d143d 100644 --- a/packages/@aws-cdk/codebuild/package.json +++ b/packages/@aws-cdk/codebuild/package.json @@ -48,7 +48,6 @@ "@aws-cdk/events": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", "@aws-cdk/kms": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta", "@aws-cdk/s3": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/codecommit/.gitignore b/packages/@aws-cdk/codecommit/.gitignore index 2df4d42e01e23..1900b4ac9b084 100644 --- a/packages/@aws-cdk/codecommit/.gitignore +++ b/packages/@aws-cdk/codecommit/.gitignore @@ -2,7 +2,7 @@ *.js.map *.d.ts node_modules -cfn +*.generated.ts dist tsconfig.json tslint.json diff --git a/packages/@aws-cdk/codecommit/lib/codecommit.ts b/packages/@aws-cdk/codecommit/lib/codecommit.ts index a1b8b04aeedda..ff57e0ca478c6 100644 --- a/packages/@aws-cdk/codecommit/lib/codecommit.ts +++ b/packages/@aws-cdk/codecommit/lib/codecommit.ts @@ -1,6 +1,6 @@ import { Arn, Construct, Output } from '@aws-cdk/core'; import { EventRule, EventRuleProps, IEventRuleTarget } from '@aws-cdk/events'; -import * as codecommit from '../cfn/codecommit'; +import * as codecommit from './codecommit.generated'; /** * Properties for the {@link RepositoryRef.import} method. @@ -182,13 +182,13 @@ export interface RepositoryProps { * Provides a CodeCommit Repository */ export class Repository extends RepositoryRef { - private readonly repository: codecommit.RepositoryResource; - private readonly triggers = new Array(); + private readonly repository: codecommit.cloudformation.RepositoryResource; + private readonly triggers = new Array(); constructor(parent: Construct, name: string, props: RepositoryProps) { super(parent, name); - this.repository = new codecommit.RepositoryResource(this, 'Resource', { + this.repository = new codecommit.cloudformation.RepositoryResource(this, 'Resource', { repositoryName: props.repositoryName, repositoryDescription: props.description, triggers: this.triggers diff --git a/packages/@aws-cdk/codecommit/lib/index.ts b/packages/@aws-cdk/codecommit/lib/index.ts index 8ff610a80880b..2328b79377dc4 100644 --- a/packages/@aws-cdk/codecommit/lib/index.ts +++ b/packages/@aws-cdk/codecommit/lib/index.ts @@ -1,4 +1,4 @@ export * from './codecommit'; -// The L1 library for AWS::CodeCommit: -export * from '../cfn/codecommit'; +// AWS::CodeCommit CloudFormation Resources: +export * from './codecommit.generated'; diff --git a/packages/@aws-cdk/codecommit/package.json b/packages/@aws-cdk/codecommit/package.json index 464d518d879bb..68373f9503881 100644 --- a/packages/@aws-cdk/codecommit/package.json +++ b/packages/@aws-cdk/codecommit/package.json @@ -45,7 +45,6 @@ "dependencies": { "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/events": "^0.7.3-beta", - "@aws-cdk/iam": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/iam": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/codedeploy/.gitignore b/packages/@aws-cdk/codedeploy/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/codedeploy/.gitignore +++ b/packages/@aws-cdk/codedeploy/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/codedeploy/lib/index.ts b/packages/@aws-cdk/codedeploy/lib/index.ts index 3462bc90e1d26..c58cefebd524e 100644 --- a/packages/@aws-cdk/codedeploy/lib/index.ts +++ b/packages/@aws-cdk/codedeploy/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::CodeDeploy: -export * from '../cfn/codedeploy'; +// AWS::CodeDeploy CloudFormation Resources: +export * from './codedeploy.generated'; diff --git a/packages/@aws-cdk/codedeploy/package.json b/packages/@aws-cdk/codedeploy/package.json index 73dbe6219d0fd..1ed3af4c69064 100644 --- a/packages/@aws-cdk/codedeploy/package.json +++ b/packages/@aws-cdk/codedeploy/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/codepipeline/.gitignore b/packages/@aws-cdk/codepipeline/.gitignore index e415b9b6b0540..39c91e9b0d07a 100644 --- a/packages/@aws-cdk/codepipeline/.gitignore +++ b/packages/@aws-cdk/codepipeline/.gitignore @@ -3,7 +3,7 @@ tsconfig.json tslint.json *.js.map *.d.ts -cfn +*.generated.ts dist lib/generated/resources.ts *.tgz diff --git a/packages/@aws-cdk/codepipeline/lib/actions.ts b/packages/@aws-cdk/codepipeline/lib/actions.ts index 8bc317317b796..16b3cb9014370 100644 --- a/packages/@aws-cdk/codepipeline/lib/actions.ts +++ b/packages/@aws-cdk/codepipeline/lib/actions.ts @@ -4,8 +4,8 @@ import { Construct, PolicyStatement, Secret } from '@aws-cdk/core'; import { EventRule, EventRuleProps, IEventRuleTarget } from '@aws-cdk/events'; import { LambdaRef } from '@aws-cdk/lambda'; import { BucketRef } from '@aws-cdk/s3'; -import * as codepipeline from '../cfn/codepipeline'; import { Artifact } from './artifact'; +import * as codepipeline from './codepipeline.generated'; import { Stage } from './stage'; import * as validation from './validation'; import { validateArtifactBounds } from './validation'; @@ -154,7 +154,7 @@ export abstract class Action extends Construct { /** * Render the Action to a CloudFormation struct */ - public render(): codepipeline.PipelineResource.ActionDeclarationProperty { + public render(): codepipeline.cloudformation.PipelineResource.ActionDeclarationProperty { return { name: this.name, inputArtifacts: this.inputArtifacts.map(a => ({ name: a.name })), diff --git a/packages/@aws-cdk/codepipeline/lib/index.ts b/packages/@aws-cdk/codepipeline/lib/index.ts index 5c9ccfe4797c9..afa10c509b913 100644 --- a/packages/@aws-cdk/codepipeline/lib/index.ts +++ b/packages/@aws-cdk/codepipeline/lib/index.ts @@ -3,5 +3,5 @@ export * from './artifact'; export * from './pipeline'; export * from './stage'; -// The L1 library for AWS::CodePipeline: -export * from '../cfn/codepipeline'; +// AWS::CodePipeline CloudFormation Resources: +export * from './codepipeline.generated'; diff --git a/packages/@aws-cdk/codepipeline/lib/pipeline.ts b/packages/@aws-cdk/codepipeline/lib/pipeline.ts index 97035dbf54166..9a228930adb2d 100644 --- a/packages/@aws-cdk/codepipeline/lib/pipeline.ts +++ b/packages/@aws-cdk/codepipeline/lib/pipeline.ts @@ -4,7 +4,7 @@ import * as iam from '@aws-cdk/iam'; import { Role } from '@aws-cdk/iam'; import { Bucket, BucketRef } from '@aws-cdk/s3'; import { flatMap, flatten } from '@aws-cdk/util'; -import * as codepipeline from '../cfn/codepipeline'; +import * as codepipeline from './codepipeline.generated'; import { Stage } from './stage'; import * as validation from './validation'; @@ -90,7 +90,7 @@ export class Pipeline extends Construct implements IEventRuleTarget { assumedBy: new ServicePrincipal('codepipeline.amazonaws.com') }); - const codePipeline = new codepipeline.PipelineResource(this, 'Resource', { + const codePipeline = new codepipeline.cloudformation.PipelineResource(this, 'Resource', { artifactStore: new Token(() => this.renderArtifactStore()) as any, stages: new Token(() => this.renderStages()) as any, roleArn: this.role.roleArn, @@ -226,8 +226,8 @@ export class Pipeline extends Construct implements IEventRuleTarget { return []; } - private renderArtifactStore(): codepipeline.PipelineResource.ArtifactStoreProperty { - let encryptionKey: codepipeline.PipelineResource.EncryptionKeyProperty | undefined; + private renderArtifactStore(): codepipeline.cloudformation.PipelineResource.ArtifactStoreProperty { + let encryptionKey: codepipeline.cloudformation.PipelineResource.EncryptionKeyProperty | undefined; const bucketKey = this.artifactBucket.encryptionKey; if (bucketKey) { encryptionKey = { @@ -248,7 +248,7 @@ export class Pipeline extends Construct implements IEventRuleTarget { }; } - private renderStages(): codepipeline.PipelineResource.StageDeclarationProperty[] { + private renderStages(): codepipeline.cloudformation.PipelineResource.StageDeclarationProperty[] { return this.stages.map(stage => stage.render()); } } diff --git a/packages/@aws-cdk/codepipeline/lib/stage.ts b/packages/@aws-cdk/codepipeline/lib/stage.ts index 1c28b088e8297..86ac2fd1e2516 100644 --- a/packages/@aws-cdk/codepipeline/lib/stage.ts +++ b/packages/@aws-cdk/codepipeline/lib/stage.ts @@ -1,7 +1,7 @@ import { Construct } from '@aws-cdk/core'; import { EventRule, EventRuleProps, IEventRuleTarget } from '@aws-cdk/events'; -import * as codepipeline from '../cfn/codepipeline'; import { Action } from './actions'; +import * as codepipeline from './codepipeline.generated'; import { Pipeline } from './pipeline'; import * as validation from './validation'; @@ -44,7 +44,7 @@ export class Stage extends Construct { return this.validateHasActions(); } - public render(): codepipeline.PipelineResource.StageDeclarationProperty { + public render(): codepipeline.cloudformation.PipelineResource.StageDeclarationProperty { return { name: this.name, actions: this._actions.map(action => action.render()) diff --git a/packages/@aws-cdk/codepipeline/package.json b/packages/@aws-cdk/codepipeline/package.json index d257ce32b6427..00ec11f81fa93 100644 --- a/packages/@aws-cdk/codepipeline/package.json +++ b/packages/@aws-cdk/codepipeline/package.json @@ -51,7 +51,6 @@ "@aws-cdk/events": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", "@aws-cdk/lambda": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta", "@aws-cdk/s3": "^0.7.3-beta", "@aws-cdk/util": "^0.7.3-beta" } diff --git a/packages/@aws-cdk/cognito/.gitignore b/packages/@aws-cdk/cognito/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/cognito/.gitignore +++ b/packages/@aws-cdk/cognito/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/cognito/lib/index.ts b/packages/@aws-cdk/cognito/lib/index.ts index 06a7a2443e421..1e585f2ae1c7e 100644 --- a/packages/@aws-cdk/cognito/lib/index.ts +++ b/packages/@aws-cdk/cognito/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::Cognito: -export * from '../cfn/cognito'; +// AWS::Cognito CloudFormation Resources: +export * from './cognito.generated'; diff --git a/packages/@aws-cdk/cognito/package.json b/packages/@aws-cdk/cognito/package.json index 38584b43734c0..8e381db386cc3 100644 --- a/packages/@aws-cdk/cognito/package.json +++ b/packages/@aws-cdk/cognito/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/config/.gitignore b/packages/@aws-cdk/config/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/config/.gitignore +++ b/packages/@aws-cdk/config/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/config/lib/index.ts b/packages/@aws-cdk/config/lib/index.ts index ef22f02b48a4b..de950dfdb59af 100644 --- a/packages/@aws-cdk/config/lib/index.ts +++ b/packages/@aws-cdk/config/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::Config: -export * from '../cfn/config'; +// AWS::Config CloudFormation Resources: +export * from './config.generated'; diff --git a/packages/@aws-cdk/config/package.json b/packages/@aws-cdk/config/package.json index 9ee5782e28891..a056431d6e380 100644 --- a/packages/@aws-cdk/config/package.json +++ b/packages/@aws-cdk/config/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/core/lib/core/construct.ts b/packages/@aws-cdk/core/lib/core/construct.ts index ff05214b6ae81..c8bf3838d537f 100644 --- a/packages/@aws-cdk/core/lib/core/construct.ts +++ b/packages/@aws-cdk/core/lib/core/construct.ts @@ -279,6 +279,8 @@ export class Construct { * In the future we can add some type-checking here, maybe even auto-generate during compilation. * @param props The props bag. * @param name The name of the required property. + * + * @deprecated use ``requireProperty`` from ``@aws-cdk/runtime`` instead. */ protected required(props: any, name: string): any { if (!(name in props)) { @@ -414,4 +416,4 @@ function createStackTrace(below: Function): string[] { return []; } return object.stack.split('\n').slice(1).map(s => s.replace(/^\s*at\s+/, '')); -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/core/lib/index.ts b/packages/@aws-cdk/core/lib/index.ts index 6a9cc83a3cd13..fa933eb4685ca 100644 --- a/packages/@aws-cdk/core/lib/index.ts +++ b/packages/@aws-cdk/core/lib/index.ts @@ -24,3 +24,5 @@ export * from './cloudformation/token-aware-jsonify'; export * from './app'; export * from './context'; export * from './environment'; + +export * from './runtime'; diff --git a/packages/@aws-cdk/runtime/lib/index.ts b/packages/@aws-cdk/core/lib/runtime.ts similarity index 93% rename from packages/@aws-cdk/runtime/lib/index.ts rename to packages/@aws-cdk/core/lib/runtime.ts index 26b67111d231a..92e882452ffa1 100644 --- a/packages/@aws-cdk/runtime/lib/index.ts +++ b/packages/@aws-cdk/core/lib/runtime.ts @@ -1,3 +1,5 @@ +import { Construct } from './core/construct'; + // ---------------------------------------------------------------------- // PROPERTY MAPPERS // @@ -319,6 +321,26 @@ export function requiredValidator(x: any) { return VALIDATION_SUCCESS; } +/** + * Require a property from a property bag. + * + * @param props the property bag from which a property is required. + * @param name the name of the required property. + * @param typeName the name of the construct type that requires the property + * + * @returns the value of ``props[name]`` + * + * @throws if the property ``name`` is not present in ``props``. + */ +export function requireProperty(props: { [name: string]: any }, name: string, context: Construct): any { + if (!(name in props)) { + throw new Error(`${context.toString()} is missing required property: ${name}`); + } + const value = props[name]; + // Possibly add type-checking here... + return value; +} + /** * Validates if any of the given validators matches * diff --git a/packages/@aws-cdk/custom-resources/lib/resource.ts b/packages/@aws-cdk/custom-resources/lib/resource.ts index 085c54c8272fc..845dffa514750 100644 --- a/packages/@aws-cdk/custom-resources/lib/resource.ts +++ b/packages/@aws-cdk/custom-resources/lib/resource.ts @@ -1,4 +1,4 @@ -import * as cloudformation from '@aws-cdk/cloudformation'; +import { cloudformation } from '@aws-cdk/cloudformation'; import { Construct } from '@aws-cdk/core'; import { LambdaRef } from '@aws-cdk/lambda'; import { TopicRef } from '@aws-cdk/sns'; diff --git a/packages/@aws-cdk/custom-resources/package.json b/packages/@aws-cdk/custom-resources/package.json index d9f63adff9f57..adbcfeebaf739 100644 --- a/packages/@aws-cdk/custom-resources/package.json +++ b/packages/@aws-cdk/custom-resources/package.json @@ -44,7 +44,6 @@ "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", "@aws-cdk/lambda": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta", "@aws-cdk/sns": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/datapipeline/.gitignore b/packages/@aws-cdk/datapipeline/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/datapipeline/.gitignore +++ b/packages/@aws-cdk/datapipeline/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/datapipeline/lib/index.ts b/packages/@aws-cdk/datapipeline/lib/index.ts index d1b97f0108366..aeec956c06306 100644 --- a/packages/@aws-cdk/datapipeline/lib/index.ts +++ b/packages/@aws-cdk/datapipeline/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::DataPipeline: -export * from '../cfn/datapipeline'; +// AWS::DataPipeline CloudFormation Resources: +export * from './datapipeline.generated'; diff --git a/packages/@aws-cdk/datapipeline/package.json b/packages/@aws-cdk/datapipeline/package.json index ea972c3eeebe8..8ad3afa5626a0 100644 --- a/packages/@aws-cdk/datapipeline/package.json +++ b/packages/@aws-cdk/datapipeline/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/dax/.gitignore b/packages/@aws-cdk/dax/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/dax/.gitignore +++ b/packages/@aws-cdk/dax/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/dax/lib/index.ts b/packages/@aws-cdk/dax/lib/index.ts index 75afc83d0f018..96839bc0c2e2f 100644 --- a/packages/@aws-cdk/dax/lib/index.ts +++ b/packages/@aws-cdk/dax/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::DAX: -export * from '../cfn/dax'; +// AWS::DAX CloudFormation Resources: +export * from './dax.generated'; diff --git a/packages/@aws-cdk/dax/package.json b/packages/@aws-cdk/dax/package.json index 9e936b4c80876..831132c63af0a 100644 --- a/packages/@aws-cdk/dax/package.json +++ b/packages/@aws-cdk/dax/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/directoryservice/.gitignore b/packages/@aws-cdk/directoryservice/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/directoryservice/.gitignore +++ b/packages/@aws-cdk/directoryservice/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/directoryservice/lib/index.ts b/packages/@aws-cdk/directoryservice/lib/index.ts index efcd730dd8bab..f09fe04e797b5 100644 --- a/packages/@aws-cdk/directoryservice/lib/index.ts +++ b/packages/@aws-cdk/directoryservice/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::DirectoryService: -export * from '../cfn/directoryservice'; +// AWS::DirectoryService CloudFormation Resources: +export * from './directoryservice.generated'; diff --git a/packages/@aws-cdk/directoryservice/package.json b/packages/@aws-cdk/directoryservice/package.json index d471e5a313188..1c30dd252abc5 100644 --- a/packages/@aws-cdk/directoryservice/package.json +++ b/packages/@aws-cdk/directoryservice/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/dms/.gitignore b/packages/@aws-cdk/dms/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/dms/.gitignore +++ b/packages/@aws-cdk/dms/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/dms/lib/index.ts b/packages/@aws-cdk/dms/lib/index.ts index 5f56821316dac..cc2298668c883 100644 --- a/packages/@aws-cdk/dms/lib/index.ts +++ b/packages/@aws-cdk/dms/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::DMS: -export * from '../cfn/dms'; +// AWS::DMS CloudFormation Resources: +export * from './dms.generated'; diff --git a/packages/@aws-cdk/dms/package.json b/packages/@aws-cdk/dms/package.json index 6697ffd6d14ca..28a4413a1ae79 100644 --- a/packages/@aws-cdk/dms/package.json +++ b/packages/@aws-cdk/dms/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/dynamodb/.gitignore b/packages/@aws-cdk/dynamodb/.gitignore index 8634a5e37938c..8d01974b8efbc 100644 --- a/packages/@aws-cdk/dynamodb/.gitignore +++ b/packages/@aws-cdk/dynamodb/.gitignore @@ -2,7 +2,7 @@ *.js.map *.d.ts node_modules -cfn +*.generated.ts dist tsconfig.json tslint.json diff --git a/packages/@aws-cdk/dynamodb/lib/index.ts b/packages/@aws-cdk/dynamodb/lib/index.ts index a4397d5dc6416..66713a82570f8 100644 --- a/packages/@aws-cdk/dynamodb/lib/index.ts +++ b/packages/@aws-cdk/dynamodb/lib/index.ts @@ -1,8 +1,8 @@ import { Construct, Token } from '@aws-cdk/core'; -import * as dynamodb from '../cfn/dynamodb'; +import * as dynamodb from './dynamodb.generated'; -// The L1 library for AWS::DynamoDB: -export * from '../cfn/dynamodb'; +// AWS::DynamoDB CloudFormation Resources: +export * from './dynamodb.generated'; const HASH_KEY_TYPE = 'HASH'; const RANGE_KEY_TYPE = 'RANGE'; @@ -32,10 +32,10 @@ export interface TableProps { * Provides a DynamoDB table. */ export class Table extends Construct { - private readonly table: dynamodb.TableResource; + private readonly table: dynamodb.cloudformation.TableResource; - private readonly keySchema = new Array(); - private readonly attributeDefinitions = new Array(); + private readonly keySchema = new Array(); + private readonly attributeDefinitions = new Array(); constructor(parent: Construct, name: string, props: TableProps = {}) { super(parent, name); @@ -43,7 +43,7 @@ export class Table extends Construct { const readCapacityUnits = props.readCapacity || 5; const writeCapacityUnits = props.writeCapacity || 5; - this.table = new dynamodb.TableResource(this, 'Resource', { + this.table = new dynamodb.cloudformation.TableResource(this, 'Resource', { tableName: props.tableName, keySchema: this.keySchema, attributeDefinitions: this.attributeDefinitions, diff --git a/packages/@aws-cdk/dynamodb/package.json b/packages/@aws-cdk/dynamodb/package.json index fd054c4b3df3f..819a35b48d875 100644 --- a/packages/@aws-cdk/dynamodb/package.json +++ b/packages/@aws-cdk/dynamodb/package.json @@ -42,7 +42,6 @@ }, "dependencies": { "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/iam": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/iam": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/ec2/.gitignore b/packages/@aws-cdk/ec2/.gitignore index 32fa52d170b5c..33e30b6d78f59 100644 --- a/packages/@aws-cdk/ec2/.gitignore +++ b/packages/@aws-cdk/ec2/.gitignore @@ -3,6 +3,6 @@ tsconfig.json tslint.json *.js.map *.d.ts -cfn +*.generated.ts dist test/cdk.json diff --git a/packages/@aws-cdk/ec2/lib/fleet.ts b/packages/@aws-cdk/ec2/lib/fleet.ts index ebeef5d049503..ad9f3d1b1b78e 100644 --- a/packages/@aws-cdk/ec2/lib/fleet.ts +++ b/packages/@aws-cdk/ec2/lib/fleet.ts @@ -62,7 +62,7 @@ export interface FleetProps { * SNS topic to send notifications about fleet changes * @default No fleet change notifications will be sent. */ - notificationsTopic?: sns.TopicResource; + notificationsTopic?: sns.cloudformation.TopicResource; /** * Whether the instances can initiate connections to anywhere by default @@ -102,7 +102,7 @@ export class Fleet extends Construct implements IClassicLoadBalancerTarget { public readonly role: iam.Role; private readonly userDataLines = new Array(); - private readonly autoScalingGroup: autoscaling.AutoScalingGroupResource; + private readonly autoScalingGroup: autoscaling.cloudformation.AutoScalingGroupResource; private readonly securityGroup: SecurityGroup; private readonly loadBalancerNames: Token[] = []; @@ -121,7 +121,7 @@ export class Fleet extends Construct implements IClassicLoadBalancerTarget { assumedBy: new ServicePrincipal('ec2.amazonaws.com') }); - const iamProfile = new iam.InstanceProfileResource(this, 'InstanceProfile', { + const iamProfile = new iam.cloudformation.InstanceProfileResource(this, 'InstanceProfile', { roles: [ this.role.roleName ] }); @@ -129,7 +129,7 @@ export class Fleet extends Construct implements IClassicLoadBalancerTarget { const machineImage = props.machineImage.getImage(this); const userDataToken = new Token(() => new FnBase64((machineImage.os.createUserData(this.userDataLines)))); - const launchConfig = new autoscaling.LaunchConfigurationResource(this, 'LaunchConfig', { + const launchConfig = new autoscaling.cloudformation.LaunchConfigurationResource(this, 'LaunchConfig', { imageId: machineImage.imageId, keyName: props.keyName, instanceType: props.instanceType.toString(), @@ -144,7 +144,7 @@ export class Fleet extends Construct implements IClassicLoadBalancerTarget { const maxSize = props.maxSize || 1; const desiredCapacity = props.desiredCapacity || 1; - const asgProps: autoscaling.AutoScalingGroupResourceProps = { + const asgProps: autoscaling.cloudformation.AutoScalingGroupResourceProps = { minSize: minSize.toString(), maxSize: maxSize.toString(), desiredCapacity: desiredCapacity.toString(), @@ -168,7 +168,7 @@ export class Fleet extends Construct implements IClassicLoadBalancerTarget { const subnets = props.vpc.subnets(props.vpcPlacement); asgProps.vpcZoneIdentifier = subnets.map(n => n.subnetId); - this.autoScalingGroup = new autoscaling.AutoScalingGroupResource(this, 'ASG', asgProps); + this.autoScalingGroup = new autoscaling.cloudformation.AutoScalingGroupResource(this, 'ASG', asgProps); this.osType = machineImage.os.type; } diff --git a/packages/@aws-cdk/ec2/lib/index.ts b/packages/@aws-cdk/ec2/lib/index.ts index 45360591e9aee..ff61725e2c4b4 100644 --- a/packages/@aws-cdk/ec2/lib/index.ts +++ b/packages/@aws-cdk/ec2/lib/index.ts @@ -8,5 +8,5 @@ export * from './security-group'; export * from './vpc'; export * from './vpc-ref'; -// The L1 library for AWS::EC2: -export * from '../cfn/ec2'; +// AWS::EC2 CloudFormation Resources: +export * from './ec2.generated'; diff --git a/packages/@aws-cdk/ec2/lib/load-balancer.ts b/packages/@aws-cdk/ec2/lib/load-balancer.ts index bcca8412c99dc..3ada0f3226a3c 100644 --- a/packages/@aws-cdk/ec2/lib/load-balancer.ts +++ b/packages/@aws-cdk/ec2/lib/load-balancer.ts @@ -200,9 +200,9 @@ export class ClassicLoadBalancer extends Construct implements IConnectable { */ public readonly listenerPorts: ClassicListenerPort[] = []; - private readonly elb: elasticloadbalancing.LoadBalancerResource; + private readonly elb: elasticloadbalancing.cloudformation.LoadBalancerResource; private readonly securityGroup: SecurityGroup; - private readonly listeners: elasticloadbalancing.LoadBalancerResource.ListenersProperty[] = []; + private readonly listeners: elasticloadbalancing.cloudformation.LoadBalancerResource.ListenersProperty[] = []; private readonly instancePorts: number[] = []; private readonly targets: IClassicLoadBalancerTarget[] = []; @@ -217,7 +217,7 @@ export class ClassicLoadBalancer extends Construct implements IConnectable { // Depending on whether the ELB has public or internal IPs, pick the right backend subnets const subnets: VpcSubnetRef[] = props.internetFacing ? props.vpc.publicSubnets : props.vpc.privateSubnets; - this.elb = new elasticloadbalancing.LoadBalancerResource(this, 'Resource', { + this.elb = new elasticloadbalancing.cloudformation.LoadBalancerResource(this, 'Resource', { securityGroups: [ this.securityGroup.securityGroupId ], subnets: subnets.map(s => s.subnetId), listeners: new Token(() => this.listeners), @@ -366,7 +366,7 @@ function ifUndefinedLazy(x: T | undefined, def: () => T): T { /** * Turn health check parameters into a parameter blob for the Classic LB */ -function healthCheckToJSON(healthCheck: HealthCheck): elasticloadbalancing.LoadBalancerResource.HealthCheckProperty { +function healthCheckToJSON(healthCheck: HealthCheck): elasticloadbalancing.cloudformation.LoadBalancerResource.HealthCheckProperty { const protocol = ifUndefined(healthCheck.protocol, ifUndefined(tryWellKnownProtocol(healthCheck.port), LoadBalancingProtocol.Tcp)); diff --git a/packages/@aws-cdk/ec2/lib/security-group.ts b/packages/@aws-cdk/ec2/lib/security-group.ts index c0d8104bd06c2..285931263be4c 100644 --- a/packages/@aws-cdk/ec2/lib/security-group.ts +++ b/packages/@aws-cdk/ec2/lib/security-group.ts @@ -1,6 +1,6 @@ import { Construct, Token } from '@aws-cdk/core'; -import * as ec2 from '../cfn/ec2'; import { IConnectionPeer, IPortRange } from './connection'; +import * as ec2 from './ec2.generated'; import { slugify } from './util'; import { VpcNetworkRef } from './vpc-ref'; @@ -36,7 +36,7 @@ export class SecurityGroupRef extends Construct implements ISecurityGroup { } public addIngressRule(peer: IConnectionPeer, connection: IPortRange, description: string) { - new ec2.SecurityGroupIngressResource(this, slugify(description), { + new ec2.cloudformation.SecurityGroupIngressResource(this, slugify(description), { groupId: this.securityGroupId, ...peer.toIngressRuleJSON(), ...connection.toRuleJSON(), @@ -45,7 +45,7 @@ export class SecurityGroupRef extends Construct implements ISecurityGroup { } public addEgressRule(peer: IConnectionPeer, connection: IPortRange, description: string) { - new ec2.SecurityGroupEgressResource(this, slugify(description), { + new ec2.cloudformation.SecurityGroupEgressResource(this, slugify(description), { groupId: this.securityGroupId, ...peer.toEgressRuleJSON(), ...connection.toRuleJSON(), @@ -106,16 +106,16 @@ export class SecurityGroup extends SecurityGroupRef { */ public readonly vpcId: ec2.SecurityGroupVpcId; - private readonly securityGroup: ec2.SecurityGroupResource; - private readonly directIngressRules: ec2.SecurityGroupResource.IngressProperty[] = []; - private readonly directEgressRules: ec2.SecurityGroupResource.EgressProperty[] = []; + private readonly securityGroup: ec2.cloudformation.SecurityGroupResource; + private readonly directIngressRules: ec2.cloudformation.SecurityGroupResource.IngressProperty[] = []; + private readonly directEgressRules: ec2.cloudformation.SecurityGroupResource.EgressProperty[] = []; constructor(parent: Construct, name: string, props: SecurityGroupProps) { super(parent, name, { securityGroupId: new Token(() => this.securityGroup.securityGroupId) }); const groupDescription = props.description || this.path; - this.securityGroup = new ec2.SecurityGroupResource(this, 'Resource', { + this.securityGroup = new ec2.cloudformation.SecurityGroupResource(this, 'Resource', { groupName: props.groupName, groupDescription, securityGroupIngress: new Token(() => this.directIngressRules), @@ -156,7 +156,7 @@ export class SecurityGroup extends SecurityGroupRef { /** * Add a direct ingress rule */ - private addDirectIngressRule(rule: ec2.SecurityGroupResource.IngressProperty) { + private addDirectIngressRule(rule: ec2.cloudformation.SecurityGroupResource.IngressProperty) { if (!this.hasIngressRule(rule)) { this.directIngressRules.push(rule); } @@ -165,14 +165,14 @@ export class SecurityGroup extends SecurityGroupRef { /** * Return whether the given ingress rule exists on the group */ - private hasIngressRule(rule: ec2.SecurityGroupResource.IngressProperty): boolean { + private hasIngressRule(rule: ec2.cloudformation.SecurityGroupResource.IngressProperty): boolean { return this.directIngressRules.findIndex(r => ingressRulesEqual(r, rule)) > -1; } /** * Add a direct egress rule */ - private addDirectEgressRule(rule: ec2.SecurityGroupResource.EgressProperty) { + private addDirectEgressRule(rule: ec2.cloudformation.SecurityGroupResource.EgressProperty) { if (!this.hasEgressRule(rule)) { this.directEgressRules.push(rule); } @@ -181,7 +181,7 @@ export class SecurityGroup extends SecurityGroupRef { /** * Return whether the given egress rule exists on the group */ - private hasEgressRule(rule: ec2.SecurityGroupResource.EgressProperty): boolean { + private hasEgressRule(rule: ec2.cloudformation.SecurityGroupResource.EgressProperty): boolean { return this.directEgressRules.findIndex(r => egressRulesEqual(r, rule)) > -1; } } @@ -232,7 +232,7 @@ export interface ConnectionRule { /** * Compare two ingress rules for equality the same way CloudFormation would (discarding description) */ -function ingressRulesEqual(a: ec2.SecurityGroupResource.IngressProperty, b: ec2.SecurityGroupResource.IngressProperty) { +function ingressRulesEqual(a: ec2.cloudformation.SecurityGroupResource.IngressProperty, b: ec2.cloudformation.SecurityGroupResource.IngressProperty) { return a.cidrIp === b.cidrIp && a.cidrIpv6 === b.cidrIpv6 && a.fromPort === b.fromPort @@ -246,7 +246,7 @@ function ingressRulesEqual(a: ec2.SecurityGroupResource.IngressProperty, b: ec2. /** * Compare two egress rules for equality the same way CloudFormation would (discarding description) */ -function egressRulesEqual(a: ec2.SecurityGroupResource.EgressProperty, b: ec2.SecurityGroupResource.EgressProperty) { +function egressRulesEqual(a: ec2.cloudformation.SecurityGroupResource.EgressProperty, b: ec2.cloudformation.SecurityGroupResource.EgressProperty) { return a.cidrIp === b.cidrIp && a.cidrIpv6 === b.cidrIpv6 && a.fromPort === b.fromPort diff --git a/packages/@aws-cdk/ec2/lib/vpc.ts b/packages/@aws-cdk/ec2/lib/vpc.ts index ab3a1f4160e24..38637c18ef6a9 100644 --- a/packages/@aws-cdk/ec2/lib/vpc.ts +++ b/packages/@aws-cdk/ec2/lib/vpc.ts @@ -1,5 +1,5 @@ import { AvailabilityZoneProvider, Construct, Tag, Token } from '@aws-cdk/core'; -import * as ec2 from '../cfn/ec2'; +import * as ec2 from './ec2.generated'; import { NetworkUtils } from './network-util'; import { VpcNetworkId, VpcNetworkRef, VpcSubnetId, VpcSubnetRef } from './vpc-ref'; /** @@ -145,7 +145,7 @@ export class VpcNetwork extends VpcNetworkRef { /** * The VPC resource */ - private resource: ec2.VPCResource; + private resource: ec2.cloudformation.VPCResource; /** * VpcNetwork creates a VPC that spans a whole region. @@ -169,7 +169,7 @@ export class VpcNetwork extends VpcNetworkRef { const outboundTraffic = props.outboundTraffic || OutboundTrafficMode.FromPublicAndPrivateSubnets; // Define a VPC using the provided CIDR range - this.resource = new ec2.VPCResource(this, 'Resource', { + this.resource = new ec2.cloudformation.VPCResource(this, 'Resource', { cidrBlock, enableDnsHostnames, enableDnsSupport, @@ -189,8 +189,8 @@ export class VpcNetwork extends VpcNetworkRef { // Create an Internet Gateway and attach it (if the outbound traffic mode != None) if (allowOutbound) { - const igw = new ec2.InternetGatewayResource(this, 'IGW'); - const att = new ec2.VPCGatewayAttachmentResource(this, 'VPCGW', { + const igw = new ec2.cloudformation.InternetGatewayResource(this, 'IGW'); + const att = new ec2.cloudformation.VPCGatewayAttachmentResource(this, 'VPCGW', { internetGatewayId: igw.ref, vpcId: this.resource.ref }); @@ -298,20 +298,20 @@ export class VpcSubnet extends VpcSubnetRef { constructor(parent: Construct, name: string, props: VpcSubnetProps) { super(parent, name); this.availabilityZone = props.availabilityZone; - const subnet = new ec2.SubnetResource(this, 'Subnet', { + const subnet = new ec2.cloudformation.SubnetResource(this, 'Subnet', { vpcId: props.vpcId, cidrBlock: props.cidrBlock, availabilityZone: props.availabilityZone, mapPublicIpOnLaunch: props.mapPublicIpOnLaunch, }); this.subnetId = subnet.ref; - const table = new ec2.RouteTableResource(this, 'RouteTable', { + const table = new ec2.cloudformation.RouteTableResource(this, 'RouteTable', { vpcId: props.vpcId, }); this.routeTableId = table.ref; // Associate the public route table for this subnet, to this subnet - const routeAssoc = new ec2.SubnetRouteTableAssociationResource(this, 'RouteTableAssociatioin', { + const routeAssoc = new ec2.cloudformation.SubnetRouteTableAssociationResource(this, 'RouteTableAssociatioin', { subnetId: this.subnetId, routeTableId: table.ref }); @@ -320,7 +320,7 @@ export class VpcSubnet extends VpcSubnetRef { } protected addDefaultRouteToNAT(natGatewayId: Token) { - new ec2.RouteResource(this, `DefaultRoute`, { + new ec2.cloudformation.RouteResource(this, `DefaultRoute`, { routeTableId: this.routeTableId, destinationCidrBlock: '0.0.0.0/0', natGatewayId @@ -328,7 +328,7 @@ export class VpcSubnet extends VpcSubnetRef { } protected addDefaultRouteToIGW(gatewayId: Token) { - new ec2.RouteResource(this, `DefaultRoute`, { + new ec2.cloudformation.RouteResource(this, `DefaultRoute`, { routeTableId: this.routeTableId, destinationCidrBlock: '0.0.0.0/0', gatewayId @@ -358,9 +358,9 @@ export class VpcPublicSubnet extends VpcSubnet { */ public addNatGateway() { // Create a NAT Gateway in this public subnet - const ngw = new ec2.NatGatewayResource(this, `NATGateway`, { + const ngw = new ec2.cloudformation.NatGatewayResource(this, `NATGateway`, { subnetId: this.subnetId, - allocationId: new ec2.EIPResource(this, `EIP`, { + allocationId: new ec2.cloudformation.EIPResource(this, `EIP`, { domain: 'vpc' }).eipAllocationId }); diff --git a/packages/@aws-cdk/ec2/package.json b/packages/@aws-cdk/ec2/package.json index 20224b0005dbd..58bc20c184102 100644 --- a/packages/@aws-cdk/ec2/package.json +++ b/packages/@aws-cdk/ec2/package.json @@ -47,7 +47,6 @@ "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/elasticloadbalancing": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta", "@aws-cdk/sns": "^0.7.3-beta", "@aws-cdk/util": "^0.7.3-beta" } diff --git a/packages/@aws-cdk/ecr/.gitignore b/packages/@aws-cdk/ecr/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/ecr/.gitignore +++ b/packages/@aws-cdk/ecr/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/ecr/lib/index.ts b/packages/@aws-cdk/ecr/lib/index.ts index a11477710e789..14adb95e85a9f 100644 --- a/packages/@aws-cdk/ecr/lib/index.ts +++ b/packages/@aws-cdk/ecr/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::ECR: -export * from '../cfn/ecr'; +// AWS::ECR CloudFormation Resources: +export * from './ecr.generated'; diff --git a/packages/@aws-cdk/ecr/package.json b/packages/@aws-cdk/ecr/package.json index e6257b52098da..9fc8c7053bd74 100644 --- a/packages/@aws-cdk/ecr/package.json +++ b/packages/@aws-cdk/ecr/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/ecs/.gitignore b/packages/@aws-cdk/ecs/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/ecs/.gitignore +++ b/packages/@aws-cdk/ecs/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/ecs/lib/index.ts b/packages/@aws-cdk/ecs/lib/index.ts index f07e4d281ab64..8cccdf3fb43d7 100644 --- a/packages/@aws-cdk/ecs/lib/index.ts +++ b/packages/@aws-cdk/ecs/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::ECS: -export * from '../cfn/ecs'; +// AWS::ECS CloudFormation Resources: +export * from './ecs.generated'; diff --git a/packages/@aws-cdk/ecs/package.json b/packages/@aws-cdk/ecs/package.json index ad2e5a13f1bb8..496d07a20ba7c 100644 --- a/packages/@aws-cdk/ecs/package.json +++ b/packages/@aws-cdk/ecs/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/efs/.gitignore b/packages/@aws-cdk/efs/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/efs/.gitignore +++ b/packages/@aws-cdk/efs/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/efs/lib/index.ts b/packages/@aws-cdk/efs/lib/index.ts index 74142ed375ab2..0f93e4419ab6b 100644 --- a/packages/@aws-cdk/efs/lib/index.ts +++ b/packages/@aws-cdk/efs/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::EFS: -export * from '../cfn/efs'; +// AWS::EFS CloudFormation Resources: +export * from './efs.generated'; diff --git a/packages/@aws-cdk/efs/package.json b/packages/@aws-cdk/efs/package.json index 1878c76fdab3f..24b8c6c8201d8 100644 --- a/packages/@aws-cdk/efs/package.json +++ b/packages/@aws-cdk/efs/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/eks/.gitignore b/packages/@aws-cdk/eks/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/eks/.gitignore +++ b/packages/@aws-cdk/eks/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/eks/lib/index.ts b/packages/@aws-cdk/eks/lib/index.ts index 2f83ec98a4654..815ecf6ab62fc 100644 --- a/packages/@aws-cdk/eks/lib/index.ts +++ b/packages/@aws-cdk/eks/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::EKS: -export * from '../cfn/eks'; +// AWS::EKS CloudFormation Resources: +export * from './eks.generated'; diff --git a/packages/@aws-cdk/eks/package.json b/packages/@aws-cdk/eks/package.json index 90917b1dcf333..12a646807aff0 100644 --- a/packages/@aws-cdk/eks/package.json +++ b/packages/@aws-cdk/eks/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/elasticache/.gitignore b/packages/@aws-cdk/elasticache/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/elasticache/.gitignore +++ b/packages/@aws-cdk/elasticache/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/elasticache/lib/index.ts b/packages/@aws-cdk/elasticache/lib/index.ts index 34fc2399d73fa..ce5e23047a4c9 100644 --- a/packages/@aws-cdk/elasticache/lib/index.ts +++ b/packages/@aws-cdk/elasticache/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::ElastiCache: -export * from '../cfn/elasticache'; +// AWS::ElastiCache CloudFormation Resources: +export * from './elasticache.generated'; diff --git a/packages/@aws-cdk/elasticache/package.json b/packages/@aws-cdk/elasticache/package.json index 16d208bcbfd0f..6a63437ef3dce 100644 --- a/packages/@aws-cdk/elasticache/package.json +++ b/packages/@aws-cdk/elasticache/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/elasticbeanstalk/.gitignore b/packages/@aws-cdk/elasticbeanstalk/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/elasticbeanstalk/.gitignore +++ b/packages/@aws-cdk/elasticbeanstalk/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/elasticbeanstalk/lib/index.ts b/packages/@aws-cdk/elasticbeanstalk/lib/index.ts index 71213bfcfa6de..925781065558f 100644 --- a/packages/@aws-cdk/elasticbeanstalk/lib/index.ts +++ b/packages/@aws-cdk/elasticbeanstalk/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::ElasticBeanstalk: -export * from '../cfn/elasticbeanstalk'; +// AWS::ElasticBeanstalk CloudFormation Resources: +export * from './elasticbeanstalk.generated'; diff --git a/packages/@aws-cdk/elasticbeanstalk/package.json b/packages/@aws-cdk/elasticbeanstalk/package.json index 9e2ba2faeec5f..bbc765b872db7 100644 --- a/packages/@aws-cdk/elasticbeanstalk/package.json +++ b/packages/@aws-cdk/elasticbeanstalk/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/elasticloadbalancing/.gitignore b/packages/@aws-cdk/elasticloadbalancing/.gitignore index a725ff9821bb6..7566dec850f55 100644 --- a/packages/@aws-cdk/elasticloadbalancing/.gitignore +++ b/packages/@aws-cdk/elasticloadbalancing/.gitignore @@ -3,6 +3,6 @@ tsconfig.json tslint.json *.js.map *.d.ts -cfn +*.generated.ts dist lib/generated/resources.ts diff --git a/packages/@aws-cdk/elasticloadbalancing/lib/index.ts b/packages/@aws-cdk/elasticloadbalancing/lib/index.ts index 3e712965b5fbe..ca0a911e001da 100644 --- a/packages/@aws-cdk/elasticloadbalancing/lib/index.ts +++ b/packages/@aws-cdk/elasticloadbalancing/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 library for AWS::ElasticLoadBalancing: -export * from '../cfn/elasticloadbalancing'; +// AWS::ElasticLoadBalancing CloudFormation Resources: +export * from './elasticloadbalancing.generated'; diff --git a/packages/@aws-cdk/elasticloadbalancing/package.json b/packages/@aws-cdk/elasticloadbalancing/package.json index 06cbc4f75fa8e..7f014f7635ad6 100644 --- a/packages/@aws-cdk/elasticloadbalancing/package.json +++ b/packages/@aws-cdk/elasticloadbalancing/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/elasticloadbalancingv2/.gitignore b/packages/@aws-cdk/elasticloadbalancingv2/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/elasticloadbalancingv2/.gitignore +++ b/packages/@aws-cdk/elasticloadbalancingv2/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/elasticloadbalancingv2/lib/index.ts b/packages/@aws-cdk/elasticloadbalancingv2/lib/index.ts index 6f16d7fea7e15..682c0a808371f 100644 --- a/packages/@aws-cdk/elasticloadbalancingv2/lib/index.ts +++ b/packages/@aws-cdk/elasticloadbalancingv2/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::ElasticLoadBalancingV2: -export * from '../cfn/elasticloadbalancingv2'; +// AWS::ElasticLoadBalancingV2 CloudFormation Resources: +export * from './elasticloadbalancingv2.generated'; diff --git a/packages/@aws-cdk/elasticloadbalancingv2/package.json b/packages/@aws-cdk/elasticloadbalancingv2/package.json index e4a8a352cb176..9508e56c33a62 100644 --- a/packages/@aws-cdk/elasticloadbalancingv2/package.json +++ b/packages/@aws-cdk/elasticloadbalancingv2/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/elasticsearch/.gitignore b/packages/@aws-cdk/elasticsearch/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/elasticsearch/.gitignore +++ b/packages/@aws-cdk/elasticsearch/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/elasticsearch/lib/index.ts b/packages/@aws-cdk/elasticsearch/lib/index.ts index 988157e6aa36f..2ae3564622996 100644 --- a/packages/@aws-cdk/elasticsearch/lib/index.ts +++ b/packages/@aws-cdk/elasticsearch/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::Elasticsearch: -export * from '../cfn/elasticsearch'; +// AWS::Elasticsearch CloudFormation Resources: +export * from './elasticsearch.generated'; diff --git a/packages/@aws-cdk/elasticsearch/package.json b/packages/@aws-cdk/elasticsearch/package.json index 32813d63ecd8d..ecadb77b60a7f 100644 --- a/packages/@aws-cdk/elasticsearch/package.json +++ b/packages/@aws-cdk/elasticsearch/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/emr/.gitignore b/packages/@aws-cdk/emr/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/emr/.gitignore +++ b/packages/@aws-cdk/emr/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/emr/lib/index.ts b/packages/@aws-cdk/emr/lib/index.ts index 51e0160945820..51d78c1ad13fc 100644 --- a/packages/@aws-cdk/emr/lib/index.ts +++ b/packages/@aws-cdk/emr/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::EMR: -export * from '../cfn/emr'; +// AWS::EMR CloudFormation Resources: +export * from './emr.generated'; diff --git a/packages/@aws-cdk/emr/package.json b/packages/@aws-cdk/emr/package.json index 097cd90064fed..5d379b649c5de 100644 --- a/packages/@aws-cdk/emr/package.json +++ b/packages/@aws-cdk/emr/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/events/.gitignore b/packages/@aws-cdk/events/.gitignore index a725ff9821bb6..7566dec850f55 100644 --- a/packages/@aws-cdk/events/.gitignore +++ b/packages/@aws-cdk/events/.gitignore @@ -3,6 +3,6 @@ tsconfig.json tslint.json *.js.map *.d.ts -cfn +*.generated.ts dist lib/generated/resources.ts diff --git a/packages/@aws-cdk/events/lib/index.ts b/packages/@aws-cdk/events/lib/index.ts index fb0ab8bb9cdfe..c2bd7a23dcb59 100644 --- a/packages/@aws-cdk/events/lib/index.ts +++ b/packages/@aws-cdk/events/lib/index.ts @@ -4,5 +4,5 @@ export * from './target'; export * from './event-pattern'; export * from './input-options'; -// The L1 library for AWS::Events: -export * from '../cfn/events'; +// AWS::Events CloudFormation Resources: +export * from './events.generated'; diff --git a/packages/@aws-cdk/events/lib/rule-ref.ts b/packages/@aws-cdk/events/lib/rule-ref.ts index 113e6a142cea1..65d1c2207af01 100644 --- a/packages/@aws-cdk/events/lib/rule-ref.ts +++ b/packages/@aws-cdk/events/lib/rule-ref.ts @@ -1,5 +1,5 @@ import { Construct, Output } from '@aws-cdk/core'; -import * as events from '../cfn/events'; +import * as events from './events.generated'; export interface EventRuleRefProps { /** diff --git a/packages/@aws-cdk/events/lib/rule.ts b/packages/@aws-cdk/events/lib/rule.ts index 2ab8388ba69d4..c9e015bc09ff3 100644 --- a/packages/@aws-cdk/events/lib/rule.ts +++ b/packages/@aws-cdk/events/lib/rule.ts @@ -1,6 +1,6 @@ import { Construct, FnConcat, Token } from '@aws-cdk/core'; -import * as events from '../cfn/events'; import { EventPattern } from './event-pattern'; +import * as events from './events.generated'; import { TargetInputTemplate } from './input-options'; import { EventRuleRef } from './rule-ref'; import { IEventRuleTarget } from './target'; @@ -66,14 +66,14 @@ export interface EventRuleProps { export class EventRule extends EventRuleRef { public ruleArn: events.RuleArn; - private readonly targets = new Array(); + private readonly targets = new Array(); private readonly eventPattern: EventPattern = { }; private scheduleExpression?: string; constructor(parent: Construct, name: string, props: EventRuleProps = { }) { super(parent, name); - const resource = new events.RuleResource(this, 'Resource', { + const resource = new events.cloudformation.RuleResource(this, 'Resource', { description: props.description, state: props.enabled == null ? 'ENABLED' : (props.enabled ? 'ENABLED' : 'DISABLED'), scheduleExpression: new Token(() => this.scheduleExpression), @@ -110,7 +110,7 @@ export class EventRule extends EventRuleRef { inputTransformer: renderTransformer(), }); - function renderTransformer(): events.RuleResource.InputTransformerProperty | undefined { + function renderTransformer(): events.cloudformation.RuleResource.InputTransformerProperty | undefined { if (!inputOptions) { return undefined; } diff --git a/packages/@aws-cdk/events/lib/target.ts b/packages/@aws-cdk/events/lib/target.ts index 875d189c1d91b..388eee2ccb062 100644 --- a/packages/@aws-cdk/events/lib/target.ts +++ b/packages/@aws-cdk/events/lib/target.ts @@ -1,6 +1,6 @@ import { Arn } from '@aws-cdk/core'; import * as iam from '@aws-cdk/iam'; -import * as events from '../cfn/events'; +import * as events from './events.generated'; export interface EventRuleTarget { /** @@ -27,20 +27,20 @@ export interface EventRuleTarget { * The Amazon ECS task definition and task count to use, if the event target * is an Amazon ECS task. */ - ecsParameters?: events.RuleResource.EcsParametersProperty; + ecsParameters?: events.cloudformation.RuleResource.EcsParametersProperty; /** * Settings that control shard assignment, when the target is a Kinesis * stream. If you don't include this parameter, eventId is used as the * partition key. */ - kinesisParameters?: events.RuleResource.KinesisParametersProperty; + kinesisParameters?: events.cloudformation.RuleResource.KinesisParametersProperty; /** * Parameters used when the rule invokes Amazon EC2 Systems Manager Run * Command. */ - runCommandParameters?: events.RuleResource.RunCommandParametersProperty; + runCommandParameters?: events.cloudformation.RuleResource.RunCommandParametersProperty; } /** diff --git a/packages/@aws-cdk/events/package.json b/packages/@aws-cdk/events/package.json index ce86315cfcc57..68fe83ca4ead4 100644 --- a/packages/@aws-cdk/events/package.json +++ b/packages/@aws-cdk/events/package.json @@ -46,7 +46,6 @@ "dependencies": { "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta", "@aws-cdk/util": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/gamelift/.gitignore b/packages/@aws-cdk/gamelift/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/gamelift/.gitignore +++ b/packages/@aws-cdk/gamelift/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/gamelift/lib/index.ts b/packages/@aws-cdk/gamelift/lib/index.ts index 1bc8cefec9d3f..843bf2236645e 100644 --- a/packages/@aws-cdk/gamelift/lib/index.ts +++ b/packages/@aws-cdk/gamelift/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::GameLift: -export * from '../cfn/gamelift'; +// AWS::GameLift CloudFormation Resources: +export * from './gamelift.generated'; diff --git a/packages/@aws-cdk/gamelift/package.json b/packages/@aws-cdk/gamelift/package.json index 98ebcbda7dbe0..28494ac8f5297 100644 --- a/packages/@aws-cdk/gamelift/package.json +++ b/packages/@aws-cdk/gamelift/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/glue/.gitignore b/packages/@aws-cdk/glue/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/glue/.gitignore +++ b/packages/@aws-cdk/glue/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/glue/lib/index.ts b/packages/@aws-cdk/glue/lib/index.ts index c60f9a65d725a..7c3ce15c93002 100644 --- a/packages/@aws-cdk/glue/lib/index.ts +++ b/packages/@aws-cdk/glue/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::Glue: -export * from '../cfn/glue'; +// AWS::Glue CloudFormation Resources: +export * from './glue.generated'; diff --git a/packages/@aws-cdk/glue/package.json b/packages/@aws-cdk/glue/package.json index 3b4093c9fbb5c..f6b77e761d33d 100644 --- a/packages/@aws-cdk/glue/package.json +++ b/packages/@aws-cdk/glue/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/guardduty/.gitignore b/packages/@aws-cdk/guardduty/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/guardduty/.gitignore +++ b/packages/@aws-cdk/guardduty/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/guardduty/lib/index.ts b/packages/@aws-cdk/guardduty/lib/index.ts index e187b1fb5d4cf..32fb159ac619c 100644 --- a/packages/@aws-cdk/guardduty/lib/index.ts +++ b/packages/@aws-cdk/guardduty/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::GuardDuty: -export * from '../cfn/guardduty'; +// AWS::GuardDuty CloudFormation Resources: +export * from './guardduty.generated'; diff --git a/packages/@aws-cdk/guardduty/package.json b/packages/@aws-cdk/guardduty/package.json index 93a7e8689df95..02d6fdd7b31b4 100644 --- a/packages/@aws-cdk/guardduty/package.json +++ b/packages/@aws-cdk/guardduty/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/iam/.gitignore b/packages/@aws-cdk/iam/.gitignore index bf0626570e337..f15b7d5e08722 100644 --- a/packages/@aws-cdk/iam/.gitignore +++ b/packages/@aws-cdk/iam/.gitignore @@ -3,5 +3,5 @@ tsconfig.json tslint.json *.js.map *.d.ts -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/iam/lib/group.ts b/packages/@aws-cdk/iam/lib/group.ts index c080a7dccf7af..73c563535caf7 100644 --- a/packages/@aws-cdk/iam/lib/group.ts +++ b/packages/@aws-cdk/iam/lib/group.ts @@ -1,5 +1,5 @@ import { ArnPrincipal, Construct, PolicyPrincipal, PolicyStatement, Token } from '@aws-cdk/core'; -import * as iam from '../cfn/iam'; +import * as iam from './iam.generated'; import { IIdentityResource, Policy } from './policy'; import { User } from './user'; import { AttachedPolicies, undefinedIfEmpty } from './util'; @@ -58,7 +58,7 @@ export class Group extends Construct implements IIdentityResource { this.managedPolicies = props.managedPolicyArns || []; - const group = new iam.GroupResource(this, 'Resource', { + const group = new iam.cloudformation.GroupResource(this, 'Resource', { groupName: props.groupName, managedPolicyArns: undefinedIfEmpty(() => this.managedPolicies), path: props.path, diff --git a/packages/@aws-cdk/iam/lib/index.ts b/packages/@aws-cdk/iam/lib/index.ts index fae10d4c587e0..ef9b4d1a5f3a4 100644 --- a/packages/@aws-cdk/iam/lib/index.ts +++ b/packages/@aws-cdk/iam/lib/index.ts @@ -3,5 +3,5 @@ export * from './policy'; export * from './user'; export * from './group'; -// The L1 library for AWS::IAM: -export * from '../cfn/iam'; +// AWS::IAM CloudFormation Resources: +export * from './iam.generated'; diff --git a/packages/@aws-cdk/iam/lib/policy.ts b/packages/@aws-cdk/iam/lib/policy.ts index 4c0740fc4f624..9d3c0a2b6d2a4 100644 --- a/packages/@aws-cdk/iam/lib/policy.ts +++ b/packages/@aws-cdk/iam/lib/policy.ts @@ -1,6 +1,6 @@ import { Construct, IDependable, PolicyDocument, PolicyPrincipal, PolicyStatement, Token } from '@aws-cdk/core'; -import * as iam from '../cfn/iam'; import { Group } from './group'; +import * as iam from './iam.generated'; import { Role } from './role'; import { User } from './user'; import { generatePolicyName, undefinedIfEmpty } from './util'; @@ -96,7 +96,7 @@ export class Policy extends Construct implements IDependable { constructor(parent: Construct, name: string, props: PolicyProps = {}) { super(parent, name); - const resource = new iam.PolicyResource(this, 'Resource', { + const resource = new iam.cloudformation.PolicyResource(this, 'Resource', { policyDocument: this.document, policyName: new Token(() => this.policyName), roles: undefinedIfEmpty(() => this.roles.map(r => r.roleName)), diff --git a/packages/@aws-cdk/iam/lib/role.ts b/packages/@aws-cdk/iam/lib/role.ts index 356f2694563b9..cddf09dc53b9b 100644 --- a/packages/@aws-cdk/iam/lib/role.ts +++ b/packages/@aws-cdk/iam/lib/role.ts @@ -1,5 +1,5 @@ import { ArnPrincipal, Construct, IDependable, PolicyDocument, PolicyPrincipal, PolicyStatement, Token } from '@aws-cdk/core'; -import * as iam from '../cfn/iam'; +import * as iam from './iam.generated'; import { IIdentityResource, Policy } from './policy'; import { AttachedPolicies, undefinedIfEmpty } from './util'; @@ -85,7 +85,7 @@ export class Role extends Construct implements IIdentityResource, IDependable { this.assumeRolePolicy = createAssumeRolePolicy(props.assumedBy); this.managedPolicies = props.managedPolicyArns || [ ]; - const role = new iam.RoleResource(this, 'Resource', { + const role = new iam.cloudformation.RoleResource(this, 'Resource', { assumeRolePolicyDocument: this.assumeRolePolicy as any, managedPolicyArns: undefinedIfEmpty(() => this.managedPolicies), path: props.path, diff --git a/packages/@aws-cdk/iam/lib/user.ts b/packages/@aws-cdk/iam/lib/user.ts index a2e11c3a90f82..933b92fe1ff94 100644 --- a/packages/@aws-cdk/iam/lib/user.ts +++ b/packages/@aws-cdk/iam/lib/user.ts @@ -1,6 +1,6 @@ import { ArnPrincipal, Construct, PolicyPrincipal, PolicyStatement, Token } from '@aws-cdk/core'; -import * as iam from '../cfn/iam'; import { Group } from './group'; +import * as iam from './iam.generated'; import { IIdentityResource, Policy } from './policy'; import { AttachedPolicies, undefinedIfEmpty } from './util'; @@ -86,7 +86,7 @@ export class User extends Construct implements IIdentityResource { constructor(parent: Construct, name: string, props: UserProps = {}) { super(parent, name); - const user = new iam.UserResource(this, 'Resource', { + const user = new iam.cloudformation.UserResource(this, 'Resource', { userName: props.userName, groups: undefinedIfEmpty(() => this.groups), managedPolicyArns: undefinedIfEmpty(() => this.managedPolicies), @@ -138,7 +138,7 @@ export class User extends Construct implements IIdentityResource { this.defaultPolicy.addStatement(statement); } - private parseLoginProfile(props: UserProps): iam.UserResource.LoginProfileProperty | undefined { + private parseLoginProfile(props: UserProps): iam.cloudformation.UserResource.LoginProfileProperty | undefined { if (props.password) { return { password: props.password, diff --git a/packages/@aws-cdk/iam/package.json b/packages/@aws-cdk/iam/package.json index be80fee84e83b..d21cfcf499e7a 100644 --- a/packages/@aws-cdk/iam/package.json +++ b/packages/@aws-cdk/iam/package.json @@ -38,7 +38,6 @@ "license": "LicenseRef-LICENSE", "devDependencies": { "@aws-cdk/assert": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta", "cfn2ts": "^0.7.3-beta", "pkglint": "^0.7.3-beta" }, diff --git a/packages/@aws-cdk/inspector/.gitignore b/packages/@aws-cdk/inspector/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/inspector/.gitignore +++ b/packages/@aws-cdk/inspector/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/inspector/lib/index.ts b/packages/@aws-cdk/inspector/lib/index.ts index f09ced2995ac8..b127451c63b81 100644 --- a/packages/@aws-cdk/inspector/lib/index.ts +++ b/packages/@aws-cdk/inspector/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::Inspector: -export * from '../cfn/inspector'; +// AWS::Inspector CloudFormation Resources: +export * from './inspector.generated'; diff --git a/packages/@aws-cdk/inspector/package.json b/packages/@aws-cdk/inspector/package.json index 29fb517e0b535..fb8b6377cc5bf 100644 --- a/packages/@aws-cdk/inspector/package.json +++ b/packages/@aws-cdk/inspector/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/iot/.gitignore b/packages/@aws-cdk/iot/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/iot/.gitignore +++ b/packages/@aws-cdk/iot/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/iot/lib/index.ts b/packages/@aws-cdk/iot/lib/index.ts index 6cad933026ec2..4f78a6cf531e3 100644 --- a/packages/@aws-cdk/iot/lib/index.ts +++ b/packages/@aws-cdk/iot/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::IoT: -export * from '../cfn/iot'; +// AWS::IoT CloudFormation Resources: +export * from './iot.generated'; diff --git a/packages/@aws-cdk/iot/package.json b/packages/@aws-cdk/iot/package.json index 3529dcbdd00d0..b1119207dbe96 100644 --- a/packages/@aws-cdk/iot/package.json +++ b/packages/@aws-cdk/iot/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/kinesis/.gitignore b/packages/@aws-cdk/kinesis/.gitignore index 2df4d42e01e23..1900b4ac9b084 100644 --- a/packages/@aws-cdk/kinesis/.gitignore +++ b/packages/@aws-cdk/kinesis/.gitignore @@ -2,7 +2,7 @@ *.js.map *.d.ts node_modules -cfn +*.generated.ts dist tsconfig.json tslint.json diff --git a/packages/@aws-cdk/kinesis/lib/index.ts b/packages/@aws-cdk/kinesis/lib/index.ts index 0c64e98d3be3f..bb8cedbc5558c 100644 --- a/packages/@aws-cdk/kinesis/lib/index.ts +++ b/packages/@aws-cdk/kinesis/lib/index.ts @@ -1,4 +1,4 @@ export * from './stream'; -// The L1 library for AWS::Kinesis: -export * from '../cfn/kinesis'; +// AWS::Kinesis CloudFormation Resources: +export * from './kinesis.generated'; diff --git a/packages/@aws-cdk/kinesis/lib/stream.ts b/packages/@aws-cdk/kinesis/lib/stream.ts index 748091823f7ee..a72acda5f8848 100644 --- a/packages/@aws-cdk/kinesis/lib/stream.ts +++ b/packages/@aws-cdk/kinesis/lib/stream.ts @@ -1,7 +1,7 @@ import { Construct, Output, PolicyStatement, Token } from '@aws-cdk/core'; import { IIdentityResource } from '@aws-cdk/iam'; import * as kms from '@aws-cdk/kms'; -import * as kinesis from '../cfn/kinesis'; +import * as kinesis from './kinesis.generated'; /** * A reference to a stream. The easiest way to instantiate is to call @@ -221,7 +221,7 @@ export class Stream extends StreamRef { public readonly streamName: StreamName; public readonly encryptionKey?: kms.EncryptionKeyRef; - private readonly stream: kinesis.StreamResource; + private readonly stream: kinesis.cloudformation.StreamResource; constructor(parent: Construct, name: string, props: StreamProps = {}) { super(parent, name); @@ -234,7 +234,7 @@ export class Stream extends StreamRef { const { streamEncryption, encryptionKey } = this.parseEncryption(props); - this.stream = new kinesis.StreamResource(this, "Resource", { + this.stream = new kinesis.cloudformation.StreamResource(this, "Resource", { streamName: props.streamName, retentionPeriodHours, shardCount, @@ -252,7 +252,7 @@ export class Stream extends StreamRef { * user's configuration. */ private parseEncryption(props: StreamProps): { - streamEncryption?: kinesis.StreamResource.StreamEncryptionProperty, + streamEncryption?: kinesis.cloudformation.StreamResource.StreamEncryptionProperty, encryptionKey?: kms.EncryptionKeyRef } { @@ -273,7 +273,7 @@ export class Stream extends StreamRef { description: `Created by ${this.path}` }); - const streamEncryption: kinesis.StreamResource.StreamEncryptionProperty = { + const streamEncryption: kinesis.cloudformation.StreamResource.StreamEncryptionProperty = { encryptionType: 'KMS', keyId: encryptionKey.keyArn }; diff --git a/packages/@aws-cdk/kinesis/package.json b/packages/@aws-cdk/kinesis/package.json index e6eb3fbe828b2..bb80f97b05ffa 100644 --- a/packages/@aws-cdk/kinesis/package.json +++ b/packages/@aws-cdk/kinesis/package.json @@ -42,7 +42,6 @@ "dependencies": { "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", - "@aws-cdk/kms": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/kms": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/kinesisanalytics/.gitignore b/packages/@aws-cdk/kinesisanalytics/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/kinesisanalytics/.gitignore +++ b/packages/@aws-cdk/kinesisanalytics/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/kinesisanalytics/lib/index.ts b/packages/@aws-cdk/kinesisanalytics/lib/index.ts index 7014b50eb11a6..e89e60fbed384 100644 --- a/packages/@aws-cdk/kinesisanalytics/lib/index.ts +++ b/packages/@aws-cdk/kinesisanalytics/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::KinesisAnalytics: -export * from '../cfn/kinesisanalytics'; +// AWS::KinesisAnalytics CloudFormation Resources: +export * from './kinesisanalytics.generated'; diff --git a/packages/@aws-cdk/kinesisanalytics/package.json b/packages/@aws-cdk/kinesisanalytics/package.json index cb86acd82c1d8..1e6a4130e5713 100644 --- a/packages/@aws-cdk/kinesisanalytics/package.json +++ b/packages/@aws-cdk/kinesisanalytics/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/kinesisfirehose/.gitignore b/packages/@aws-cdk/kinesisfirehose/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/kinesisfirehose/.gitignore +++ b/packages/@aws-cdk/kinesisfirehose/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/kinesisfirehose/lib/index.ts b/packages/@aws-cdk/kinesisfirehose/lib/index.ts index 351032d26b8ed..dd7beef14d159 100644 --- a/packages/@aws-cdk/kinesisfirehose/lib/index.ts +++ b/packages/@aws-cdk/kinesisfirehose/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::KinesisFirehose: -export * from '../cfn/kinesisfirehose'; +// AWS::KinesisFirehose CloudFormation Resources: +export * from './kinesisfirehose.generated'; diff --git a/packages/@aws-cdk/kinesisfirehose/package.json b/packages/@aws-cdk/kinesisfirehose/package.json index 4023aa0ea1653..c3581ee984d83 100644 --- a/packages/@aws-cdk/kinesisfirehose/package.json +++ b/packages/@aws-cdk/kinesisfirehose/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/kms/.gitignore b/packages/@aws-cdk/kms/.gitignore index 2df4d42e01e23..1900b4ac9b084 100644 --- a/packages/@aws-cdk/kms/.gitignore +++ b/packages/@aws-cdk/kms/.gitignore @@ -2,7 +2,7 @@ *.js.map *.d.ts node_modules -cfn +*.generated.ts dist tsconfig.json tslint.json diff --git a/packages/@aws-cdk/kms/lib/alias.ts b/packages/@aws-cdk/kms/lib/alias.ts index dc9f783dd2385..3b401aff30a21 100644 --- a/packages/@aws-cdk/kms/lib/alias.ts +++ b/packages/@aws-cdk/kms/lib/alias.ts @@ -1,6 +1,6 @@ import { Construct, Token } from '@aws-cdk/core'; -import * as kms from '../cfn/kms'; import { EncryptionKeyRef } from './key'; +import * as kms from './kms.generated'; const REQUIRED_ALIAS_PREFIX = 'alias/'; const DISALLOWED_PREFIX = REQUIRED_ALIAS_PREFIX + 'AWS'; @@ -51,7 +51,7 @@ export class EncryptionKeyAlias extends Construct { throw new Error(`Alias cannot start with ${DISALLOWED_PREFIX}: ${props.alias}`); } - const resource = new kms.AliasResource(this, 'Resource', { + const resource = new kms.cloudformation.AliasResource(this, 'Resource', { aliasName: props.alias, targetKeyId: props.key.keyArn }); diff --git a/packages/@aws-cdk/kms/lib/index.ts b/packages/@aws-cdk/kms/lib/index.ts index a2486d11d9209..52d9014cc7b9c 100644 --- a/packages/@aws-cdk/kms/lib/index.ts +++ b/packages/@aws-cdk/kms/lib/index.ts @@ -1,5 +1,5 @@ export * from './key'; export * from './alias'; -// The L1 library for AWS::KMS: -export * from '../cfn/kms'; +// AWS::KMS CloudFormation Resources: +export * from './kms.generated'; diff --git a/packages/@aws-cdk/kms/lib/key.ts b/packages/@aws-cdk/kms/lib/key.ts index 8d79259f386c2..c452d5f3cfc81 100644 --- a/packages/@aws-cdk/kms/lib/key.ts +++ b/packages/@aws-cdk/kms/lib/key.ts @@ -1,6 +1,6 @@ import { Construct, DeletionPolicy, Output, PolicyDocument, PolicyStatement } from '@aws-cdk/core'; -import * as kms from '../cfn/kms'; import { EncryptionKeyAlias } from './alias'; +import * as kms from './kms.generated'; export interface EncryptionKeyRefProps { /** @@ -122,7 +122,7 @@ export class EncryptionKey extends EncryptionKeyRef { this.allowAccountToAdmin(); } - const resource = new kms.KeyResource(this, 'Resource', { + const resource = new kms.cloudformation.KeyResource(this, 'Resource', { description: props.description, enableKeyRotation: props.enableKeyRotation, enabled: props.enabled, diff --git a/packages/@aws-cdk/kms/package.json b/packages/@aws-cdk/kms/package.json index 7f5fff852e635..d1295e770d81b 100644 --- a/packages/@aws-cdk/kms/package.json +++ b/packages/@aws-cdk/kms/package.json @@ -41,7 +41,6 @@ }, "dependencies": { "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/iam": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/iam": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/lambda/.gitignore b/packages/@aws-cdk/lambda/.gitignore index 8634a5e37938c..8d01974b8efbc 100644 --- a/packages/@aws-cdk/lambda/.gitignore +++ b/packages/@aws-cdk/lambda/.gitignore @@ -2,7 +2,7 @@ *.js.map *.d.ts node_modules -cfn +*.generated.ts dist tsconfig.json tslint.json diff --git a/packages/@aws-cdk/lambda/lib/alias.ts b/packages/@aws-cdk/lambda/lib/alias.ts index a99136f800403..d1fac570c0655 100644 --- a/packages/@aws-cdk/lambda/lib/alias.ts +++ b/packages/@aws-cdk/lambda/lib/alias.ts @@ -1,8 +1,8 @@ -import { Construct } from "@aws-cdk/core"; -import { Role } from "@aws-cdk/iam"; -import * as lambda from '../cfn/lambda'; -import { FunctionName, LambdaRef } from "./lambda-ref"; -import { LambdaVersion } from "./lambda-version"; +import { Construct } from '@aws-cdk/core'; +import { Role } from '@aws-cdk/iam'; +import { FunctionName, LambdaRef } from './lambda-ref'; +import { LambdaVersion } from './lambda-version'; +import * as lambda from './lambda.generated'; import { LambdaPermission } from './permission'; /** @@ -85,7 +85,7 @@ export class Alias extends LambdaRef { this.underlyingLambda = props.version.lambda; - const alias = new lambda.AliasResource(this, 'Resource', { + const alias = new lambda.cloudformation.AliasResource(this, 'Resource', { aliasName: props.aliasName, description: props.description, functionName: this.underlyingLambda.functionName, diff --git a/packages/@aws-cdk/lambda/lib/code.ts b/packages/@aws-cdk/lambda/lib/code.ts index 7090810eabb1e..43ad0e272e66b 100644 --- a/packages/@aws-cdk/lambda/lib/code.ts +++ b/packages/@aws-cdk/lambda/lib/code.ts @@ -1,9 +1,9 @@ import { BucketName, BucketRef } from '@aws-cdk/s3'; -import * as lambda from '../cfn/lambda'; +import * as lambda from './lambda.generated'; import { LambdaRuntime } from './runtime'; export abstract class LambdaCode { - public abstract toJSON(runtime: LambdaRuntime): lambda.FunctionResource.CodeProperty; + public abstract toJSON(runtime: LambdaRuntime): lambda.cloudformation.FunctionResource.CodeProperty; } export class LambdaS3Code extends LambdaCode { @@ -19,7 +19,7 @@ export class LambdaS3Code extends LambdaCode { this.bucketName = bucket.bucketName; } - public toJSON(_runtime: LambdaRuntime): lambda.FunctionResource.CodeProperty { + public toJSON(_runtime: LambdaRuntime): lambda.cloudformation.FunctionResource.CodeProperty { return { s3Bucket: this.bucketName, s3Key: this.key, @@ -37,7 +37,7 @@ export class LambdaInlineCode extends LambdaCode { } } - public toJSON(runtime: LambdaRuntime): lambda.FunctionResource.CodeProperty { + public toJSON(runtime: LambdaRuntime): lambda.cloudformation.FunctionResource.CodeProperty { if (!runtime.supportsInlineCode) { throw new Error(`Inline source not supported for: ${runtime.name}`); } diff --git a/packages/@aws-cdk/lambda/lib/index.ts b/packages/@aws-cdk/lambda/lib/index.ts index fdb7b80674975..f8c7c56a4581a 100644 --- a/packages/@aws-cdk/lambda/lib/index.ts +++ b/packages/@aws-cdk/lambda/lib/index.ts @@ -7,5 +7,5 @@ export * from './code'; export * from './inline'; export * from './lambda-version'; -// The L1 library for AWS::Lambda: -export * from '../cfn/lambda'; +// AWS::Lambda CloudFormation Resources: +export * from './lambda.generated'; diff --git a/packages/@aws-cdk/lambda/lib/lambda-ref.ts b/packages/@aws-cdk/lambda/lib/lambda-ref.ts index ba0be17e62ccb..eb68c49eb45f0 100644 --- a/packages/@aws-cdk/lambda/lib/lambda-ref.ts +++ b/packages/@aws-cdk/lambda/lib/lambda-ref.ts @@ -3,7 +3,7 @@ import { AccountPrincipal, Arn, Construct, FnSelect, FnSplit, PolicyPrincipal, PolicyStatement, resolve, ServicePrincipal, Token } from '@aws-cdk/core'; import { EventRuleTarget, IEventRuleTarget } from '@aws-cdk/events'; import { Role } from '@aws-cdk/iam'; -import * as lambda from '../cfn/lambda'; +import * as lambda from './lambda.generated'; import { LambdaPermission } from './permission'; /** @@ -126,7 +126,7 @@ export abstract class LambdaRef extends Construct implements IEventRuleTarget { const principal = this.parsePermissionPrincipal(permission.principal); const action = permission.action || 'lambda:InvokeFunction'; - new lambda.PermissionResource(this, name, { + new lambda.cloudformation.PermissionResource(this, name, { action, principal, functionName: this.functionName, diff --git a/packages/@aws-cdk/lambda/lib/lambda-version.ts b/packages/@aws-cdk/lambda/lib/lambda-version.ts index a5e87c10b6de0..d5638998a47af 100644 --- a/packages/@aws-cdk/lambda/lib/lambda-version.ts +++ b/packages/@aws-cdk/lambda/lib/lambda-version.ts @@ -1,6 +1,6 @@ -import { Construct } from "@aws-cdk/core"; -import * as lambda from '../cfn/lambda'; -import { LambdaRef } from "./lambda-ref"; +import { Construct } from '@aws-cdk/core'; +import { LambdaRef } from './lambda-ref'; +import * as lambda from './lambda.generated'; /** * Properties for a new Lambda version @@ -58,7 +58,7 @@ export class LambdaVersion extends Construct { constructor(parent: Construct, name: string, props: LambdaVersionProps) { super(parent, name); - const version = new lambda.VersionResource(this, 'Resource', { + const version = new lambda.cloudformation.VersionResource(this, 'Resource', { codeSha256: props.codeSha256, description: props.description, functionName: props.lambda.functionName diff --git a/packages/@aws-cdk/lambda/lib/lambda.ts b/packages/@aws-cdk/lambda/lib/lambda.ts index d8aa6f7d07eed..2d4ec53483526 100644 --- a/packages/@aws-cdk/lambda/lib/lambda.ts +++ b/packages/@aws-cdk/lambda/lib/lambda.ts @@ -1,9 +1,9 @@ import { Arn, Construct, PolicyStatement, ServicePrincipal, Token } from '@aws-cdk/core'; import { Role } from '@aws-cdk/iam'; -import * as lambda from '../cfn/lambda'; import { LambdaCode } from './code'; import { FunctionName, LambdaRef } from './lambda-ref'; import { LambdaVersion } from './lambda-version'; +import * as lambda from './lambda.generated'; import { LambdaRuntime } from './runtime'; export interface LambdaProps { @@ -134,7 +134,7 @@ export class Lambda extends LambdaRef { this.role.addToPolicy(statement); } - const resource = new lambda.FunctionResource(this, 'Resource', { + const resource = new lambda.cloudformation.FunctionResource(this, 'Resource', { functionName: props.functionName, description: props.description, code: props.code.toJSON(props.runtime), diff --git a/packages/@aws-cdk/lambda/package.json b/packages/@aws-cdk/lambda/package.json index 5feeda15aad45..5db4f3c949b69 100644 --- a/packages/@aws-cdk/lambda/package.json +++ b/packages/@aws-cdk/lambda/package.json @@ -45,7 +45,6 @@ "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/events": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta", "@aws-cdk/s3": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/logs/.gitignore b/packages/@aws-cdk/logs/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/logs/.gitignore +++ b/packages/@aws-cdk/logs/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/logs/lib/index.ts b/packages/@aws-cdk/logs/lib/index.ts index 92cf46eb0163f..ac162b75659a7 100644 --- a/packages/@aws-cdk/logs/lib/index.ts +++ b/packages/@aws-cdk/logs/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::Logs: -export * from '../cfn/logs'; +// AWS::Logs CloudFormation Resources: +export * from './logs.generated'; diff --git a/packages/@aws-cdk/logs/package.json b/packages/@aws-cdk/logs/package.json index cc5411567b096..b9dbba5481dd3 100644 --- a/packages/@aws-cdk/logs/package.json +++ b/packages/@aws-cdk/logs/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/neptune/package.json b/packages/@aws-cdk/neptune/package.json index 69290d3b75f9f..e42b3681b0ada 100644 --- a/packages/@aws-cdk/neptune/package.json +++ b/packages/@aws-cdk/neptune/package.json @@ -42,7 +42,6 @@ "@aws-cdk/ec2": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", "@aws-cdk/kms": "^0.7.3-beta", - "@aws-cdk/rds": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/rds": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/opsworks/.gitignore b/packages/@aws-cdk/opsworks/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/opsworks/.gitignore +++ b/packages/@aws-cdk/opsworks/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/opsworks/lib/index.ts b/packages/@aws-cdk/opsworks/lib/index.ts index ab406bdfeec72..155231f31c103 100644 --- a/packages/@aws-cdk/opsworks/lib/index.ts +++ b/packages/@aws-cdk/opsworks/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::OpsWorks: -export * from '../cfn/opsworks'; +// AWS::OpsWorks CloudFormation Resources: +export * from './opsworks.generated'; diff --git a/packages/@aws-cdk/opsworks/package.json b/packages/@aws-cdk/opsworks/package.json index 4489d590d4165..10e14df3c8986 100644 --- a/packages/@aws-cdk/opsworks/package.json +++ b/packages/@aws-cdk/opsworks/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/quickstarts/lib/database.ts b/packages/@aws-cdk/quickstarts/lib/database.ts index 7838dbfa458cc..1a7285946f68b 100644 --- a/packages/@aws-cdk/quickstarts/lib/database.ts +++ b/packages/@aws-cdk/quickstarts/lib/database.ts @@ -1,6 +1,6 @@ import { Construct } from '@aws-cdk/core'; import { DefaultConnections, IConnectable, IPortRange, SecurityGroup, TcpPort, VpcNetworkRef } from '@aws-cdk/ec2'; -import { DBInstanceResource, DBSubnetGroupResource } from '@aws-cdk/rds'; +import * as rds from '@aws-cdk/rds'; import { applyDefaults } from '@aws-cdk/util'; export interface SqlServerProps { @@ -31,7 +31,7 @@ export class SqlServer extends Construct implements IConnectable { description: 'Database security group', }); - const subnetGroup = new DBSubnetGroupResource(this, 'Subnet', { + const subnetGroup = new rds.cloudformation.DBSubnetGroupResource(this, 'Subnet', { subnetIds: props.vpc.privateSubnets.map(privateSubnet => privateSubnet.subnetId), dbSubnetGroupDescription: 'Database subnet group', }); @@ -44,7 +44,7 @@ export class SqlServer extends Construct implements IConnectable { allocatedStorage: 200 }); - new DBInstanceResource(this, 'Resource', { + new rds.cloudformation.DBInstanceResource(this, 'Resource', { allocatedStorage: p.allocatedStorage.toString(), dbInstanceClass: p.instanceClass, engine: p.engine, diff --git a/packages/@aws-cdk/quickstarts/lib/rdgw.ts b/packages/@aws-cdk/quickstarts/lib/rdgw.ts index 84e9afcafafd0..32da1f9d7961e 100644 --- a/packages/@aws-cdk/quickstarts/lib/rdgw.ts +++ b/packages/@aws-cdk/quickstarts/lib/rdgw.ts @@ -1,4 +1,4 @@ -import { StackResource } from '@aws-cdk/cloudformation'; +import { cloudformation } from '@aws-cdk/cloudformation'; import { Construct } from '@aws-cdk/core'; import { DefaultConnections, IDefaultConnectable, IPortRange, SecurityGroupRef, TcpPort, VpcNetworkRef } from '@aws-cdk/ec2'; @@ -43,7 +43,7 @@ export class RemoteDesktopGateway extends Construct implements IDefaultConnectab RDGWInstanceType: props.rdgwInstanceType, }; - const nestedStack = new StackResource(this, 'Resource', { + const nestedStack = new cloudformation.StackResource(this, 'Resource', { templateUrl: 'https://s3.amazonaws.com/quickstart-reference/microsoft/rdgateway/latest/templates/rdgw-standalone.template', parameters: params }); diff --git a/packages/@aws-cdk/rds/.gitignore b/packages/@aws-cdk/rds/.gitignore index a725ff9821bb6..7566dec850f55 100644 --- a/packages/@aws-cdk/rds/.gitignore +++ b/packages/@aws-cdk/rds/.gitignore @@ -3,6 +3,6 @@ tsconfig.json tslint.json *.js.map *.d.ts -cfn +*.generated.ts dist lib/generated/resources.ts diff --git a/packages/@aws-cdk/rds/lib/cluster-ref.ts b/packages/@aws-cdk/rds/lib/cluster-ref.ts index 7273e9e18792d..78029c8d64ffe 100644 --- a/packages/@aws-cdk/rds/lib/cluster-ref.ts +++ b/packages/@aws-cdk/rds/lib/cluster-ref.ts @@ -1,6 +1,6 @@ import { Construct, FnJoin, Output, StringListOutput, Token } from '@aws-cdk/core'; import { DefaultConnections, IDefaultConnectable, IPortRange, SecurityGroupId, SecurityGroupRef, TcpPortFromAttribute } from '@aws-cdk/ec2'; -import * as rds from '../cfn/rds'; +import * as rds from './rds.generated'; /** * Create a clustered database with a given number of instances. diff --git a/packages/@aws-cdk/rds/lib/cluster.ts b/packages/@aws-cdk/rds/lib/cluster.ts index 037de77dda392..6fb331f6abda8 100644 --- a/packages/@aws-cdk/rds/lib/cluster.ts +++ b/packages/@aws-cdk/rds/lib/cluster.ts @@ -2,9 +2,9 @@ import { Construct } from '@aws-cdk/core'; // tslint:disable-next-line:ordered-imports import { DefaultConnections, InstanceType, IPortRange, SecurityGroup, TcpPortFromAttribute, SecurityGroupId } from '@aws-cdk/ec2'; import { KeyArn } from '@aws-cdk/kms'; -import * as rds from '../cfn/rds'; import { ClusterIdentifier, DatabaseClusterRef, Endpoint, InstanceIdentifier } from './cluster-ref'; import { BackupProps, DatabaseClusterEngine, InstanceProps, Login, Parameters } from './props'; +import * as rds from './rds.generated'; /** * Properties for a new database cluster @@ -143,7 +143,7 @@ export class DatabaseCluster extends DatabaseClusterRef { throw new Error(`Cluster requires at least 2 subnets, got ${subnets.length}`); } - const subnetGroup = new rds.DBSubnetGroupResource(this, 'Subnets', { + const subnetGroup = new rds.cloudformation.DBSubnetGroupResource(this, 'Subnets', { dbSubnetGroupDescription: `Subnets for ${name} database`, subnetIds: subnets.map(s => s.subnetId) }); @@ -154,7 +154,7 @@ export class DatabaseCluster extends DatabaseClusterRef { }); this.securityGroupId = securityGroup.securityGroupId; - const cluster = new rds.DBClusterResource(this, 'Resource', { + const cluster = new rds.cloudformation.DBClusterResource(this, 'Resource', { // Basic engine: props.engine, dbClusterIdentifier: props.clusterIdentifier, @@ -191,7 +191,7 @@ export class DatabaseCluster extends DatabaseClusterRef { const publiclyAccessible = props.instanceProps.vpcPlacement && props.instanceProps.vpcPlacement.usePublicSubnets; - const instance = new rds.DBInstanceResource(this, `Instance${instanceIndex}`, { + const instance = new rds.cloudformation.DBInstanceResource(this, `Instance${instanceIndex}`, { // Link to cluster engine: props.engine, dbClusterIdentifier: cluster.ref, diff --git a/packages/@aws-cdk/rds/lib/index.ts b/packages/@aws-cdk/rds/lib/index.ts index d9a3cf98c3652..f48d1b86f2909 100644 --- a/packages/@aws-cdk/rds/lib/index.ts +++ b/packages/@aws-cdk/rds/lib/index.ts @@ -3,5 +3,5 @@ export * from './cluster-ref'; export * from './instance'; export * from './props'; -// The L1 library for AWS::RDS: -export * from '../cfn/rds'; +// AWS::RDS CloudFormation Resources: +export * from './rds.generated'; diff --git a/packages/@aws-cdk/rds/package.json b/packages/@aws-cdk/rds/package.json index 1b57820b94b08..dfebc89380bef 100644 --- a/packages/@aws-cdk/rds/package.json +++ b/packages/@aws-cdk/rds/package.json @@ -44,7 +44,6 @@ "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/ec2": "^0.7.3-beta", "@aws-cdk/kms": "^0.7.3-beta", - "@aws-cdk/iam": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/iam": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/redshift/.gitignore b/packages/@aws-cdk/redshift/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/redshift/.gitignore +++ b/packages/@aws-cdk/redshift/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/redshift/lib/index.ts b/packages/@aws-cdk/redshift/lib/index.ts index 912194fde2a1c..e1441fcf6bb03 100644 --- a/packages/@aws-cdk/redshift/lib/index.ts +++ b/packages/@aws-cdk/redshift/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::Redshift: -export * from '../cfn/redshift'; +// AWS::Redshift CloudFormation Resources: +export * from './redshift.generated'; diff --git a/packages/@aws-cdk/redshift/package.json b/packages/@aws-cdk/redshift/package.json index f0c7ca6a099a2..7dce85b24b7ce 100644 --- a/packages/@aws-cdk/redshift/package.json +++ b/packages/@aws-cdk/redshift/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/route53/.gitignore b/packages/@aws-cdk/route53/.gitignore index 2df4d42e01e23..1900b4ac9b084 100644 --- a/packages/@aws-cdk/route53/.gitignore +++ b/packages/@aws-cdk/route53/.gitignore @@ -2,7 +2,7 @@ *.js.map *.d.ts node_modules -cfn +*.generated.ts dist tsconfig.json tslint.json diff --git a/packages/@aws-cdk/route53/lib/hosted-zone.ts b/packages/@aws-cdk/route53/lib/hosted-zone.ts index e28aec192f722..ac5c92c7d4134 100644 --- a/packages/@aws-cdk/route53/lib/hosted-zone.ts +++ b/packages/@aws-cdk/route53/lib/hosted-zone.ts @@ -1,8 +1,8 @@ import { AwsRegion, Construct, Token } from '@aws-cdk/core'; import { VpcNetworkRef } from '@aws-cdk/ec2'; import { LogGroupArn } from '@aws-cdk/logs'; -import * as route53 from '../cfn/route53'; import { HostedZoneId, HostedZoneRef } from './hosted-zone-ref'; +import * as route53 from './route53.generated'; import { validateZoneName } from './util'; /** @@ -53,7 +53,7 @@ export class PublicHostedZone extends HostedZoneRef { validateZoneName(props.zoneName); - const hostedZone = new route53.HostedZoneResource(this, 'Resource', { + const hostedZone = new route53.cloudformation.HostedZoneResource(this, 'Resource', { ...determineHostedZoneProps(props) }); @@ -93,14 +93,14 @@ export class PrivateHostedZone extends HostedZoneRef { /** * VPCs to which this hosted zone will be added */ - private readonly vpcs: route53.HostedZoneResource.VPCProperty[] = []; + private readonly vpcs: route53.cloudformation.HostedZoneResource.VPCProperty[] = []; constructor(parent: Construct, name: string, props: PrivateHostedZoneProps) { super(parent, name); validateZoneName(props.zoneName); - const hostedZone = new route53.HostedZoneResource(this, 'Resource', { + const hostedZone = new route53.cloudformation.HostedZoneResource(this, 'Resource', { vpcs: new Token(() => this.vpcs ? this.vpcs : undefined), ...determineHostedZoneProps(props) }); @@ -121,7 +121,7 @@ export class PrivateHostedZone extends HostedZoneRef { } } -function toVpcProperty(vpc: VpcNetworkRef): route53.HostedZoneResource.VPCProperty { +function toVpcProperty(vpc: VpcNetworkRef): route53.cloudformation.HostedZoneResource.VPCProperty { return { vpcId: vpc.vpcId, vpcRegion: new AwsRegion() }; } diff --git a/packages/@aws-cdk/route53/lib/index.ts b/packages/@aws-cdk/route53/lib/index.ts index b3528fc219e17..734879c561c12 100644 --- a/packages/@aws-cdk/route53/lib/index.ts +++ b/packages/@aws-cdk/route53/lib/index.ts @@ -2,5 +2,5 @@ export * from './hosted-zone'; export * from './hosted-zone-ref'; export * from './records'; -// The L1 library for AWS::Route53: -export * from '../cfn/route53'; +// AWS::Route53 CloudFormation Resources: +export * from './route53.generated'; diff --git a/packages/@aws-cdk/route53/lib/records/txt.ts b/packages/@aws-cdk/route53/lib/records/txt.ts index 7290e748d16a1..dc35d9a29008b 100644 --- a/packages/@aws-cdk/route53/lib/records/txt.ts +++ b/packages/@aws-cdk/route53/lib/records/txt.ts @@ -1,6 +1,6 @@ import { Construct } from '@aws-cdk/core'; -import * as route53 from '../../cfn/route53'; import { HostedZoneRef } from '../hosted-zone-ref'; +import * as route53 from '../route53.generated'; import { determineFullyQualifiedDomainName } from './_util'; export interface TXTRecordProps { @@ -21,7 +21,7 @@ export class TXTRecord extends Construct { const recordValue = JSON.stringify(props.recordValue); const ttl = props.ttl === undefined ? 1800 : props.ttl; - new route53.RecordSetResource(this, 'Resource', { + new route53.cloudformation.RecordSetResource(this, 'Resource', { hostedZoneId: parent.hostedZoneId, recordSetName: determineFullyQualifiedDomainName(props.recordName, parent), type: 'TXT', diff --git a/packages/@aws-cdk/route53/lib/records/zone-delegation.ts b/packages/@aws-cdk/route53/lib/records/zone-delegation.ts index 1b85e078b8648..a4d5cabf050df 100644 --- a/packages/@aws-cdk/route53/lib/records/zone-delegation.ts +++ b/packages/@aws-cdk/route53/lib/records/zone-delegation.ts @@ -1,6 +1,6 @@ import { Construct } from '@aws-cdk/core'; -import * as route53 from '../../cfn/route53'; import { HostedZoneRef } from '../hosted-zone-ref'; +import * as route53 from '../route53.generated'; import { determineFullyQualifiedDomainName } from './_util'; export interface ZoneDelegationRecordProps { @@ -38,7 +38,7 @@ export class ZoneDelegationRecord extends Construct { const ttl = props.ttl === undefined ? 172_800 : props.ttl; - new route53.RecordSetResource(this, 'Resource', { + new route53.cloudformation.RecordSetResource(this, 'Resource', { hostedZoneId: parent.hostedZoneId, recordSetName: determineFullyQualifiedDomainName(props.delegatedZoneName, parent), type: 'NS', diff --git a/packages/@aws-cdk/route53/package.json b/packages/@aws-cdk/route53/package.json index 7d161c78f82f7..38d0b11cb976d 100644 --- a/packages/@aws-cdk/route53/package.json +++ b/packages/@aws-cdk/route53/package.json @@ -44,7 +44,6 @@ "dependencies": { "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/ec2": "^0.7.3-beta", - "@aws-cdk/logs": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/logs": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/rtv/lib/rtv.ts b/packages/@aws-cdk/rtv/lib/rtv.ts index 6adbff1e494ea..76fd1180e3c58 100644 --- a/packages/@aws-cdk/rtv/lib/rtv.ts +++ b/packages/@aws-cdk/rtv/lib/rtv.ts @@ -1,6 +1,6 @@ import { Arn, AwsStackName, Construct, FnConcat, PolicyStatement, Token } from '@aws-cdk/core'; -import { IIdentityResource } from '@aws-cdk/iam'; -import { ParameterResource } from '@aws-cdk/ssm'; +import * as iam from '@aws-cdk/iam'; +import * as ssm from '@aws-cdk/ssm'; export interface RuntimeValueProps { /** @@ -56,7 +56,7 @@ export class RuntimeValue extends Construct { this.parameterName = new FnConcat('/rtv/', new AwsStackName(), '/', props.package, '/', name); - new ParameterResource(this, 'Parameter', { + new ssm.cloudformation.ParameterResource(this, 'Parameter', { parameterName: this.parameterName, type: 'String', value: props.value, @@ -73,7 +73,7 @@ export class RuntimeValue extends Construct { * Grants a principal read permissions on this runtime value. * @param principal The principal (e.g. Role, User, Group) */ - public grantRead(principal?: IIdentityResource) { + public grantRead(principal?: iam.IIdentityResource) { // sometimes "role" is optional, so we want `rtv.grantRead(role)` to be a no-op if (!principal) { diff --git a/packages/@aws-cdk/rtv/test/test.rtv.ts b/packages/@aws-cdk/rtv/test/test.rtv.ts index df7370bcd1c11..1cfca6e0d3092 100644 --- a/packages/@aws-cdk/rtv/test/test.rtv.ts +++ b/packages/@aws-cdk/rtv/test/test.rtv.ts @@ -1,7 +1,7 @@ import { Construct, ServicePrincipal, Stack } from '@aws-cdk/core'; import { Role } from '@aws-cdk/iam'; -import { FunctionResource } from '@aws-cdk/lambda'; -import { QueueResource } from '@aws-cdk/sqs'; +import * as lambda from '@aws-cdk/lambda'; +import * as sqs from '@aws-cdk/sqs'; import { Test } from 'nodeunit'; import { RuntimeValue } from '../lib'; @@ -23,13 +23,13 @@ class RuntimeValueTest extends Construct { constructor(parent: Construct, name: string) { super(parent, name); - const queue = new QueueResource(this, 'Queue', {}); + const queue = new sqs.cloudformation.QueueResource(this, 'Queue', {}); const role = new Role(this, 'Role', { assumedBy: new ServicePrincipal('lambda.amazonaws.com'), }); - new FunctionResource(this, 'Function', { + new lambda.cloudformation.FunctionResource(this, 'Function', { runtime: 'nodejs6.10', handler: 'index.handler', code: { diff --git a/packages/@aws-cdk/runtime/.gitignore b/packages/@aws-cdk/runtime/.gitignore deleted file mode 100644 index 2aca4822e3c83..0000000000000 --- a/packages/@aws-cdk/runtime/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -dist -node_modules -tsconfig.json -tslint.json -*.js -*.d.ts -README.md diff --git a/packages/@aws-cdk/runtime/.npmignore b/packages/@aws-cdk/runtime/.npmignore deleted file mode 100644 index 414172bb772ec..0000000000000 --- a/packages/@aws-cdk/runtime/.npmignore +++ /dev/null @@ -1,6 +0,0 @@ -# Don't include original .ts files when doing `npm pack` -*.ts -!*.d.ts -coverage -.nyc_output -*.tgz diff --git a/packages/@aws-cdk/runtime/package.json b/packages/@aws-cdk/runtime/package.json deleted file mode 100644 index 664708dc1bd94..0000000000000 --- a/packages/@aws-cdk/runtime/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "@aws-cdk/runtime", - "description": "The Runtime library for generated AWS CloudFormation Resource classes", - "version": "0.7.3-beta", - "scripts": { - "build": "jsii && tslint -p . && pkglint", - "test": "nodeunit test/test.*.js", - "lint": "tsc && jsii && tslint -p . --force", - "watch": "jsii -w", - "pkglint": "pkglint -f" - }, - "main": "lib/index.js", - "types": "lib/index.d.ts", - "jsii": { - "outdir": "dist", - "names": { - "java": "com.amazonaws.cdk.runtime", - "dotnet": "Aws.Cdk.Runtime" - } - }, - "devDependencies": { - "cfn2ts": "^0.7.3-beta", - "pkglint": "^0.7.3-beta" - }, - "repository": { - "url": "git://github.com/awslabs/aws-cdk", - "type": "git" - }, - "license": "LicenseRef-LICENSE", - "author": { - "name": "Amazon Web Services", - "url": "https://aws.amazon.com" - }, - "keywords": [ - "aws", - "cdk" - ] -} diff --git a/packages/@aws-cdk/runtime/test/test.dates.ts b/packages/@aws-cdk/runtime/test/test.dates.ts deleted file mode 100644 index 2a6407588b0bc..0000000000000 --- a/packages/@aws-cdk/runtime/test/test.dates.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Test } from 'nodeunit'; -import { dateToCloudFormation, validateDate } from '../lib'; - -export = { - 'Dates are validated correctly'(test: Test) { - const valid = validateDate(new Date('2000-01-01')); - valid.assertSuccess(); - - test.done(); - }, - - 'Dates are formatted as ISO8601'(test: Test) { - const rendered = dateToCloudFormation(new Date('2001-02-03 04:05:06 UTC')); - - test.equal('2001-02-03T04:05:06', rendered); - test.done(); - }, - - 'Dates are always formatted in UTC'(test: Test) { - const rendered = dateToCloudFormation(new Date('2001-02-03 04:05:06 +01:00')); - - test.equal('2001-02-03T03:05:06', rendered); - test.done(); - }, - - 'Invalid dates are considered invalid'(test: Test) { - const valid = validateDate(new Date('some day')); - - test.throws(() => { valid.assertSuccess(); }); - - test.done(); - } -}; diff --git a/packages/@aws-cdk/s3/.gitignore b/packages/@aws-cdk/s3/.gitignore index a725ff9821bb6..7566dec850f55 100644 --- a/packages/@aws-cdk/s3/.gitignore +++ b/packages/@aws-cdk/s3/.gitignore @@ -3,6 +3,6 @@ tsconfig.json tslint.json *.js.map *.d.ts -cfn +*.generated.ts dist lib/generated/resources.ts diff --git a/packages/@aws-cdk/s3/lib/bucket-policy.ts b/packages/@aws-cdk/s3/lib/bucket-policy.ts index 7a6cbf9d881e9..b7d548afbaecb 100644 --- a/packages/@aws-cdk/s3/lib/bucket-policy.ts +++ b/packages/@aws-cdk/s3/lib/bucket-policy.ts @@ -1,6 +1,6 @@ import { Construct, PolicyDocument } from '@aws-cdk/core'; -import * as s3 from '../cfn/s3'; import { BucketRef } from './bucket'; +import * as s3 from './s3.generated'; export interface BucketPolicyProps { /** @@ -28,7 +28,7 @@ export class BucketPolicy extends Construct { throw new Error('Bucket doesn\'t have a bucketName defined'); } - new s3.BucketPolicyResource(this, 'Resource', { + new s3.cloudformation.BucketPolicyResource(this, 'Resource', { bucket: props.bucket.bucketName, policyDocument: this.document, }); diff --git a/packages/@aws-cdk/s3/lib/bucket.ts b/packages/@aws-cdk/s3/lib/bucket.ts index 9b923190641aa..b8ddddbea8383 100644 --- a/packages/@aws-cdk/s3/lib/bucket.ts +++ b/packages/@aws-cdk/s3/lib/bucket.ts @@ -1,10 +1,10 @@ import { applyRemovalPolicy, Arn, Construct, FnConcat, Output, PolicyStatement, RemovalPolicy, Token } from '@aws-cdk/core'; import { IIdentityResource } from '@aws-cdk/iam'; import * as kms from '@aws-cdk/kms'; -import * as s3 from '../cfn/s3'; import { BucketPolicy } from './bucket-policy'; import * as perms from './perms'; import { LifecycleRule } from './rule'; +import * as s3 from './s3.generated'; import { parseBucketArn, parseBucketName, validateBucketName } from './util'; /** @@ -265,7 +265,7 @@ export class Bucket extends BucketRef { const { bucketEncryption, encryptionKey } = this.parseEncryption(props); - const resource = new s3.BucketResource(this, 'Resource', { + const resource = new s3.cloudformation.BucketResource(this, 'Resource', { bucketName: props && props.bucketName, bucketEncryption, versioningConfiguration: props.versioned ? { status: 'Enabled' } : undefined, @@ -306,7 +306,7 @@ export class Bucket extends BucketRef { * user's configuration. */ private parseEncryption(props: BucketProps): { - bucketEncryption?: s3.BucketResource.BucketEncryptionProperty, + bucketEncryption?: s3.cloudformation.BucketResource.BucketEncryptionProperty, encryptionKey?: kms.EncryptionKeyRef } { @@ -366,14 +366,14 @@ export class Bucket extends BucketRef { * Parse the lifecycle configuration out of the uucket props * @param props Par */ - private parseLifecycleConfiguration(): s3.BucketResource.LifecycleConfigurationProperty | undefined { + private parseLifecycleConfiguration(): s3.cloudformation.BucketResource.LifecycleConfigurationProperty | undefined { if (!this.lifecycleRules || this.lifecycleRules.length === 0) { return undefined; } return { rules: this.lifecycleRules.map(parseLifecycleRule) }; - function parseLifecycleRule(rule: LifecycleRule): s3.BucketResource.RuleProperty { + function parseLifecycleRule(rule: LifecycleRule): s3.cloudformation.BucketResource.RuleProperty { const enabled = rule.enabled !== undefined ? rule.enabled : true; const x = { diff --git a/packages/@aws-cdk/s3/lib/index.ts b/packages/@aws-cdk/s3/lib/index.ts index 6bde1d8a88491..593c797757b3f 100644 --- a/packages/@aws-cdk/s3/lib/index.ts +++ b/packages/@aws-cdk/s3/lib/index.ts @@ -2,5 +2,5 @@ export * from './bucket'; export * from './bucket-policy'; export * from './rule'; -// The L1 library for AWS::S3: -export * from '../cfn/s3'; +// AWS::S3 CloudFormation Resources: +export * from './s3.generated'; diff --git a/packages/@aws-cdk/s3/package.json b/packages/@aws-cdk/s3/package.json index 969bd46e785fa..89929a563a529 100644 --- a/packages/@aws-cdk/s3/package.json +++ b/packages/@aws-cdk/s3/package.json @@ -43,7 +43,6 @@ "dependencies": { "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", - "@aws-cdk/kms": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/kms": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/s3/test/test.bucket.ts b/packages/@aws-cdk/s3/test/test.bucket.ts index 80c76e8f39842..1671e2af2dff2 100644 --- a/packages/@aws-cdk/s3/test/test.bucket.ts +++ b/packages/@aws-cdk/s3/test/test.bucket.ts @@ -3,8 +3,7 @@ import { PolicyStatement, RemovalPolicy, resolve, Stack } from '@aws-cdk/core'; import { Group, User } from '@aws-cdk/iam'; import { EncryptionKey } from '@aws-cdk/kms'; import { Test } from 'nodeunit'; -import * as s3 from '../cfn/s3'; -import { Bucket, BucketEncryption } from '../lib'; +import * as s3 from '../lib'; // to make it easy to copy & paste from output: // tslint:disable:object-literal-key-quotes @@ -13,7 +12,7 @@ export = { 'default bucket'(test: Test) { const stack = new Stack(); - new Bucket(stack, 'MyBucket'); + new s3.Bucket(stack, 'MyBucket'); expect(stack).toMatch({ "Resources": { @@ -28,8 +27,8 @@ export = { 'bucket without encryption'(test: Test) { const stack = new Stack(); - new Bucket(stack, 'MyBucket', { - encryption: BucketEncryption.Unencrypted + new s3.Bucket(stack, 'MyBucket', { + encryption: s3.BucketEncryption.Unencrypted }); expect(stack).toMatch({ @@ -45,8 +44,8 @@ export = { 'bucket with managed encryption'(test: Test) { const stack = new Stack(); - new Bucket(stack, 'MyBucket', { - encryption: BucketEncryption.KmsManaged + new s3.Bucket(stack, 'MyBucket', { + encryption: s3.BucketEncryption.KmsManaged }); expect(stack).toMatch({ @@ -74,8 +73,8 @@ export = { const stack = new Stack(); const myKey = new EncryptionKey(stack, 'MyKey'); - test.throws(() => new Bucket(stack, 'MyBucket', { - encryption: BucketEncryption.KmsManaged, + test.throws(() => new s3.Bucket(stack, 'MyBucket', { + encryption: s3.BucketEncryption.KmsManaged, encryptionKey: myKey }), /encryptionKey is specified, so 'encryption' must be set to KMS/); @@ -86,8 +85,8 @@ export = { const stack = new Stack(); const myKey = new EncryptionKey(stack, 'MyKey'); - test.throws(() => new Bucket(stack, 'MyBucket', { - encryption: BucketEncryption.Unencrypted, + test.throws(() => new s3.Bucket(stack, 'MyBucket', { + encryption: s3.BucketEncryption.Unencrypted, encryptionKey: myKey }), /encryptionKey is specified, so 'encryption' must be set to KMS/); @@ -99,7 +98,7 @@ export = { const encryptionKey = new EncryptionKey(stack, 'MyKey', { description: 'hello, world' }); - new Bucket(stack, 'MyBucket', { encryptionKey, encryption: BucketEncryption.Kms }); + new s3.Bucket(stack, 'MyBucket', { encryptionKey, encryption: s3.BucketEncryption.Kms }); expect(stack).toMatch({ "Resources": { @@ -178,7 +177,7 @@ export = { 'bucket with versioning turned on'(test: Test) { const stack = new Stack(); - new Bucket(stack, 'MyBucket', { + new s3.Bucket(stack, 'MyBucket', { versioned: true }); @@ -201,7 +200,7 @@ export = { 'addPermission creates a bucket policy'(test: Test) { const stack = new Stack(); - const bucket = new Bucket(stack, 'MyBucket', { encryption: BucketEncryption.Unencrypted }); + const bucket = new s3.Bucket(stack, 'MyBucket', { encryption: s3.BucketEncryption.Unencrypted }); bucket.addToResourcePolicy(new PolicyStatement().addResource('foo').addAction('bar')); @@ -237,7 +236,7 @@ export = { 'forBucket returns a permission statement associated with the bucket\'s ARN'(test: Test) { const stack = new Stack(); - const bucket = new Bucket(stack, 'MyBucket', { encryption: BucketEncryption.Unencrypted }); + const bucket = new s3.Bucket(stack, 'MyBucket', { encryption: s3.BucketEncryption.Unencrypted }); const x = new PolicyStatement().addResource(bucket.bucketArn).addAction('s3:ListBucket'); @@ -253,7 +252,7 @@ export = { 'arnForObjects returns a permission statement associated with objects in the bucket'(test: Test) { const stack = new Stack(); - const bucket = new Bucket(stack, 'MyBucket', { encryption: BucketEncryption.Unencrypted }); + const bucket = new s3.Bucket(stack, 'MyBucket', { encryption: s3.BucketEncryption.Unencrypted }); const p = new PolicyStatement().addResource(bucket.arnForObjects('hello/world')).addAction('s3:GetObject'); @@ -275,7 +274,7 @@ export = { const stack = new Stack(); - const bucket = new Bucket(stack, 'MyBucket', { encryption: BucketEncryption.Unencrypted }); + const bucket = new s3.Bucket(stack, 'MyBucket', { encryption: s3.BucketEncryption.Unencrypted }); const user = new User(stack, 'MyUser'); const team = new Group(stack, 'MyTeam'); @@ -308,7 +307,7 @@ export = { 'removal policy can be used to specify behavior upon delete'(test: Test) { const stack = new Stack(); - new Bucket(stack, 'MyBucket', { removalPolicy: RemovalPolicy.Orphan, encryption: BucketEncryption.Unencrypted }); + new s3.Bucket(stack, 'MyBucket', { removalPolicy: RemovalPolicy.Orphan, encryption: s3.BucketEncryption.Unencrypted }); expect(stack).toMatch({ Resources: { @@ -325,7 +324,7 @@ export = { 'import/export': { 'export creates outputs for the bucket attributes and returns a ref object'(test: Test) { const stack = new Stack(undefined, 'MyStack'); - const bucket = new Bucket(stack, 'MyBucket'); + const bucket = new s3.Bucket(stack, 'MyBucket'); const bucketRef = bucket.export(); test.deepEqual(resolve(bucketRef), { bucketArn: { 'Fn::ImportValue': 'MyStack:MyBucketBucketArnE260558C' }, @@ -336,7 +335,7 @@ export = { 'refs will include the bucket\'s encryption key if defined'(test: Test) { const stack = new Stack(undefined, 'MyStack'); - const bucket = new Bucket(stack, 'MyBucket', { encryption: BucketEncryption.Kms }); + const bucket = new s3.Bucket(stack, 'MyBucket', { encryption: s3.BucketEncryption.Kms }); const bucketRef = bucket.export(); test.deepEqual(resolve(bucketRef), { bucketArn: { 'Fn::ImportValue': 'MyStack:MyBucketBucketArnE260558C' }, @@ -349,7 +348,7 @@ export = { const stack = new Stack(); const bucketArn = new s3.BucketArn('arn:aws:s3:::my-bucket'); - const bucket = Bucket.import(stack, 'ImportedBucket', { bucketArn }); + const bucket = s3.Bucket.import(stack, 'ImportedBucket', { bucketArn }); // this is a no-op since the bucket is external bucket.addToResourcePolicy(new PolicyStatement().addResource('foo').addAction('bar')); @@ -372,7 +371,7 @@ export = { 'import can also be used to import arbitrary ARNs'(test: Test) { const stack = new Stack(); - const bucket = Bucket.import(stack, 'ImportedBucket', { bucketArn: new s3.BucketArn('arn:aws:s3:::my-bucket') }); + const bucket = s3.Bucket.import(stack, 'ImportedBucket', { bucketArn: new s3.BucketArn('arn:aws:s3:::my-bucket') }); bucket.addToResourcePolicy(new PolicyStatement().addResource('*').addAction('*')); // at this point we technically didn't create any resources in the consuming stack. @@ -429,7 +428,7 @@ export = { 'this is how export/import work together'(test: Test) { const stack1 = new Stack(undefined, 'S1'); - const bucket = new Bucket(stack1, 'MyBucket'); + const bucket = new s3.Bucket(stack1, 'MyBucket'); const bucketRef = bucket.export(); expect(stack1).toMatch({ @@ -462,7 +461,7 @@ export = { }); const stack2 = new Stack(undefined, 'S2'); - const importedBucket = Bucket.import(stack2, 'ImportedBucket', bucketRef); + const importedBucket = s3.Bucket.import(stack2, 'ImportedBucket', bucketRef); const user = new User(stack2, 'MyUser'); importedBucket.grantRead(user); @@ -522,7 +521,7 @@ export = { 'grantRead'(test: Test) { const stack = new Stack(); const reader = new User(stack, 'Reader'); - const bucket = new Bucket(stack, 'MyBucket'); + const bucket = new s3.Bucket(stack, 'MyBucket'); bucket.grantRead(reader); expect(stack).toMatch({ "Resources": { @@ -587,7 +586,7 @@ export = { 'grantReadWrite': { 'can be used to grant reciprocal permissions to an identity'(test: Test) { const stack = new Stack(); - const bucket = new Bucket(stack, 'MyBucket'); + const bucket = new s3.Bucket(stack, 'MyBucket'); const user = new User(stack, 'MyUser'); bucket.grantReadWrite(user); @@ -657,7 +656,7 @@ export = { 'if an encryption key is included, encrypt/decrypt permissions are also added both ways'(test: Test) { const stack = new Stack(); - const bucket = new Bucket(stack, 'MyBucket', { encryption: BucketEncryption.Kms }); + const bucket = new s3.Bucket(stack, 'MyBucket', { encryption: s3.BucketEncryption.Kms }); const user = new User(stack, 'MyUser'); bucket.grantReadWrite(user); @@ -828,12 +827,12 @@ export = { 'cross-stack permissions'(test: Test) { const stackA = new Stack(); - const bucketFromStackA = new Bucket(stackA, 'MyBucket'); + const bucketFromStackA = new s3.Bucket(stackA, 'MyBucket'); const refToBucketFromStackA = bucketFromStackA.export(); const stackB = new Stack(); const user = new User(stackB, 'UserWhoNeedsAccess'); - const theBucketFromStackAAsARefInStackB = Bucket.import(stackB, 'RefToBucketFromStackA', refToBucketFromStackA); + const theBucketFromStackAAsARefInStackB = s3.Bucket.import(stackB, 'RefToBucketFromStackA', refToBucketFromStackA); theBucketFromStackAAsARefInStackB.grantRead(user); expect(stackA).toMatch({ diff --git a/packages/@aws-cdk/s3/test/test.util.ts b/packages/@aws-cdk/s3/test/test.util.ts index ca6b3c378c3a1..f9dc51f94fbb9 100644 --- a/packages/@aws-cdk/s3/test/test.util.ts +++ b/packages/@aws-cdk/s3/test/test.util.ts @@ -1,7 +1,6 @@ import { FnConcat, resolve } from '@aws-cdk/core'; import { Test } from 'nodeunit'; -import * as s3 from '../cfn/s3'; -import { BucketName } from '../lib'; +import * as s3 from '../lib'; import { parseBucketArn, parseBucketName } from '../lib/util'; export = { @@ -13,7 +12,7 @@ export = { }, 'produce arn from bucket name'(test: Test) { - const bucketName = new BucketName('hello'); + const bucketName = new s3.BucketName('hello'); test.deepEqual(resolve(parseBucketArn({ bucketName })), { 'Fn::Join': [ '', [ 'arn', @@ -39,7 +38,7 @@ export = { parseBucketName: { 'explicit name'(test: Test) { - const bucketName = new BucketName('foo'); + const bucketName = new s3.BucketName('foo'); test.deepEqual(resolve(parseBucketName({ bucketName })), 'foo'); test.done(); }, diff --git a/packages/@aws-cdk/sdb/.gitignore b/packages/@aws-cdk/sdb/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/sdb/.gitignore +++ b/packages/@aws-cdk/sdb/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/sdb/lib/index.ts b/packages/@aws-cdk/sdb/lib/index.ts index 3b2080e9f6f57..19bd925866be0 100644 --- a/packages/@aws-cdk/sdb/lib/index.ts +++ b/packages/@aws-cdk/sdb/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::SDB: -export * from '../cfn/sdb'; +// AWS::SDB CloudFormation Resources: +export * from './sdb.generated'; diff --git a/packages/@aws-cdk/sdb/package.json b/packages/@aws-cdk/sdb/package.json index b67d06f84e896..a3ae4d310a455 100644 --- a/packages/@aws-cdk/sdb/package.json +++ b/packages/@aws-cdk/sdb/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/serverless/.gitignore b/packages/@aws-cdk/serverless/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/serverless/.gitignore +++ b/packages/@aws-cdk/serverless/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/serverless/lib/index.ts b/packages/@aws-cdk/serverless/lib/index.ts index b717560d45231..eb26f203a6065 100644 --- a/packages/@aws-cdk/serverless/lib/index.ts +++ b/packages/@aws-cdk/serverless/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::Serverless: -export * from '../cfn/serverless'; +// AWS::Serverless CloudFormation Resources: +export * from './serverless.generated'; diff --git a/packages/@aws-cdk/serverless/package.json b/packages/@aws-cdk/serverless/package.json index edd600b13203b..3cb7512d67bee 100644 --- a/packages/@aws-cdk/serverless/package.json +++ b/packages/@aws-cdk/serverless/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/servicecatalog/.gitignore b/packages/@aws-cdk/servicecatalog/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/servicecatalog/.gitignore +++ b/packages/@aws-cdk/servicecatalog/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/servicecatalog/lib/index.ts b/packages/@aws-cdk/servicecatalog/lib/index.ts index f955e997f7831..821df334e56d7 100644 --- a/packages/@aws-cdk/servicecatalog/lib/index.ts +++ b/packages/@aws-cdk/servicecatalog/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::ServiceCatalog: -export * from '../cfn/servicecatalog'; +// AWS::ServiceCatalog CloudFormation Resources: +export * from './servicecatalog.generated'; diff --git a/packages/@aws-cdk/servicecatalog/package.json b/packages/@aws-cdk/servicecatalog/package.json index 024383142881f..4e3fe79d230f4 100644 --- a/packages/@aws-cdk/servicecatalog/package.json +++ b/packages/@aws-cdk/servicecatalog/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/servicediscovery/.gitignore b/packages/@aws-cdk/servicediscovery/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/servicediscovery/.gitignore +++ b/packages/@aws-cdk/servicediscovery/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/servicediscovery/lib/index.ts b/packages/@aws-cdk/servicediscovery/lib/index.ts index f68ccce237577..3683de632dddb 100644 --- a/packages/@aws-cdk/servicediscovery/lib/index.ts +++ b/packages/@aws-cdk/servicediscovery/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::ServiceDiscovery: -export * from '../cfn/servicediscovery'; +// AWS::ServiceDiscovery CloudFormation Resources: +export * from './servicediscovery.generated'; diff --git a/packages/@aws-cdk/servicediscovery/package.json b/packages/@aws-cdk/servicediscovery/package.json index 43e1bd593371f..b4f1b8dd05bac 100644 --- a/packages/@aws-cdk/servicediscovery/package.json +++ b/packages/@aws-cdk/servicediscovery/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/ses/.gitignore b/packages/@aws-cdk/ses/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/ses/.gitignore +++ b/packages/@aws-cdk/ses/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/ses/lib/index.ts b/packages/@aws-cdk/ses/lib/index.ts index c090bb0bea8d1..725bd4c040640 100644 --- a/packages/@aws-cdk/ses/lib/index.ts +++ b/packages/@aws-cdk/ses/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::SES: -export * from '../cfn/ses'; +// AWS::SES CloudFormation Resources: +export * from './ses.generated'; diff --git a/packages/@aws-cdk/ses/package.json b/packages/@aws-cdk/ses/package.json index 48c8b93dad56b..dc6b6adfa966c 100644 --- a/packages/@aws-cdk/ses/package.json +++ b/packages/@aws-cdk/ses/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/sns/.gitignore b/packages/@aws-cdk/sns/.gitignore index 2df4d42e01e23..1900b4ac9b084 100644 --- a/packages/@aws-cdk/sns/.gitignore +++ b/packages/@aws-cdk/sns/.gitignore @@ -2,7 +2,7 @@ *.js.map *.d.ts node_modules -cfn +*.generated.ts dist tsconfig.json tslint.json diff --git a/packages/@aws-cdk/sns/lib/index.ts b/packages/@aws-cdk/sns/lib/index.ts index 56ce3c5c7a748..2b1cd1f7ce1c6 100644 --- a/packages/@aws-cdk/sns/lib/index.ts +++ b/packages/@aws-cdk/sns/lib/index.ts @@ -3,5 +3,5 @@ export * from './topic'; export * from './topic-ref'; export * from './subscription'; -// The L1 library for AWS::SNS: -export * from '../cfn/sns'; +// AWS::SNS CloudFormation Resources: +export * from './sns.generated'; diff --git a/packages/@aws-cdk/sns/lib/policy.ts b/packages/@aws-cdk/sns/lib/policy.ts index c799ae4ef753d..ae2f438cef1d9 100644 --- a/packages/@aws-cdk/sns/lib/policy.ts +++ b/packages/@aws-cdk/sns/lib/policy.ts @@ -1,5 +1,5 @@ import { Construct, PolicyDocument } from '@aws-cdk/core'; -import * as sns from '../cfn/sns'; +import * as sns from './sns.generated'; import { TopicRef } from './topic-ref'; export interface TopicPolicyProps { @@ -21,7 +21,7 @@ export class TopicPolicy extends Construct { constructor(parent: Construct, name: string, props: TopicPolicyProps) { super(parent, name); - new sns.TopicPolicyResource(this, 'Resource', { + new sns.cloudformation.TopicPolicyResource(this, 'Resource', { policyDocument: this.document, topics: props.topics.map(t => t.topicArn) }); diff --git a/packages/@aws-cdk/sns/lib/subscription.ts b/packages/@aws-cdk/sns/lib/subscription.ts index d6d2b9939eaed..31f4f5095f165 100644 --- a/packages/@aws-cdk/sns/lib/subscription.ts +++ b/packages/@aws-cdk/sns/lib/subscription.ts @@ -1,5 +1,5 @@ import { Construct } from '@aws-cdk/core'; -import * as sns from '../cfn/sns'; +import * as sns from './sns.generated'; import { TopicRef } from './topic-ref'; /** @@ -34,7 +34,7 @@ export class Subscription extends Construct { constructor(parent: Construct, name: string, props: SubscriptionProps) { super(parent, name); - new sns.SubscriptionResource(this, 'Resource', { + new sns.cloudformation.SubscriptionResource(this, 'Resource', { endpoint: props.endpoint, protocol: props.protocol, topicArn: props.topic.topicArn diff --git a/packages/@aws-cdk/sns/lib/topic-ref.ts b/packages/@aws-cdk/sns/lib/topic-ref.ts index 8057deeaf624f..ed2796de15b73 100644 --- a/packages/@aws-cdk/sns/lib/topic-ref.ts +++ b/packages/@aws-cdk/sns/lib/topic-ref.ts @@ -4,8 +4,8 @@ import { EventRuleTarget, IEventRuleTarget } from '@aws-cdk/events'; import { IIdentityResource } from '@aws-cdk/iam'; import { LambdaRef } from '@aws-cdk/lambda'; import { QueueRef } from '@aws-cdk/sqs'; -import * as sns from '../cfn/sns'; import { TopicPolicy } from './policy'; +import * as sns from './sns.generated'; import { Subscription, SubscriptionProtocol } from './subscription'; /** diff --git a/packages/@aws-cdk/sns/lib/topic.ts b/packages/@aws-cdk/sns/lib/topic.ts index 54a164263dfb4..abd97ba0de72b 100644 --- a/packages/@aws-cdk/sns/lib/topic.ts +++ b/packages/@aws-cdk/sns/lib/topic.ts @@ -1,5 +1,5 @@ import { Construct, } from '@aws-cdk/core'; -import * as sns from '../cfn/sns'; +import * as sns from './sns.generated'; import { TopicArn, TopicRef } from './topic-ref'; /** @@ -37,7 +37,7 @@ export class Topic extends TopicRef { constructor(parent: Construct, name: string, props: TopicProps = {}) { super(parent, name); - const resource = new sns.TopicResource(this, 'Resource', { + const resource = new sns.cloudformation.TopicResource(this, 'Resource', { displayName: props.displayName, topicName: props.topicName }); diff --git a/packages/@aws-cdk/sns/package.json b/packages/@aws-cdk/sns/package.json index f292bd41dc8a3..28fd9d2f7f97b 100644 --- a/packages/@aws-cdk/sns/package.json +++ b/packages/@aws-cdk/sns/package.json @@ -46,7 +46,6 @@ "@aws-cdk/events": "^0.7.3-beta", "@aws-cdk/iam": "^0.7.3-beta", "@aws-cdk/lambda": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta", "@aws-cdk/sqs": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/sqs/.gitignore b/packages/@aws-cdk/sqs/.gitignore index 8634a5e37938c..8d01974b8efbc 100644 --- a/packages/@aws-cdk/sqs/.gitignore +++ b/packages/@aws-cdk/sqs/.gitignore @@ -2,7 +2,7 @@ *.js.map *.d.ts node_modules -cfn +*.generated.ts dist tsconfig.json tslint.json diff --git a/packages/@aws-cdk/sqs/lib/index.ts b/packages/@aws-cdk/sqs/lib/index.ts index 3d8fb76ffa6ef..aeb73f0030e1c 100644 --- a/packages/@aws-cdk/sqs/lib/index.ts +++ b/packages/@aws-cdk/sqs/lib/index.ts @@ -2,5 +2,5 @@ export * from './policy'; export * from './queue'; export * from './queue-ref'; -// The L1 library for AWS::SQS: -export * from '../cfn/sqs'; +// AWS::SQS CloudFormation Resources: +export * from './sqs.generated'; diff --git a/packages/@aws-cdk/sqs/lib/policy.ts b/packages/@aws-cdk/sqs/lib/policy.ts index d0dc339f6a00e..73f3ca17a931a 100644 --- a/packages/@aws-cdk/sqs/lib/policy.ts +++ b/packages/@aws-cdk/sqs/lib/policy.ts @@ -1,6 +1,6 @@ import { Construct, PolicyDocument } from '@aws-cdk/core'; -import * as sqs from '../cfn/sqs'; import { QueueRef } from './queue-ref'; +import * as sqs from './sqs.generated'; export interface QueuePolicyProps { /** @@ -21,7 +21,7 @@ export class QueuePolicy extends Construct { constructor(parent: Construct, name: string, props: QueuePolicyProps) { super(parent, name); - new sqs.QueuePolicyResource(this, 'Resource', { + new sqs.cloudformation.QueuePolicyResource(this, 'Resource', { policyDocument: this.document, queues: props.queues.map(q => q.queueUrl) }); diff --git a/packages/@aws-cdk/sqs/lib/queue-ref.ts b/packages/@aws-cdk/sqs/lib/queue-ref.ts index 8dfdc3b949fdc..349210c798d06 100644 --- a/packages/@aws-cdk/sqs/lib/queue-ref.ts +++ b/packages/@aws-cdk/sqs/lib/queue-ref.ts @@ -1,6 +1,6 @@ import { Construct, Output, PolicyStatement, Token } from '@aws-cdk/core'; -import * as sqs from '../cfn/sqs'; import { QueuePolicy } from './policy'; +import * as sqs from './sqs.generated'; /** * Reference to a new or existing Amazon SQS queue diff --git a/packages/@aws-cdk/sqs/lib/queue.ts b/packages/@aws-cdk/sqs/lib/queue.ts index 9cc3c253da38c..7333ce315cb52 100644 --- a/packages/@aws-cdk/sqs/lib/queue.ts +++ b/packages/@aws-cdk/sqs/lib/queue.ts @@ -1,7 +1,7 @@ import { Construct } from '@aws-cdk/core'; import { EncryptionKey, EncryptionKeyRef, KeyArn } from '@aws-cdk/kms'; -import * as sqs from '../cfn/sqs'; import { QueueRef, QueueUrl } from './queue-ref'; +import * as sqs from './sqs.generated'; import { validateProps } from './validate-props'; /** @@ -209,7 +209,7 @@ export class Queue extends QueueRef { } : undefined; - const queue = new sqs.QueueResource(this, 'Resource', { + const queue = new sqs.cloudformation.QueueResource(this, 'Resource', { queueName: props.queueName, ...this.determineFifoProps(props), ...this.determineEncryptionProps(props), diff --git a/packages/@aws-cdk/sqs/package.json b/packages/@aws-cdk/sqs/package.json index a4be8405fa227..29207ebfa4de4 100644 --- a/packages/@aws-cdk/sqs/package.json +++ b/packages/@aws-cdk/sqs/package.json @@ -43,7 +43,6 @@ }, "dependencies": { "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/kms": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/kms": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/ssm/.gitignore b/packages/@aws-cdk/ssm/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/ssm/.gitignore +++ b/packages/@aws-cdk/ssm/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/ssm/lib/index.ts b/packages/@aws-cdk/ssm/lib/index.ts index eb53df48f39f2..dd275c956670c 100644 --- a/packages/@aws-cdk/ssm/lib/index.ts +++ b/packages/@aws-cdk/ssm/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::SSM: -export * from '../cfn/ssm'; +// AWS::SSM CloudFormation Resources: +export * from './ssm.generated'; diff --git a/packages/@aws-cdk/ssm/package.json b/packages/@aws-cdk/ssm/package.json index 2c381c79ac649..84aae53c961ec 100644 --- a/packages/@aws-cdk/ssm/package.json +++ b/packages/@aws-cdk/ssm/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/stepfunctions/.gitignore b/packages/@aws-cdk/stepfunctions/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/stepfunctions/.gitignore +++ b/packages/@aws-cdk/stepfunctions/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/stepfunctions/lib/index.ts b/packages/@aws-cdk/stepfunctions/lib/index.ts index 574b1030b4b41..fd4033059ad29 100644 --- a/packages/@aws-cdk/stepfunctions/lib/index.ts +++ b/packages/@aws-cdk/stepfunctions/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::StepFunctions: -export * from '../cfn/stepfunctions'; +// AWS::StepFunctions CloudFormation Resources: +export * from './stepfunctions.generated'; diff --git a/packages/@aws-cdk/stepfunctions/package.json b/packages/@aws-cdk/stepfunctions/package.json index 65e0bfbbc7c95..356881b385af2 100644 --- a/packages/@aws-cdk/stepfunctions/package.json +++ b/packages/@aws-cdk/stepfunctions/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/util/package.json b/packages/@aws-cdk/util/package.json index 35e7df4fa84a4..ec1eaee37d51b 100644 --- a/packages/@aws-cdk/util/package.json +++ b/packages/@aws-cdk/util/package.json @@ -31,7 +31,6 @@ }, "dependencies": { "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/iam": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/iam": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/waf/.gitignore b/packages/@aws-cdk/waf/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/waf/.gitignore +++ b/packages/@aws-cdk/waf/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/waf/lib/index.ts b/packages/@aws-cdk/waf/lib/index.ts index 9315be495c37e..f82292d42ab61 100644 --- a/packages/@aws-cdk/waf/lib/index.ts +++ b/packages/@aws-cdk/waf/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::WAF: -export * from '../cfn/waf'; +// AWS::WAF CloudFormation Resources: +export * from './waf.generated'; diff --git a/packages/@aws-cdk/waf/package.json b/packages/@aws-cdk/waf/package.json index 79c6535486068..b695ad503a009 100644 --- a/packages/@aws-cdk/waf/package.json +++ b/packages/@aws-cdk/waf/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/wafregional/.gitignore b/packages/@aws-cdk/wafregional/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/wafregional/.gitignore +++ b/packages/@aws-cdk/wafregional/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/wafregional/lib/index.ts b/packages/@aws-cdk/wafregional/lib/index.ts index 91aacfdc33bef..c5ccdeff46989 100644 --- a/packages/@aws-cdk/wafregional/lib/index.ts +++ b/packages/@aws-cdk/wafregional/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::WAFRegional: -export * from '../cfn/wafregional'; +// AWS::WAFRegional CloudFormation Resources: +export * from './wafregional.generated'; diff --git a/packages/@aws-cdk/wafregional/package.json b/packages/@aws-cdk/wafregional/package.json index cc4bf2a356e26..e9fe90d0aa9e5 100644 --- a/packages/@aws-cdk/wafregional/package.json +++ b/packages/@aws-cdk/wafregional/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/@aws-cdk/workspaces/.gitignore b/packages/@aws-cdk/workspaces/.gitignore index a5c5ebe7c20df..b83716c778227 100644 --- a/packages/@aws-cdk/workspaces/.gitignore +++ b/packages/@aws-cdk/workspaces/.gitignore @@ -4,5 +4,5 @@ tsconfig.json tslint.json node_modules -cfn +*.generated.ts dist diff --git a/packages/@aws-cdk/workspaces/lib/index.ts b/packages/@aws-cdk/workspaces/lib/index.ts index 198fbc36decf2..ffedaa5887aa8 100644 --- a/packages/@aws-cdk/workspaces/lib/index.ts +++ b/packages/@aws-cdk/workspaces/lib/index.ts @@ -1,2 +1,2 @@ -// The L1 Library for AWS::WorkSpaces: -export * from '../cfn/workspaces'; +// AWS::WorkSpaces CloudFormation Resources: +export * from './workspaces.generated'; diff --git a/packages/@aws-cdk/workspaces/package.json b/packages/@aws-cdk/workspaces/package.json index 00afc5d8e7335..479865740fb9b 100644 --- a/packages/@aws-cdk/workspaces/package.json +++ b/packages/@aws-cdk/workspaces/package.json @@ -41,7 +41,6 @@ "pkglint": "^0.7.3-beta" }, "dependencies": { - "@aws-cdk/core": "^0.7.3-beta", - "@aws-cdk/runtime": "^0.7.3-beta" + "@aws-cdk/core": "^0.7.3-beta" } } diff --git a/packages/aws-cdk-docs/build-docs.sh b/packages/aws-cdk-docs/build-docs.sh index f51a0130024ae..425baee557416 100755 --- a/packages/aws-cdk-docs/build-docs.sh +++ b/packages/aws-cdk-docs/build-docs.sh @@ -4,7 +4,7 @@ set -euo pipefail PYTHON_DEPS="$PWD/python-deps" mkdir -p "${PYTHON_DEPS}" -export PYTHONPATH=${PYTHON_DEPS}/lib/python3.6/site-packages +export PYTHONPATH=${PYTHON_DEPS}/lib/python3.6/site-packages:${PYTHON_DEPS}/lib/python3.7/site-packages export PATH=${PYTHON_DEPS}/bin:$PATH #---------------------------------------------------------------------- diff --git a/packages/aws-cdk/lib/api/deploy-stack.ts b/packages/aws-cdk/lib/api/deploy-stack.ts index 3e70333d156de..cc1f9b59c465c 100644 --- a/packages/aws-cdk/lib/api/deploy-stack.ts +++ b/packages/aws-cdk/lib/api/deploy-stack.ts @@ -1,4 +1,4 @@ -import { WaitConditionHandleResource } from '@aws-cdk/cloudformation'; +import { cloudformation } from '@aws-cdk/cloudformation'; import { App, Stack } from '@aws-cdk/core'; import { StackInfo, SynthesizedStack } from '@aws-cdk/cx-api'; import { CloudFormation } from 'aws-sdk'; @@ -90,7 +90,7 @@ async function createEmptyStack(cfn: CloudFormation, stackName: string, quiet: b const app = new App(); const stack = new Stack(app, stackName); stack.templateOptions.description = 'This is an empty stack created by AWS CDK during a deployment attempt'; - new WaitConditionHandleResource(stack, 'WaitCondition'); + new cloudformation.WaitConditionHandleResource(stack, 'WaitCondition'); const template = (await app.synthesizeStack(stackName)).template; const response = await cfn.createStack({ StackName: stackName, TemplateBody: JSON.stringify(template, null, 2) }).promise(); diff --git a/packages/aws-cdk/lib/api/util/toolkit-stack.ts b/packages/aws-cdk/lib/api/util/toolkit-stack.ts index 51c4422e37cc9..168561bb1de3d 100644 --- a/packages/aws-cdk/lib/api/util/toolkit-stack.ts +++ b/packages/aws-cdk/lib/api/util/toolkit-stack.ts @@ -1,34 +1,34 @@ -import { App, Output, Stack, StackProps } from '@aws-cdk/core'; -import { BucketResource } from '@aws-cdk/s3'; +import * as cdk from '@aws-cdk/core'; +import * as s3 from '@aws-cdk/s3'; /** * The CDK Toolkit stack provides resources necessary to deploy cloud executables into an AWS environment. */ -export class ToolkitStack extends Stack { +export class ToolkitStack extends cdk.Stack { /** The name of the S3 bucket that can be used to stage CloudFormation templates for deployment. */ - public readonly bucketNameOutput: Output; + public readonly bucketNameOutput: cdk.Output; /** The domain name of the S3 bucket that can be used to stage CloudFormation templates for deployment. */ - public readonly bucketDomainNameOutput: Output; + public readonly bucketDomainNameOutput: cdk.Output; - constructor(parent: App, name: string, props: StackProps) { + constructor(parent: cdk.App, name: string, props: cdk.StackProps) { super(parent, name, props); // tslint:disable-next-line:max-line-length this.templateOptions.description = 'The CDK Toolkit Stack. It cas created by `cdk bootstrap` and manages resources necessary for managing your Cloud Applications with AWS CDK.'; - const bucket = new BucketResource(this, 'StagingBucket', { + const bucket = new s3.cloudformation.BucketResource(this, 'StagingBucket', { accessControl: 'Private', bucketEncryption: { serverSideEncryptionConfiguration: [ { serverSideEncryptionByDefault: { sseAlgorithm: 'aws:kms' } } ] } }); - this.bucketNameOutput = new Output(this, 'BucketName', { + this.bucketNameOutput = new cdk.Output(this, 'BucketName', { description: 'The name of the S3 bucket owned by the CDK toolkit stack', value: bucket.ref }); - this.bucketDomainNameOutput = new Output(this, 'BucketDomainName', { + this.bucketDomainNameOutput = new cdk.Output(this, 'BucketDomainName', { description: 'The domain name of the S3 bucket owned by the CDK toolkit stack', value: bucket.bucketDomainName }); diff --git a/tools/cfn2ts/bin/cfn2ts.ts b/tools/cfn2ts/bin/cfn2ts.ts index fc05f2322de1d..0a266e5cbb3ac 100755 --- a/tools/cfn2ts/bin/cfn2ts.ts +++ b/tools/cfn2ts/bin/cfn2ts.ts @@ -8,7 +8,7 @@ import generate from '../lib'; const argv = yargs.usage('Usage: cfn2ts') .option('scope', { type: 'string', desc: 'Scope to generate TypeScript for (e.g: AWS::IAM)', required: true }) - .option('out', { type: 'string', desc: 'Path to the directory where the TypeScript files should be written', default: 'cfn' }) + .option('out', { type: 'string', desc: 'Path to the directory where the TypeScript files should be written', default: 'lib' }) .option('force', { type: 'boolean', desc: 'Generate the spec even if it appears up-to-date', default: false }) .argv; diff --git a/tools/cfn2ts/lib/codegen.ts b/tools/cfn2ts/lib/codegen.ts index 1c1de9937f7ce..bcd32d2b6f24d 100644 --- a/tools/cfn2ts/lib/codegen.ts +++ b/tools/cfn2ts/lib/codegen.ts @@ -1,12 +1,11 @@ -import { schema } from '@aws-cdk/cloudformation-resource-spec'; +import { schema } from '@aws-cdk/cdk-cfnspec'; import { CodeMaker } from 'codemaker'; import * as fs from 'fs-extra'; import * as path from 'path'; import * as genspec from './genspec'; import { itemTypeNames, PropertyAttributeName, scalarTypeNames, SpecName } from './spec-utils'; -const CORE = 'core'; -const RUNTIME = 'runtime'; +const CORE = genspec.CORE_NAMESPACE; const RESOURCE_BASE_CLASS = `${CORE}.Resource`; // base class for all resources const CONSTRUCT_CLASS = `${CORE}.Construct`; @@ -26,12 +25,12 @@ export default class CodeGenerator { * @param spec CloudFormation resource specification */ constructor(moduleName: string, private readonly spec: schema.Specification) { - this.outputFile = `${moduleName}.ts`; + this.outputFile = `${moduleName}.generated.ts`; this.code.openFile(this.outputFile); const meta = { - generatedOn: new Date(), - specificationFingerprint: spec.Fingerprint + generated: new Date(), + fingerprint: spec.Fingerprint }; this.code.line('// Copyright 2012-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.'); @@ -42,7 +41,6 @@ export default class CodeGenerator { this.code.line('// tslint:disable:max-line-length | This is generated code - line lengths are difficult to control'); this.code.line(); this.code.line(`import * as ${CORE} from '@aws-cdk/core';`); - this.code.line(`import * as ${RUNTIME} from '@aws-cdk/runtime';`); } public async upToDate(outPath: string): Promise { @@ -55,7 +53,7 @@ export default class CodeGenerator { if (comment) { try { const meta = JSON.parse(comment[1]); - if (meta.specificationFingerprint === this.spec.Fingerprint) { + if (meta.fingerprint === this.spec.Fingerprint) { return true; } } catch { @@ -65,27 +63,23 @@ export default class CodeGenerator { return false; } - /** - * Emits classes for all resource types - */ - public emitResourceTypes() { - Object.keys(this.spec.ResourceTypes).sort().forEach(name => { + public emitCode() { + for (const name of Object.keys(this.spec.ResourceTypes).sort()) { const cfnName = SpecName.parse(name); const resourceName = genspec.CodeName.forResource(cfnName); this.code.line(); - this.emitResourceType(resourceName, this.spec.ResourceTypes[name]); - }); - } + this.code.openBlock('export namespace cloudformation'); + const attributeTypes = this.emitResourceType(resourceName, this.spec.ResourceTypes[name]); - /** - * Emits classes for all property types - */ - public emitPropertyTypes() { - if (!this.spec.PropertyTypes) { return; } - for (const name of Object.keys(this.spec.PropertyTypes).sort()) { - const cfnName = PropertyAttributeName.parse(name); - const propTypeName = genspec.CodeName.forPropertyType(cfnName); - this.emitPropertyType(propTypeName, this.spec.PropertyTypes[name]); + this.emitPropertyTypes(name); + + this.code.closeBlock(); + + if (attributeTypes.length === 0) { continue; } + for (const attributeType of attributeTypes) { + this.code.line(); + this.emitAttributeType(attributeType); + } } } @@ -97,6 +91,19 @@ export default class CodeGenerator { return await this.code.save(dir); } + /** + * Emits classes for all property types + */ + private emitPropertyTypes(resourceName: string) { + const prefix = `${resourceName}.`; + for (const name of Object.keys(this.spec.PropertyTypes).sort()) { + if (!name.startsWith(prefix)) { continue; } + const cfnName = PropertyAttributeName.parse(name); + const propTypeName = genspec.CodeName.forPropertyType(cfnName); + this.emitPropertyType(propTypeName, this.spec.PropertyTypes[name]); + } + } + private openClass(name: genspec.CodeName, docLink?: string, superClasses?: string) { const extendsPostfix = superClasses ? ` extends ${superClasses}` : ''; this.docLink(docLink); @@ -246,7 +253,7 @@ export default class CodeGenerator { const prop = spec.Properties[pname]; if (prop.Required) { const propName = pname.toLocaleLowerCase() === 'name' ? resourceNameProperty(resourceName.specName!) : pname; - this.code.line(`this.required(properties, '${genspec.cloudFormationToScriptName(propName)}');`); + this.code.line(`${CORE}.requireProperty(properties, '${genspec.cloudFormationToScriptName(propName)}', this);`); } } } @@ -279,13 +286,9 @@ export default class CodeGenerator { this.closeClass(resourceName); - // if we have attribute types, emit them. - for (const attrType of attributeTypes) { - this.code.line(); - this.emitAttributeType(attrType); - } - this.endNamespace(resourceName); + + return attributeTypes; } /** @@ -305,12 +308,12 @@ export default class CodeGenerator { * The generated code looks like this: * * function bucketPropsToCloudFormation(properties: any): any { - * if (!runtime.canInspect(properties)) return properties; + * if (!core.canInspect(properties)) return properties; * BucketPropsValidator(properties).assertSuccess(); * return { * AccelerateConfiguration: bucketAccelerateConfigurationPropertyToCloudFormation(properties.accelerateConfiguration), - * AccessControl: runtime.stringToCloudFormation(properties.accessControl), - * AnalyticsConfigurations: runtime.listMapper(bucketAnalyticsConfigurationPropertyToCloudFormation) + * AccessControl: core.stringToCloudFormation(properties.accessControl), + * AnalyticsConfigurations: core.listMapper(bucketAnalyticsConfigurationPropertyToCloudFormation) * (properties.analyticsConfigurations), * // ... * }; @@ -335,7 +338,7 @@ export default class CodeGenerator { // It might be that this value is 'null' or 'undefined', and that that's OK. Simply return // the falsey value, the upstream struct is in a better position to know whether this is required or not. - this.code.line('if (!runtime.canInspect(properties)) { return properties; }'); + this.code.line(`if (!${CORE}.canInspect(properties)) { return properties; }`); // Do a 'type' check first const validatorName = genspec.validatorName(typeName); @@ -354,27 +357,27 @@ export default class CodeGenerator { return mapperNames([type]); }, visitUnionScalar(types: genspec.CodeName[]) { - return `runtime.unionMapper([${validatorNames(types)}], [${mapperNames(types)}])`; + return `${CORE}.unionMapper([${validatorNames(types)}], [${mapperNames(types)}])`; }, visitList(itemType: genspec.CodeName) { - return `runtime.listMapper(${mapperNames([itemType])})`; + return `${CORE}.listMapper(${mapperNames([itemType])})`; }, visitUnionList(itemTypes: genspec.CodeName[]) { - return `runtime.listMapper(runtime.unionMapper([${validatorNames(itemTypes)}], [${mapperNames(itemTypes)}]))`; + return `${CORE}.listMapper(${CORE}.unionMapper([${validatorNames(itemTypes)}], [${mapperNames(itemTypes)}]))`; }, visitMap(itemType: genspec.CodeName) { - return `runtime.hashMapper(${mapperNames([itemType])})`; + return `${CORE}.hashMapper(${mapperNames([itemType])})`; }, visitUnionMap(itemTypes: genspec.CodeName[]) { - return `runtime.hashMapper(runtime.unionMapper([${validatorNames(itemTypes)}], [${mapperNames(itemTypes)}]))`; + return `${CORE}.hashMapper(${CORE}.unionMapper([${validatorNames(itemTypes)}], [${mapperNames(itemTypes)}]))`; }, visitListOrScalar(types: genspec.CodeName[], itemTypes: genspec.CodeName[]) { - const scalarValidator = `runtime.unionValidator(${validatorNames(types)})`; - const listValidator = `runtime.listValidator(runtime.unionValidator(${validatorNames(itemTypes)}))`; - const scalarMapper = `runtime.unionMapper([${validatorNames(types)}], [${mapperNames(types)}])`; - const listMapper = `runtime.listMapper(runtime.unionMapper([${validatorNames(itemTypes)}], [${mapperNames(itemTypes)}]))`; + const scalarValidator = `${CORE}.unionValidator(${validatorNames(types)})`; + const listValidator = `${CORE}.listValidator(${CORE}.unionValidator(${validatorNames(itemTypes)}))`; + const scalarMapper = `${CORE}.unionMapper([${validatorNames(types)}], [${mapperNames(types)}])`; + const listMapper = `${CORE}.listMapper(${CORE}.unionMapper([${validatorNames(itemTypes)}], [${mapperNames(itemTypes)}]))`; - return `runtime.unionMapper([${scalarValidator}, ${listValidator}], [${scalarMapper}, ${listMapper}])`; + return `${CORE}.unionMapper([${scalarValidator}, ${listValidator}], [${scalarMapper}, ${listMapper}])`; }, }); @@ -401,17 +404,17 @@ export default class CodeGenerator { this.code.line(' *'); this.code.line(' * @returns the result of the validation.'); this.code.line(' */'); - this.code.openBlock(`function ${validatorName.functionName}(properties: any): runtime.ValidationResult`); - this.code.line('if (!runtime.canInspect(properties)) { return runtime.VALIDATION_SUCCESS; }'); + this.code.openBlock(`function ${validatorName.functionName}(properties: any): ${CORE}.ValidationResult`); + this.code.line(`if (!${CORE}.canInspect(properties)) { return ${CORE}.VALIDATION_SUCCESS; }`); - this.code.line('const errors = new runtime.ValidationResults();'); + this.code.line(`const errors = new ${CORE}.ValidationResults();`); Object.keys(propSpecs).forEach(cfnPropName => { const propSpec = propSpecs[cfnPropName]; const propName = nameConversionTable[cfnPropName]; if (propSpec.Required) { - this.code.line(`errors.collect(runtime.propertyValidator('${propName}', runtime.requiredValidator)(properties.${propName}));`); + this.code.line(`errors.collect(${CORE}.propertyValidator('${propName}', ${CORE}.requiredValidator)(properties.${propName}));`); } const self = this; @@ -420,28 +423,28 @@ export default class CodeGenerator { return validatorNames([type]); }, visitUnionScalar(types: genspec.CodeName[]) { - return `runtime.unionValidator(${validatorNames(types)})`; + return `${CORE}.unionValidator(${validatorNames(types)})`; }, visitList(itemType: genspec.CodeName) { - return `runtime.listValidator(${validatorNames([itemType])})`; + return `${CORE}.listValidator(${validatorNames([itemType])})`; }, visitUnionList(itemTypes: genspec.CodeName[]) { - return `runtime.listValidator(runtime.unionValidator(${validatorNames(itemTypes)}))`; + return `${CORE}.listValidator(${CORE}.unionValidator(${validatorNames(itemTypes)}))`; }, visitMap(itemType: genspec.CodeName) { - return `runtime.hashValidator(${validatorNames([itemType])})`; + return `${CORE}.hashValidator(${validatorNames([itemType])})`; }, visitUnionMap(itemTypes: genspec.CodeName[]) { - return `runtime.hashValidator(runtime.unionValidator(${validatorNames(itemTypes)}))`; + return `${CORE}.hashValidator(${CORE}.unionValidator(${validatorNames(itemTypes)}))`; }, visitListOrScalar(types: genspec.CodeName[], itemTypes: genspec.CodeName[]) { - const scalarValidator = `runtime.unionValidator(${validatorNames(types)})`; - const listValidator = `runtime.listValidator(runtime.unionValidator(${validatorNames(itemTypes)}))`; + const scalarValidator = `${CORE}.unionValidator(${validatorNames(types)})`; + const listValidator = `${CORE}.listValidator(${CORE}.unionValidator(${validatorNames(itemTypes)}))`; - return `runtime.unionValidator(${scalarValidator}, ${listValidator})`; + return `${CORE}.unionValidator(${scalarValidator}, ${listValidator})`; }, }); - self.code.line(`errors.collect(runtime.propertyValidator('${propName}', ${validatorExpression})(properties.${propName}));`); + self.code.line(`errors.collect(${CORE}.propertyValidator('${propName}', ${validatorExpression})(properties.${propName}));`); }); this.code.line(`return errors.wrap('supplied properties not correct for "${typeName.className}"');`); @@ -468,17 +471,24 @@ export default class CodeGenerator { } private beginNamespace(type: genspec.CodeName) { if (type.namespace) { - this.code.openBlock(`export namespace ${type.namespace}`); + const parts = type.namespace.split('.'); + for (const part of parts) { + this.code.openBlock(`export namespace ${part}`); + } } } private endNamespace(type: genspec.CodeName) { if (type.namespace) { - this.code.closeBlock(); + const parts = type.namespace.split('.'); + for (const _ of parts) { + this.code.closeBlock(); + } } } private emitPropertyType(typeName: genspec.CodeName, propTypeSpec: schema.PropertyType) { + this.code.line(); this.beginNamespace(typeName); this.docLink(propTypeSpec.Documentation); diff --git a/tools/cfn2ts/lib/genspec.ts b/tools/cfn2ts/lib/genspec.ts index e69eb52f9e140..7335a742a40b0 100644 --- a/tools/cfn2ts/lib/genspec.ts +++ b/tools/cfn2ts/lib/genspec.ts @@ -2,13 +2,15 @@ // // Does not include the actual code generation itself. -import { schema } from '@aws-cdk/cloudformation-resource-spec'; +import { schema } from '@aws-cdk/cdk-cfnspec'; import { toCamelCase, toPascalCase } from 'codemaker'; import { itemTypeNames, PropertyAttributeName, scalarTypeNames, SpecName } from './spec-utils'; import * as util from './util'; const RESOURCE_CLASS_POSTFIX = 'Resource'; +export const CORE_NAMESPACE = 'core'; + /** * The name of corresponding objects in the generated code * @@ -45,7 +47,7 @@ export class CodeName { if (!resourceClassName.endsWith(RESOURCE_CLASS_POSTFIX)) { resourceClassName += RESOURCE_CLASS_POSTFIX; } - return new CodeName(packageName(specName), resourceClassName, `${specName.propAttrName}Property`, specName); + return new CodeName(packageName(specName), `${resourceClassName}`, `${specName.propAttrName}Property`, specName); } public static forPrimitive(primitiveName: string): CodeName { @@ -135,7 +137,7 @@ export function packageName(module: SpecName | string): string { export function cfnMapperName(typeName: CodeName): CodeName { if (!typeName.packageName) { // Built-in or intrinsic type, built-in mappers - return new CodeName('', 'runtime', '', undefined, util.downcaseFirst(`${typeName.className}ToCloudFormation`)); + return new CodeName('', CORE_NAMESPACE, '', undefined, util.downcaseFirst(`${typeName.className}ToCloudFormation`)); } return new CodeName(typeName.packageName, '', util.downcaseFirst(`${typeName.namespace}${typeName.className}ToCloudFormation`)); @@ -147,7 +149,7 @@ export function cfnMapperName(typeName: CodeName): CodeName { export function validatorName(typeName: CodeName): CodeName { if (typeName.packageName === '') { // Built-in or intrinsic type, built-in validators - return new CodeName('', 'runtime', '', undefined, `validate${toPascalCase(typeName.className)}`); + return new CodeName('', CORE_NAMESPACE, '', undefined, `validate${toPascalCase(typeName.className)}`); } return new CodeName(typeName.packageName, '', `${util.joinIf(typeName.namespace, '_', typeName.className)}Validator`); @@ -171,9 +173,9 @@ export function attributeDefinition(resourceName: CodeName, attributeName: strin // Not in a namespace, base the name on the descriptive name const typeName = new CodeName(resourceName.packageName, '', descriptiveName, specName); // "BucketArn" - let baseClass = 'core.Token'; + let baseClass = `${CORE_NAMESPACE}.Token`; if (attributeName.endsWith('Arn')) { - baseClass = 'core.Arn'; + baseClass = `${CORE_NAMESPACE}.Arn`; } return new Attribute(propertyName, typeName, baseClass, docLink); diff --git a/tools/cfn2ts/lib/index.ts b/tools/cfn2ts/lib/index.ts index 26e954943e35d..89d526b92350e 100644 --- a/tools/cfn2ts/lib/index.ts +++ b/tools/cfn2ts/lib/index.ts @@ -1,4 +1,4 @@ -import { filteredSpecification } from '@aws-cdk/cloudformation-resource-spec'; +import { filteredSpecification } from '@aws-cdk/cdk-cfnspec'; import { green } from 'colors/safe'; import * as fs from 'fs-extra'; import * as path from 'path'; @@ -16,15 +16,14 @@ export default async function(scope: string, outPath: string, force: boolean) { const generator = new CodeGenerator(name, spec); - if (force || !await generator.upToDate(outPath)) { - generator.emitResourceTypes(); - generator.emitPropertyTypes(); - - // tslint:disable-next-line:no-console - console.log('Generated code: %s', green(path.join(outPath, generator.outputFile))); - await generator.save(outPath); - } else { + if (!force && await generator.upToDate(outPath)) { // tslint:disable-next-line:no-console console.log('Generated code already up-to-date: %s', green(path.join(outPath, generator.outputFile))); + return; } + generator.emitCode(); + + // tslint:disable-next-line:no-console + console.log('Generated code: %s', green(path.join(outPath, generator.outputFile))); + await generator.save(outPath); } diff --git a/tools/cfn2ts/lib/spec-utils.ts b/tools/cfn2ts/lib/spec-utils.ts index cff5f0400a098..9834552ff3223 100644 --- a/tools/cfn2ts/lib/spec-utils.ts +++ b/tools/cfn2ts/lib/spec-utils.ts @@ -1,4 +1,4 @@ -import { schema } from '@aws-cdk/cloudformation-resource-spec'; +import { schema } from '@aws-cdk/cdk-cfnspec'; import { joinIf } from './util'; /** diff --git a/tools/cfn2ts/package.json b/tools/cfn2ts/package.json index b0ea3e21e45e8..2a4b44a18b522 100644 --- a/tools/cfn2ts/package.json +++ b/tools/cfn2ts/package.json @@ -25,7 +25,7 @@ }, "license": "LicenseRef-LICENSE", "dependencies": { - "@aws-cdk/cloudformation-resource-spec": "^0.7.3-beta", + "@aws-cdk/cdk-cfnspec": "^0.7.3-beta", "colors": "^1.2.1", "fast-json-patch": "^2.0.6", "fs-extra": "^4.0.2", From 1ba5f7fe19794dd0ed7e0acc7441ec29c3811b3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=91=A8=F0=9F=8F=BC=E2=80=8D=F0=9F=92=BB=20Romain=20M?= =?UTF-8?q?arcadier-Muller?= Date: Tue, 10 Jul 2018 15:36:14 +0200 Subject: [PATCH 3/6] Modelling dependency from @aws-cdk/assert on aws-cdk Disabling use of '--reject-cycles' on 'lerna bootstrap' as it would blow up on the cycle created by (e.g:) how aws-cdk uses @aws-cdk/s3, which itself uses @aws-cdk/assert. --- install.sh | 2 +- packages/@aws-cdk/assert/package.json | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 699c3502ffb15..9bf0d4fc73fba 100755 --- a/install.sh +++ b/install.sh @@ -10,4 +10,4 @@ export PATH=node_modules/.bin:$PATH echo "=============================================================================================" echo "bootstrapping..." -lerna bootstrap --reject-cycles +lerna bootstrap # --reject-cycles diff --git a/packages/@aws-cdk/assert/package.json b/packages/@aws-cdk/assert/package.json index 58f77a8340971..c5cde37ce544b 100644 --- a/packages/@aws-cdk/assert/package.json +++ b/packages/@aws-cdk/assert/package.json @@ -27,6 +27,7 @@ "@aws-cdk/cloudformation-diff": "^0.7.3-beta", "@aws-cdk/core": "^0.7.3-beta", "@aws-cdk/cx-api": "^0.7.3-beta", + "aws-cdk": "^0.7.3-beta", "source-map-support": "^0.5.6" }, "repository": { From 27dad9a968e7cfd1d92933dc91bed26a0836e0d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=91=A8=F0=9F=8F=BC=E2=80=8D=F0=9F=92=BB=20Romain=20M?= =?UTF-8?q?arcadier-Muller?= Date: Tue, 10 Jul 2018 15:41:51 +0200 Subject: [PATCH 4/6] Add comment --- create-missing-libraries.sh | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/create-missing-libraries.sh b/create-missing-libraries.sh index c19bb7d534fb8..35fa7eda68f7e 100755 --- a/create-missing-libraries.sh +++ b/create-missing-libraries.sh @@ -3,6 +3,7 @@ set -euo pipefail export PATH=node_modules/.bin:$PATH +# Making sure the bare minimum packages allowing be able to test-build the generated packages is available: lerna exec --scope=cfn2ts \ --scope=pkglint \ --scope=@aws-cdk/cdk-cfnspec \ @@ -33,7 +34,7 @@ node_modules dist EOM - cat <> packages/${P}/.npmignore + cat < packages/${P}/.npmignore # Don't include original .ts files when doing \`npm pack\` *.ts !*.d.ts @@ -42,7 +43,7 @@ coverage *.tgz EOM - cat <> packages/${P}/package.json + cat < packages/${P}/package.json { "name": "${P}", "version": "${VERSION}", @@ -91,12 +92,12 @@ EOM } EOM - cat <> packages/${P}/lib/index.ts + cat < packages/${P}/lib/index.ts // ${S} CloudFormation Resources: export * from './${PB}.generated'; EOM - cat <> packages/${P}/test/test.${PB}.ts + cat < packages/${P}/test/test.${PB}.ts import { Test, testCase } from 'nodeunit'; import {} from '../lib'; @@ -114,6 +115,6 @@ EOM git add packages/${P} - echo "✅ Have fun with your new package ${P}" + echo "✅ Have fun with your new package ${P} (⚠️ don't forget to add it to 'aws-cdk-all')" fi done From e46f5f80df1f30dede554e92155d1f06699fc2f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=91=A8=F0=9F=8F=BC=E2=80=8D=F0=9F=92=BB=20Romain=20M?= =?UTF-8?q?arcadier-Muller?= Date: Tue, 10 Jul 2018 15:51:38 +0200 Subject: [PATCH 5/6] Make @aws-cdk/assert resolve the cdk command correctly --- packages/@aws-cdk/assert/lib/integ-helpers.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/@aws-cdk/assert/lib/integ-helpers.ts b/packages/@aws-cdk/assert/lib/integ-helpers.ts index 489342d345f6a..2a5018677a038 100644 --- a/packages/@aws-cdk/assert/lib/integ-helpers.ts +++ b/packages/@aws-cdk/assert/lib/integ-helpers.ts @@ -49,7 +49,8 @@ export class IntegrationTest { } try { - return exec(['cdk', '-a', `node ${this.name}`].concat(args), this.directory, json); + const cdk = require.resolve('aws-cdk/bin/cdk'); + return exec([cdk, '-a', `node ${this.name}`].concat(args), this.directory, json); } finally { this.deleteCdkConfig(); } From 826dc093756a6d72843300562444e638bffdac58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=91=A8=F0=9F=8F=BC=E2=80=8D=F0=9F=92=BB=20Romain=20M?= =?UTF-8?q?arcadier-Muller?= Date: Tue, 10 Jul 2018 16:49:11 +0200 Subject: [PATCH 6/6] Change import patterns to use per-class import instead of wild-card for generated code. --- packages/@aws-cdk/acm/lib/certificate.ts | 6 ++-- .../cloudfront/lib/web_distribution.ts | 26 +++++++------- packages/@aws-cdk/cloudtrail/lib/index.ts | 6 ++-- packages/@aws-cdk/cloudwatch/lib/alarm.ts | 6 ++-- packages/@aws-cdk/cloudwatch/lib/dashboard.ts | 6 ++-- packages/@aws-cdk/codebuild/lib/artifacts.ts | 10 +++--- packages/@aws-cdk/codebuild/lib/project.ts | 16 ++++----- packages/@aws-cdk/codebuild/lib/source.ts | 16 ++++----- .../@aws-cdk/codecommit/lib/codecommit.ts | 18 +++++----- packages/@aws-cdk/codepipeline/lib/actions.ts | 4 +-- .../@aws-cdk/codepipeline/lib/pipeline.ts | 10 +++--- packages/@aws-cdk/codepipeline/lib/stage.ts | 4 +-- packages/@aws-cdk/dynamodb/lib/index.ts | 10 +++--- packages/@aws-cdk/ec2/lib/security-group.ts | 34 +++++++++---------- packages/@aws-cdk/ec2/lib/vpc.ts | 24 ++++++------- packages/@aws-cdk/events/lib/rule-ref.ts | 8 ++--- packages/@aws-cdk/events/lib/rule.ts | 10 +++--- packages/@aws-cdk/events/lib/target.ts | 8 ++--- packages/@aws-cdk/iam/lib/group.ts | 6 ++-- packages/@aws-cdk/iam/lib/policy.ts | 4 +-- packages/@aws-cdk/iam/lib/role.ts | 6 ++-- packages/@aws-cdk/iam/lib/user.ts | 8 ++--- packages/@aws-cdk/kinesis/lib/stream.ts | 18 +++++----- packages/@aws-cdk/kms/lib/alias.ts | 4 +-- packages/@aws-cdk/kms/lib/key.ts | 12 +++---- packages/@aws-cdk/lambda/lib/alias.ts | 6 ++-- packages/@aws-cdk/lambda/lib/code.ts | 8 ++--- packages/@aws-cdk/lambda/lib/lambda-ref.ts | 10 +++--- .../@aws-cdk/lambda/lib/lambda-version.ts | 6 ++-- packages/@aws-cdk/lambda/lib/lambda.ts | 6 ++-- packages/@aws-cdk/rds/lib/cluster-ref.ts | 12 +++---- packages/@aws-cdk/rds/lib/cluster.ts | 8 ++--- packages/@aws-cdk/route53/lib/hosted-zone.ts | 12 +++---- packages/@aws-cdk/route53/lib/records/txt.ts | 4 +-- .../route53/lib/records/zone-delegation.ts | 4 +-- packages/@aws-cdk/s3/lib/bucket-policy.ts | 4 +-- packages/@aws-cdk/s3/lib/bucket.ts | 22 ++++++------ packages/@aws-cdk/sns/lib/policy.ts | 4 +-- packages/@aws-cdk/sns/lib/subscription.ts | 4 +-- packages/@aws-cdk/sns/lib/topic-ref.ts | 8 ++--- packages/@aws-cdk/sns/lib/topic.ts | 6 ++-- packages/@aws-cdk/sqs/lib/policy.ts | 4 +-- packages/@aws-cdk/sqs/lib/queue-ref.ts | 8 ++--- packages/@aws-cdk/sqs/lib/queue.ts | 8 ++--- 44 files changed, 212 insertions(+), 212 deletions(-) diff --git a/packages/@aws-cdk/acm/lib/certificate.ts b/packages/@aws-cdk/acm/lib/certificate.ts index 8f014a9f57939..e6f8bc13c0e54 100644 --- a/packages/@aws-cdk/acm/lib/certificate.ts +++ b/packages/@aws-cdk/acm/lib/certificate.ts @@ -1,6 +1,6 @@ import { Construct } from '@aws-cdk/core'; import { CertificateArn, CertificateRef } from './certificate-ref'; -import * as certificatemanager from './certificatemanager.generated'; +import { cloudformation } from './certificatemanager.generated'; import { apexDomain } from './util'; /** @@ -59,7 +59,7 @@ export class Certificate extends CertificateRef { const allDomainNames = [props.domainName].concat(props.subjectAlternativeNames || []); - const cert = new certificatemanager.cloudformation.CertificateResource(this, 'Resource', { + const cert = new cloudformation.CertificateResource(this, 'Resource', { domainName: props.domainName, subjectAlternativeNames: props.subjectAlternativeNames, domainValidationOptions: allDomainNames.map(domainValidationOption), @@ -72,7 +72,7 @@ export class Certificate extends CertificateRef { * * Closes over props. */ - function domainValidationOption(domainName: string): certificatemanager.cloudformation.CertificateResource.DomainValidationOptionProperty { + function domainValidationOption(domainName: string): cloudformation.CertificateResource.DomainValidationOptionProperty { const overrideDomain = props.validationDomains && props.validationDomains[domainName]; return { domainName, diff --git a/packages/@aws-cdk/cloudfront/lib/web_distribution.ts b/packages/@aws-cdk/cloudfront/lib/web_distribution.ts index 23f94dd3e5445..75dc9d04cc21f 100644 --- a/packages/@aws-cdk/cloudfront/lib/web_distribution.ts +++ b/packages/@aws-cdk/cloudfront/lib/web_distribution.ts @@ -1,7 +1,7 @@ import { CertificateArn } from '@aws-cdk/acm'; import { Construct, FnConcat, } from '@aws-cdk/core'; import { Bucket, BucketRef } from '@aws-cdk/s3'; -import * as cloudfront from './cloudfront.generated'; +import { cloudformation, DistributionDomainName } from './cloudfront.generated'; export enum HttpVersion { HTTP1_1 = "http1.1", @@ -195,7 +195,7 @@ export interface S3OriginConfig { /** * The optional origin identity cloudfront will use when calling your s3 bucket. */ - readonly originAccessIdentity?: cloudfront.cloudformation.CloudFrontOriginAccessIdentityResource + readonly originAccessIdentity?: cloudformation.CloudFrontOriginAccessIdentityResource } /** @@ -281,7 +281,7 @@ export interface Behavior { * @default none (no cookies - no headers) * */ - forwardedValues?: cloudfront.cloudformation.DistributionResource.ForwardedValuesProperty; + forwardedValues?: cloudformation.DistributionResource.ForwardedValuesProperty; /** * The minimum amount of time that you want objects to stay in the cache @@ -384,7 +384,7 @@ export interface CloudFrontWebDistributionProps { /** * How CloudFront should handle requests that are no successful (eg PageNotFound) */ - errorConfigurations?: cloudfront.cloudformation.DistributionResource.CustomErrorResponseProperty[]; + errorConfigurations?: cloudformation.DistributionResource.CustomErrorResponseProperty[]; } /** @@ -443,7 +443,7 @@ export class CloudFrontWebDistribution extends Construct { * If you are using aliases for your distribution, this is the domainName your DNS records should point to. * (In Route53, you could create an ALIAS record to this value, for example. ) */ - public readonly domainName: cloudfront.DistributionDomainName; + public readonly domainName: DistributionDomainName; /** * Maps our methods to the string arrays they are @@ -457,7 +457,7 @@ export class CloudFrontWebDistribution extends Construct { constructor(parent: Construct, name: string, props: CloudFrontWebDistributionProps) { super(parent, name); - const distributionConfig: cloudfront.cloudformation.DistributionResource.DistributionConfigProperty = { + const distributionConfig: cloudformation.DistributionResource.DistributionConfigProperty = { comment: props.comment, enabled: true, defaultRootObject: props.defaultRootObject || "index.html", @@ -470,7 +470,7 @@ export class CloudFrontWebDistribution extends Construct { const behaviors: BehaviorWithOrigin[] = []; - const origins: cloudfront.cloudformation.DistributionResource.OriginProperty[] = []; + const origins: cloudformation.DistributionResource.OriginProperty[] = []; let originIndex = 1; for (const originConfig of props.originConfigs) { @@ -482,10 +482,10 @@ export class CloudFrontWebDistribution extends Construct { throw new Error("There cannot be both an s3OriginSource and a customOriginSource in the same SourceConfiguration."); } - const originHeaders: cloudfront.cloudformation.DistributionResource.OriginCustomHeaderProperty[] = []; + const originHeaders: cloudformation.DistributionResource.OriginCustomHeaderProperty[] = []; if (originConfig.originHeaders) { Object.keys(originConfig.originHeaders).forEach(key => { - const oHeader: cloudfront.cloudformation.DistributionResource.OriginCustomHeaderProperty = { + const oHeader: cloudformation.DistributionResource.OriginCustomHeaderProperty = { headerName: key, headerValue: originConfig.originHeaders![key] }; @@ -493,7 +493,7 @@ export class CloudFrontWebDistribution extends Construct { }); } - const originProperty: cloudfront.cloudformation.DistributionResource.OriginProperty = { + const originProperty: cloudformation.DistributionResource.OriginProperty = { id: originId, domainName: originConfig.s3OriginSource ? originConfig.s3OriginSource.s3BucketSource.domainName : @@ -530,12 +530,12 @@ export class CloudFrontWebDistribution extends Construct { throw new Error("There can only be one default behavior across all sources. [ One default behavior per distribution ]."); } distributionConfig.defaultCacheBehavior = this.toBehavior(defaultBehaviors[0]); - const otherBehaviors: cloudfront.cloudformation.DistributionResource.CacheBehaviorProperty[] = []; + const otherBehaviors: cloudformation.DistributionResource.CacheBehaviorProperty[] = []; for (const behavior of behaviors.filter(b => !b.isDefaultBehavior)) { if (!behavior.pathPattern) { throw new Error("pathPattern is required for all non-default behaviors"); } - otherBehaviors.push(this.toBehavior(behavior) as cloudfront.cloudformation.DistributionResource.CacheBehaviorProperty); + otherBehaviors.push(this.toBehavior(behavior) as cloudformation.DistributionResource.CacheBehaviorProperty); } distributionConfig.cacheBehaviors = otherBehaviors; @@ -551,7 +551,7 @@ export class CloudFrontWebDistribution extends Construct { }; } - const distribution = new cloudfront.cloudformation.DistributionResource(this, 'CFDistribution', {distributionConfig}); + const distribution = new cloudformation.DistributionResource(this, 'CFDistribution', {distributionConfig}); this.domainName = distribution.distributionDomainName; } diff --git a/packages/@aws-cdk/cloudtrail/lib/index.ts b/packages/@aws-cdk/cloudtrail/lib/index.ts index 60aa07be883bf..f0793557f7701 100644 --- a/packages/@aws-cdk/cloudtrail/lib/index.ts +++ b/packages/@aws-cdk/cloudtrail/lib/index.ts @@ -3,7 +3,7 @@ import { Role } from '@aws-cdk/iam'; import { EncryptionKeyRef } from '@aws-cdk/kms'; import * as logs from '@aws-cdk/logs'; import { Bucket, BucketEncryption } from '@aws-cdk/s3'; -import * as cloudtrail from './cloudtrail.generated'; +import { cloudformation, TrailArn } from './cloudtrail.generated'; // AWS::CloudTrail CloudFormation Resources: export * from './cloudtrail.generated'; @@ -121,7 +121,7 @@ export enum LogRetention { */ export class CloudTrail extends Construct { - public readonly cloudTrailArn: cloudtrail.TrailArn; + public readonly cloudTrailArn: TrailArn; private readonly cloudWatchLogsRoleArn?: Token; private readonly cloudWatchLogsGroupArn?: Token; private eventSelectors: EventSelector[] = []; @@ -167,7 +167,7 @@ export class CloudTrail extends Construct { } // TODO: not all regions support validation. Use service configuration data to fail gracefully - const trail = new cloudtrail.cloudformation.TrailResource(this, 'Resource', { + const trail = new cloudformation.TrailResource(this, 'Resource', { isLogging: true, enableLogFileValidation: props.enableFileValidation == null ? true : props.enableFileValidation, isMultiRegionTrail: props.isMultiRegionTrail == null ? true : props.isMultiRegionTrail, diff --git a/packages/@aws-cdk/cloudwatch/lib/alarm.ts b/packages/@aws-cdk/cloudwatch/lib/alarm.ts index ad6f823301982..b67d5ff4442ef 100644 --- a/packages/@aws-cdk/cloudwatch/lib/alarm.ts +++ b/packages/@aws-cdk/cloudwatch/lib/alarm.ts @@ -1,5 +1,5 @@ import { Arn, Construct, Token } from '@aws-cdk/core'; -import * as cloudwatch from './cloudwatch.generated'; +import { AlarmArn, cloudformation } from './cloudwatch.generated'; import { HorizontalAnnotation } from './graph'; import { Dimension, Metric, Statistic, Unit } from './metric'; import { parseStatistic } from './util.statistic'; @@ -119,7 +119,7 @@ export class Alarm extends Construct { /** * ARN of this alarm */ - public readonly alarmArn: cloudwatch.AlarmArn; + public readonly alarmArn: AlarmArn; /** * The metric object this alarm was based on @@ -140,7 +140,7 @@ export class Alarm extends Construct { const comparisonOperator = props.comparisonOperator || ComparisonOperator.GreaterThanOrEqualToThreshold; - const alarm = new cloudwatch.cloudformation.AlarmResource(this, 'Resource', { + const alarm = new cloudformation.AlarmResource(this, 'Resource', { // Meta alarmDescription: props.alarmDescription, alarmName: props.alarmName, diff --git a/packages/@aws-cdk/cloudwatch/lib/dashboard.ts b/packages/@aws-cdk/cloudwatch/lib/dashboard.ts index 8a961dbb4daca..76a8c09d60bef 100644 --- a/packages/@aws-cdk/cloudwatch/lib/dashboard.ts +++ b/packages/@aws-cdk/cloudwatch/lib/dashboard.ts @@ -1,5 +1,5 @@ import { Construct, Stack, Token, tokenAwareJsonify } from "@aws-cdk/core"; -import * as cloudwatch from './cloudwatch.generated'; +import { cloudformation } from './cloudwatch.generated'; import { Column, Row } from "./layout"; import { IWidget } from "./widget"; @@ -17,7 +17,7 @@ export interface DashboardProps { */ export class Dashboard extends Construct { private readonly rows: IWidget[] = []; - private readonly dashboard: cloudwatch.cloudformation.DashboardResource; + private readonly dashboard: cloudformation.DashboardResource; constructor(parent: Construct, name: string, props?: DashboardProps) { super(parent, name); @@ -28,7 +28,7 @@ export class Dashboard extends Construct { // See: https://github.com/awslabs/aws-cdk/issues/213 const dashboardName = (props && props.dashboardName) || new Token(() => this.generateDashboardName()); - this.dashboard = new cloudwatch.cloudformation.DashboardResource(this, 'Resource', { + this.dashboard = new cloudformation.DashboardResource(this, 'Resource', { dashboardName, dashboardBody: new Token(() => { const column = new Column(...this.rows); diff --git a/packages/@aws-cdk/codebuild/lib/artifacts.ts b/packages/@aws-cdk/codebuild/lib/artifacts.ts index 91b0360fbc455..77a168f865cdc 100644 --- a/packages/@aws-cdk/codebuild/lib/artifacts.ts +++ b/packages/@aws-cdk/codebuild/lib/artifacts.ts @@ -1,22 +1,22 @@ import { BucketRef } from '@aws-cdk/s3'; -import * as codebuild from './codebuild.generated'; +import { cloudformation } from './codebuild.generated'; import { BuildProject } from './project'; export abstract class BuildArtifacts { - public abstract toArtifactsJSON(): codebuild.cloudformation.ProjectResource.ArtifactsProperty; + public abstract toArtifactsJSON(): cloudformation.ProjectResource.ArtifactsProperty; public bind(_project: BuildProject) { return; } } export class NoBuildArtifacts extends BuildArtifacts { - public toArtifactsJSON(): codebuild.cloudformation.ProjectResource.ArtifactsProperty { + public toArtifactsJSON(): cloudformation.ProjectResource.ArtifactsProperty { return { type: 'NO_ARTIFACTS' }; } } export class CodePipelineBuildArtifacts extends BuildArtifacts { - public toArtifactsJSON(): codebuild.cloudformation.ProjectResource.ArtifactsProperty { + public toArtifactsJSON(): cloudformation.ProjectResource.ArtifactsProperty { return { type: 'CODEPIPELINE' }; } } @@ -68,7 +68,7 @@ export class S3BucketBuildArtifacts extends BuildArtifacts { this.props.bucket.grantReadWrite(project.role); } - public toArtifactsJSON(): codebuild.cloudformation.ProjectResource.ArtifactsProperty { + public toArtifactsJSON(): cloudformation.ProjectResource.ArtifactsProperty { return { type: 'S3', location: this.props.bucket.bucketName, diff --git a/packages/@aws-cdk/codebuild/lib/project.ts b/packages/@aws-cdk/codebuild/lib/project.ts index d2b4c37abc5b9..43e365e17f7d1 100644 --- a/packages/@aws-cdk/codebuild/lib/project.ts +++ b/packages/@aws-cdk/codebuild/lib/project.ts @@ -5,7 +5,7 @@ import { Role } from '@aws-cdk/iam'; import { EncryptionKeyRef } from '@aws-cdk/kms'; import { BucketRef } from '@aws-cdk/s3'; import { BuildArtifacts, CodePipelineBuildArtifacts, NoBuildArtifacts } from './artifacts'; -import * as codebuild from './codebuild.generated'; +import { cloudformation, ProjectArn } from './codebuild.generated'; import { BuildSource } from './source'; const CODEPIPELINE_TYPE = 'CODEPIPELINE'; @@ -55,7 +55,7 @@ export abstract class BuildProjectRef extends Construct implements IEventRuleTar } /** The ARN of this Project. */ - public abstract readonly projectArn: codebuild.ProjectArn; + public abstract readonly projectArn: ProjectArn; /** The human-visible name of this Project. */ public abstract readonly projectName: ProjectName; @@ -195,7 +195,7 @@ export abstract class BuildProjectRef extends Construct implements IEventRuleTar } class ImportedBuildProjectRef extends BuildProjectRef { - public readonly projectArn: codebuild.ProjectArn; + public readonly projectArn: ProjectArn; public readonly projectName: ProjectName; public readonly role?: Role = undefined; @@ -299,7 +299,7 @@ export class BuildProject extends BuildProjectRef { /** * The ARN of the project. */ - public readonly projectArn: codebuild.ProjectArn; + public readonly projectArn: ProjectArn; /** * The name of the project. @@ -315,7 +315,7 @@ export class BuildProject extends BuildProjectRef { const environment = this.renderEnvironment(props.environment, props.environmentVariables); - let cache: codebuild.cloudformation.ProjectResource.ProjectCacheProperty | undefined; + let cache: cloudformation.ProjectResource.ProjectCacheProperty | undefined; if (props.cacheBucket) { const cacheDir = props.cacheDir != null ? props.cacheDir : ''; cache = { @@ -341,7 +341,7 @@ export class BuildProject extends BuildProjectRef { this.validateCodePipelineSettings(source, artifacts); - const resource = new codebuild.cloudformation.ProjectResource(this, 'Resource', { + const resource = new cloudformation.ProjectResource(this, 'Resource', { description: props.description, source: sourceJson, artifacts: artifacts.toArtifactsJSON(), @@ -387,8 +387,8 @@ export class BuildProject extends BuildProjectRef { return p; } - private renderEnvironment(env: BuildEnvironment = {}, projectVars: { [name: string]: BuildEnvironmentVariable } = {}): - codebuild.cloudformation.ProjectResource.EnvironmentProperty { + private renderEnvironment(env: BuildEnvironment = {}, + projectVars: { [name: string]: BuildEnvironmentVariable } = {}): cloudformation.ProjectResource.EnvironmentProperty { const vars: { [name: string]: BuildEnvironmentVariable } = {}; const containerVars = env.environmentVariables || {}; diff --git a/packages/@aws-cdk/codebuild/lib/source.ts b/packages/@aws-cdk/codebuild/lib/source.ts index 74e8e892ee71a..946865d104fc6 100644 --- a/packages/@aws-cdk/codebuild/lib/source.ts +++ b/packages/@aws-cdk/codebuild/lib/source.ts @@ -1,7 +1,7 @@ import { Repository } from '@aws-cdk/codecommit'; import { FnConcat, PolicyStatement } from '@aws-cdk/core'; import { BucketRef } from '@aws-cdk/s3'; -import * as codebuild from './codebuild.generated'; +import { cloudformation } from './codebuild.generated'; import { BuildProject } from './project'; /** @@ -18,7 +18,7 @@ export abstract class BuildSource { return; } - public abstract toSourceJSON(): codebuild.cloudformation.ProjectResource.SourceProperty; + public abstract toSourceJSON(): cloudformation.ProjectResource.SourceProperty; } /** @@ -36,7 +36,7 @@ export class CodeCommitSource extends BuildSource { .addResource(this.repo.repositoryArn)); } - public toSourceJSON(): codebuild.cloudformation.ProjectResource.SourceProperty { + public toSourceJSON(): cloudformation.ProjectResource.SourceProperty { return { type: SourceType.CodeCommit, location: this.repo.repositoryCloneUrlHttp @@ -48,7 +48,7 @@ export class CodeCommitSource extends BuildSource { * CodePipeline Source definition for a CodeBuild project */ export class CodePipelineSource extends BuildSource { - public toSourceJSON(): codebuild.cloudformation.ProjectResource.SourceProperty { + public toSourceJSON(): cloudformation.ProjectResource.SourceProperty { return { type: SourceType.CodePipeline }; @@ -69,7 +69,7 @@ export class GitHubSource extends BuildSource { this.oauthToken = oauthToken; } - public toSourceJSON(): codebuild.cloudformation.ProjectResource.SourceProperty { + public toSourceJSON(): cloudformation.ProjectResource.SourceProperty { return { type: SourceType.GitHub, auth: this.oauthToken != null ? { type: 'OAUTH', resource: this.oauthToken } : undefined, @@ -87,7 +87,7 @@ export class GitHubEnterpriseSource extends BuildSource { this.cloneUrl = cloneUrl; } - public toSourceJSON(): codebuild.cloudformation.ProjectResource.SourceProperty { + public toSourceJSON(): cloudformation.ProjectResource.SourceProperty { return { type: SourceType.GitHubEnterPrise, location: this.cloneUrl, @@ -103,7 +103,7 @@ export class BitBucketSource extends BuildSource { super(); this.httpsCloneUrl = httpsCloneUrl; } - public toSourceJSON(): codebuild.cloudformation.ProjectResource.SourceProperty { + public toSourceJSON(): cloudformation.ProjectResource.SourceProperty { return { type: SourceType.BitBucket, location: this.httpsCloneUrl @@ -119,7 +119,7 @@ export class S3BucketSource extends BuildSource { super(); } - public toSourceJSON(): codebuild.cloudformation.ProjectResource.SourceProperty { + public toSourceJSON(): cloudformation.ProjectResource.SourceProperty { return { type: SourceType.S3, location: new FnConcat(this.bucket.bucketName, '/', this.path) diff --git a/packages/@aws-cdk/codecommit/lib/codecommit.ts b/packages/@aws-cdk/codecommit/lib/codecommit.ts index ff57e0ca478c6..efb80b1f6dc74 100644 --- a/packages/@aws-cdk/codecommit/lib/codecommit.ts +++ b/packages/@aws-cdk/codecommit/lib/codecommit.ts @@ -1,6 +1,6 @@ import { Arn, Construct, Output } from '@aws-cdk/core'; import { EventRule, EventRuleProps, IEventRuleTarget } from '@aws-cdk/events'; -import * as codecommit from './codecommit.generated'; +import { cloudformation, RepositoryArn, RepositoryName } from './codecommit.generated'; /** * Properties for the {@link RepositoryRef.import} method. @@ -10,7 +10,7 @@ export interface RepositoryRefProps { * The name of an existing CodeCommit Repository that we are referencing. * Must be in the same account and region as the root Stack. */ - repositoryName: codecommit.RepositoryName; + repositoryName: RepositoryName; } /** @@ -37,10 +37,10 @@ export abstract class RepositoryRef extends Construct { } /** The ARN of this Repository. */ - public abstract readonly repositoryArn: codecommit.RepositoryArn; + public abstract readonly repositoryArn: RepositoryArn; /** The human-visible name of this Repository. */ - public abstract readonly repositoryName: codecommit.RepositoryName; + public abstract readonly repositoryName: RepositoryName; /** * Exports this Repository. Allows the same Repository to be used in 2 different Stacks. @@ -151,8 +151,8 @@ export abstract class RepositoryRef extends Construct { } class ImportedRepositoryRef extends RepositoryRef { - public readonly repositoryArn: codecommit.RepositoryArn; - public readonly repositoryName: codecommit.RepositoryName; + public readonly repositoryArn: RepositoryArn; + public readonly repositoryName: RepositoryName; constructor(parent: Construct, name: string, props: RepositoryRefProps) { super(parent, name); @@ -182,13 +182,13 @@ export interface RepositoryProps { * Provides a CodeCommit Repository */ export class Repository extends RepositoryRef { - private readonly repository: codecommit.cloudformation.RepositoryResource; - private readonly triggers = new Array(); + private readonly repository: cloudformation.RepositoryResource; + private readonly triggers = new Array(); constructor(parent: Construct, name: string, props: RepositoryProps) { super(parent, name); - this.repository = new codecommit.cloudformation.RepositoryResource(this, 'Resource', { + this.repository = new cloudformation.RepositoryResource(this, 'Resource', { repositoryName: props.repositoryName, repositoryDescription: props.description, triggers: this.triggers diff --git a/packages/@aws-cdk/codepipeline/lib/actions.ts b/packages/@aws-cdk/codepipeline/lib/actions.ts index 16b3cb9014370..3381b4c939ad8 100644 --- a/packages/@aws-cdk/codepipeline/lib/actions.ts +++ b/packages/@aws-cdk/codepipeline/lib/actions.ts @@ -5,7 +5,7 @@ import { EventRule, EventRuleProps, IEventRuleTarget } from '@aws-cdk/events'; import { LambdaRef } from '@aws-cdk/lambda'; import { BucketRef } from '@aws-cdk/s3'; import { Artifact } from './artifact'; -import * as codepipeline from './codepipeline.generated'; +import { cloudformation } from './codepipeline.generated'; import { Stage } from './stage'; import * as validation from './validation'; import { validateArtifactBounds } from './validation'; @@ -154,7 +154,7 @@ export abstract class Action extends Construct { /** * Render the Action to a CloudFormation struct */ - public render(): codepipeline.cloudformation.PipelineResource.ActionDeclarationProperty { + public render(): cloudformation.PipelineResource.ActionDeclarationProperty { return { name: this.name, inputArtifacts: this.inputArtifacts.map(a => ({ name: a.name })), diff --git a/packages/@aws-cdk/codepipeline/lib/pipeline.ts b/packages/@aws-cdk/codepipeline/lib/pipeline.ts index 9a228930adb2d..ebea3cc9a2693 100644 --- a/packages/@aws-cdk/codepipeline/lib/pipeline.ts +++ b/packages/@aws-cdk/codepipeline/lib/pipeline.ts @@ -4,7 +4,7 @@ import * as iam from '@aws-cdk/iam'; import { Role } from '@aws-cdk/iam'; import { Bucket, BucketRef } from '@aws-cdk/s3'; import { flatMap, flatten } from '@aws-cdk/util'; -import * as codepipeline from './codepipeline.generated'; +import { cloudformation } from './codepipeline.generated'; import { Stage } from './stage'; import * as validation from './validation'; @@ -90,7 +90,7 @@ export class Pipeline extends Construct implements IEventRuleTarget { assumedBy: new ServicePrincipal('codepipeline.amazonaws.com') }); - const codePipeline = new codepipeline.cloudformation.PipelineResource(this, 'Resource', { + const codePipeline = new cloudformation.PipelineResource(this, 'Resource', { artifactStore: new Token(() => this.renderArtifactStore()) as any, stages: new Token(() => this.renderStages()) as any, roleArn: this.role.roleArn, @@ -226,8 +226,8 @@ export class Pipeline extends Construct implements IEventRuleTarget { return []; } - private renderArtifactStore(): codepipeline.cloudformation.PipelineResource.ArtifactStoreProperty { - let encryptionKey: codepipeline.cloudformation.PipelineResource.EncryptionKeyProperty | undefined; + private renderArtifactStore(): cloudformation.PipelineResource.ArtifactStoreProperty { + let encryptionKey: cloudformation.PipelineResource.EncryptionKeyProperty | undefined; const bucketKey = this.artifactBucket.encryptionKey; if (bucketKey) { encryptionKey = { @@ -248,7 +248,7 @@ export class Pipeline extends Construct implements IEventRuleTarget { }; } - private renderStages(): codepipeline.cloudformation.PipelineResource.StageDeclarationProperty[] { + private renderStages(): cloudformation.PipelineResource.StageDeclarationProperty[] { return this.stages.map(stage => stage.render()); } } diff --git a/packages/@aws-cdk/codepipeline/lib/stage.ts b/packages/@aws-cdk/codepipeline/lib/stage.ts index 86ac2fd1e2516..6e921901ba68b 100644 --- a/packages/@aws-cdk/codepipeline/lib/stage.ts +++ b/packages/@aws-cdk/codepipeline/lib/stage.ts @@ -1,7 +1,7 @@ import { Construct } from '@aws-cdk/core'; import { EventRule, EventRuleProps, IEventRuleTarget } from '@aws-cdk/events'; import { Action } from './actions'; -import * as codepipeline from './codepipeline.generated'; +import { cloudformation } from './codepipeline.generated'; import { Pipeline } from './pipeline'; import * as validation from './validation'; @@ -44,7 +44,7 @@ export class Stage extends Construct { return this.validateHasActions(); } - public render(): codepipeline.cloudformation.PipelineResource.StageDeclarationProperty { + public render(): cloudformation.PipelineResource.StageDeclarationProperty { return { name: this.name, actions: this._actions.map(action => action.render()) diff --git a/packages/@aws-cdk/dynamodb/lib/index.ts b/packages/@aws-cdk/dynamodb/lib/index.ts index 66713a82570f8..9497346f8da7d 100644 --- a/packages/@aws-cdk/dynamodb/lib/index.ts +++ b/packages/@aws-cdk/dynamodb/lib/index.ts @@ -1,5 +1,5 @@ import { Construct, Token } from '@aws-cdk/core'; -import * as dynamodb from './dynamodb.generated'; +import { cloudformation } from './dynamodb.generated'; // AWS::DynamoDB CloudFormation Resources: export * from './dynamodb.generated'; @@ -32,10 +32,10 @@ export interface TableProps { * Provides a DynamoDB table. */ export class Table extends Construct { - private readonly table: dynamodb.cloudformation.TableResource; + private readonly table: cloudformation.TableResource; - private readonly keySchema = new Array(); - private readonly attributeDefinitions = new Array(); + private readonly keySchema = new Array(); + private readonly attributeDefinitions = new Array(); constructor(parent: Construct, name: string, props: TableProps = {}) { super(parent, name); @@ -43,7 +43,7 @@ export class Table extends Construct { const readCapacityUnits = props.readCapacity || 5; const writeCapacityUnits = props.writeCapacity || 5; - this.table = new dynamodb.cloudformation.TableResource(this, 'Resource', { + this.table = new cloudformation.TableResource(this, 'Resource', { tableName: props.tableName, keySchema: this.keySchema, attributeDefinitions: this.attributeDefinitions, diff --git a/packages/@aws-cdk/ec2/lib/security-group.ts b/packages/@aws-cdk/ec2/lib/security-group.ts index 285931263be4c..cc82c5aaad575 100644 --- a/packages/@aws-cdk/ec2/lib/security-group.ts +++ b/packages/@aws-cdk/ec2/lib/security-group.ts @@ -1,6 +1,6 @@ import { Construct, Token } from '@aws-cdk/core'; import { IConnectionPeer, IPortRange } from './connection'; -import * as ec2 from './ec2.generated'; +import { cloudformation, SecurityGroupId, SecurityGroupVpcId } from './ec2.generated'; import { slugify } from './util'; import { VpcNetworkRef } from './vpc-ref'; @@ -8,14 +8,14 @@ export interface SecurityGroupRefProps { /** * ID of security group */ - securityGroupId: ec2.SecurityGroupId; + securityGroupId: SecurityGroupId; } /** * Basic interface for security groups */ export interface ISecurityGroup extends IConnectionPeer { - readonly securityGroupId: ec2.SecurityGroupId; + readonly securityGroupId: SecurityGroupId; readonly canInlineRule: boolean; addIngressRule(peer: IConnectionPeer, connection: IPortRange, description: string): void; @@ -26,7 +26,7 @@ export interface ISecurityGroup extends IConnectionPeer { * A SecurityGroup that is not created in this template */ export class SecurityGroupRef extends Construct implements ISecurityGroup { - public readonly securityGroupId: ec2.SecurityGroupId; + public readonly securityGroupId: SecurityGroupId; public readonly canInlineRule = false; constructor(parent: Construct, name: string, props: SecurityGroupRefProps) { @@ -36,7 +36,7 @@ export class SecurityGroupRef extends Construct implements ISecurityGroup { } public addIngressRule(peer: IConnectionPeer, connection: IPortRange, description: string) { - new ec2.cloudformation.SecurityGroupIngressResource(this, slugify(description), { + new cloudformation.SecurityGroupIngressResource(this, slugify(description), { groupId: this.securityGroupId, ...peer.toIngressRuleJSON(), ...connection.toRuleJSON(), @@ -45,7 +45,7 @@ export class SecurityGroupRef extends Construct implements ISecurityGroup { } public addEgressRule(peer: IConnectionPeer, connection: IPortRange, description: string) { - new ec2.cloudformation.SecurityGroupEgressResource(this, slugify(description), { + new cloudformation.SecurityGroupEgressResource(this, slugify(description), { groupId: this.securityGroupId, ...peer.toEgressRuleJSON(), ...connection.toRuleJSON(), @@ -104,18 +104,18 @@ export class SecurityGroup extends SecurityGroupRef { /** * An attribute that represents the physical VPC ID this security group is part of. */ - public readonly vpcId: ec2.SecurityGroupVpcId; + public readonly vpcId: SecurityGroupVpcId; - private readonly securityGroup: ec2.cloudformation.SecurityGroupResource; - private readonly directIngressRules: ec2.cloudformation.SecurityGroupResource.IngressProperty[] = []; - private readonly directEgressRules: ec2.cloudformation.SecurityGroupResource.EgressProperty[] = []; + private readonly securityGroup: cloudformation.SecurityGroupResource; + private readonly directIngressRules: cloudformation.SecurityGroupResource.IngressProperty[] = []; + private readonly directEgressRules: cloudformation.SecurityGroupResource.EgressProperty[] = []; constructor(parent: Construct, name: string, props: SecurityGroupProps) { super(parent, name, { securityGroupId: new Token(() => this.securityGroup.securityGroupId) }); const groupDescription = props.description || this.path; - this.securityGroup = new ec2.cloudformation.SecurityGroupResource(this, 'Resource', { + this.securityGroup = new cloudformation.SecurityGroupResource(this, 'Resource', { groupName: props.groupName, groupDescription, securityGroupIngress: new Token(() => this.directIngressRules), @@ -156,7 +156,7 @@ export class SecurityGroup extends SecurityGroupRef { /** * Add a direct ingress rule */ - private addDirectIngressRule(rule: ec2.cloudformation.SecurityGroupResource.IngressProperty) { + private addDirectIngressRule(rule: cloudformation.SecurityGroupResource.IngressProperty) { if (!this.hasIngressRule(rule)) { this.directIngressRules.push(rule); } @@ -165,14 +165,14 @@ export class SecurityGroup extends SecurityGroupRef { /** * Return whether the given ingress rule exists on the group */ - private hasIngressRule(rule: ec2.cloudformation.SecurityGroupResource.IngressProperty): boolean { + private hasIngressRule(rule: cloudformation.SecurityGroupResource.IngressProperty): boolean { return this.directIngressRules.findIndex(r => ingressRulesEqual(r, rule)) > -1; } /** * Add a direct egress rule */ - private addDirectEgressRule(rule: ec2.cloudformation.SecurityGroupResource.EgressProperty) { + private addDirectEgressRule(rule: cloudformation.SecurityGroupResource.EgressProperty) { if (!this.hasEgressRule(rule)) { this.directEgressRules.push(rule); } @@ -181,7 +181,7 @@ export class SecurityGroup extends SecurityGroupRef { /** * Return whether the given egress rule exists on the group */ - private hasEgressRule(rule: ec2.cloudformation.SecurityGroupResource.EgressProperty): boolean { + private hasEgressRule(rule: cloudformation.SecurityGroupResource.EgressProperty): boolean { return this.directEgressRules.findIndex(r => egressRulesEqual(r, rule)) > -1; } } @@ -232,7 +232,7 @@ export interface ConnectionRule { /** * Compare two ingress rules for equality the same way CloudFormation would (discarding description) */ -function ingressRulesEqual(a: ec2.cloudformation.SecurityGroupResource.IngressProperty, b: ec2.cloudformation.SecurityGroupResource.IngressProperty) { +function ingressRulesEqual(a: cloudformation.SecurityGroupResource.IngressProperty, b: cloudformation.SecurityGroupResource.IngressProperty) { return a.cidrIp === b.cidrIp && a.cidrIpv6 === b.cidrIpv6 && a.fromPort === b.fromPort @@ -246,7 +246,7 @@ function ingressRulesEqual(a: ec2.cloudformation.SecurityGroupResource.IngressPr /** * Compare two egress rules for equality the same way CloudFormation would (discarding description) */ -function egressRulesEqual(a: ec2.cloudformation.SecurityGroupResource.EgressProperty, b: ec2.cloudformation.SecurityGroupResource.EgressProperty) { +function egressRulesEqual(a: cloudformation.SecurityGroupResource.EgressProperty, b: cloudformation.SecurityGroupResource.EgressProperty) { return a.cidrIp === b.cidrIp && a.cidrIpv6 === b.cidrIpv6 && a.fromPort === b.fromPort diff --git a/packages/@aws-cdk/ec2/lib/vpc.ts b/packages/@aws-cdk/ec2/lib/vpc.ts index 38637c18ef6a9..7931a599e26ee 100644 --- a/packages/@aws-cdk/ec2/lib/vpc.ts +++ b/packages/@aws-cdk/ec2/lib/vpc.ts @@ -1,5 +1,5 @@ import { AvailabilityZoneProvider, Construct, Tag, Token } from '@aws-cdk/core'; -import * as ec2 from './ec2.generated'; +import { cloudformation } from './ec2.generated'; import { NetworkUtils } from './network-util'; import { VpcNetworkId, VpcNetworkRef, VpcSubnetId, VpcSubnetRef } from './vpc-ref'; /** @@ -145,7 +145,7 @@ export class VpcNetwork extends VpcNetworkRef { /** * The VPC resource */ - private resource: ec2.cloudformation.VPCResource; + private resource: cloudformation.VPCResource; /** * VpcNetwork creates a VPC that spans a whole region. @@ -169,7 +169,7 @@ export class VpcNetwork extends VpcNetworkRef { const outboundTraffic = props.outboundTraffic || OutboundTrafficMode.FromPublicAndPrivateSubnets; // Define a VPC using the provided CIDR range - this.resource = new ec2.cloudformation.VPCResource(this, 'Resource', { + this.resource = new cloudformation.VPCResource(this, 'Resource', { cidrBlock, enableDnsHostnames, enableDnsSupport, @@ -189,8 +189,8 @@ export class VpcNetwork extends VpcNetworkRef { // Create an Internet Gateway and attach it (if the outbound traffic mode != None) if (allowOutbound) { - const igw = new ec2.cloudformation.InternetGatewayResource(this, 'IGW'); - const att = new ec2.cloudformation.VPCGatewayAttachmentResource(this, 'VPCGW', { + const igw = new cloudformation.InternetGatewayResource(this, 'IGW'); + const att = new cloudformation.VPCGatewayAttachmentResource(this, 'VPCGW', { internetGatewayId: igw.ref, vpcId: this.resource.ref }); @@ -298,20 +298,20 @@ export class VpcSubnet extends VpcSubnetRef { constructor(parent: Construct, name: string, props: VpcSubnetProps) { super(parent, name); this.availabilityZone = props.availabilityZone; - const subnet = new ec2.cloudformation.SubnetResource(this, 'Subnet', { + const subnet = new cloudformation.SubnetResource(this, 'Subnet', { vpcId: props.vpcId, cidrBlock: props.cidrBlock, availabilityZone: props.availabilityZone, mapPublicIpOnLaunch: props.mapPublicIpOnLaunch, }); this.subnetId = subnet.ref; - const table = new ec2.cloudformation.RouteTableResource(this, 'RouteTable', { + const table = new cloudformation.RouteTableResource(this, 'RouteTable', { vpcId: props.vpcId, }); this.routeTableId = table.ref; // Associate the public route table for this subnet, to this subnet - const routeAssoc = new ec2.cloudformation.SubnetRouteTableAssociationResource(this, 'RouteTableAssociatioin', { + const routeAssoc = new cloudformation.SubnetRouteTableAssociationResource(this, 'RouteTableAssociatioin', { subnetId: this.subnetId, routeTableId: table.ref }); @@ -320,7 +320,7 @@ export class VpcSubnet extends VpcSubnetRef { } protected addDefaultRouteToNAT(natGatewayId: Token) { - new ec2.cloudformation.RouteResource(this, `DefaultRoute`, { + new cloudformation.RouteResource(this, `DefaultRoute`, { routeTableId: this.routeTableId, destinationCidrBlock: '0.0.0.0/0', natGatewayId @@ -328,7 +328,7 @@ export class VpcSubnet extends VpcSubnetRef { } protected addDefaultRouteToIGW(gatewayId: Token) { - new ec2.cloudformation.RouteResource(this, `DefaultRoute`, { + new cloudformation.RouteResource(this, `DefaultRoute`, { routeTableId: this.routeTableId, destinationCidrBlock: '0.0.0.0/0', gatewayId @@ -358,9 +358,9 @@ export class VpcPublicSubnet extends VpcSubnet { */ public addNatGateway() { // Create a NAT Gateway in this public subnet - const ngw = new ec2.cloudformation.NatGatewayResource(this, `NATGateway`, { + const ngw = new cloudformation.NatGatewayResource(this, `NATGateway`, { subnetId: this.subnetId, - allocationId: new ec2.cloudformation.EIPResource(this, `EIP`, { + allocationId: new cloudformation.EIPResource(this, `EIP`, { domain: 'vpc' }).eipAllocationId }); diff --git a/packages/@aws-cdk/events/lib/rule-ref.ts b/packages/@aws-cdk/events/lib/rule-ref.ts index 65d1c2207af01..2ef9efb972d9d 100644 --- a/packages/@aws-cdk/events/lib/rule-ref.ts +++ b/packages/@aws-cdk/events/lib/rule-ref.ts @@ -1,12 +1,12 @@ import { Construct, Output } from '@aws-cdk/core'; -import * as events from './events.generated'; +import { RuleArn } from './events.generated'; export interface EventRuleRefProps { /** * The value of the event rule Amazon Resource Name (ARN), such as * arn:aws:events:us-east-2:123456789012:rule/example. */ - eventRuleArn: events.RuleArn; + eventRuleArn: RuleArn; } export abstract class EventRuleRef extends Construct { @@ -22,7 +22,7 @@ export abstract class EventRuleRef extends Construct { * The value of the event rule Amazon Resource Name (ARN), such as * arn:aws:events:us-east-2:123456789012:rule/example. */ - public abstract readonly ruleArn: events.RuleArn; + public abstract readonly ruleArn: RuleArn; /** * Exports this rule resource from this stack and returns an import token. @@ -35,7 +35,7 @@ export abstract class EventRuleRef extends Construct { } class ImportedEventRule extends EventRuleRef { - public readonly ruleArn: events.RuleArn; + public readonly ruleArn: RuleArn; constructor(parent: Construct, name: string, props: EventRuleRefProps) { super(parent, name); diff --git a/packages/@aws-cdk/events/lib/rule.ts b/packages/@aws-cdk/events/lib/rule.ts index c9e015bc09ff3..54ff85554a634 100644 --- a/packages/@aws-cdk/events/lib/rule.ts +++ b/packages/@aws-cdk/events/lib/rule.ts @@ -1,6 +1,6 @@ import { Construct, FnConcat, Token } from '@aws-cdk/core'; import { EventPattern } from './event-pattern'; -import * as events from './events.generated'; +import { cloudformation, RuleArn } from './events.generated'; import { TargetInputTemplate } from './input-options'; import { EventRuleRef } from './rule-ref'; import { IEventRuleTarget } from './target'; @@ -64,16 +64,16 @@ export interface EventRuleProps { * Defines a CloudWatch Event Rule in this stack. */ export class EventRule extends EventRuleRef { - public ruleArn: events.RuleArn; + public ruleArn: RuleArn; - private readonly targets = new Array(); + private readonly targets = new Array(); private readonly eventPattern: EventPattern = { }; private scheduleExpression?: string; constructor(parent: Construct, name: string, props: EventRuleProps = { }) { super(parent, name); - const resource = new events.cloudformation.RuleResource(this, 'Resource', { + const resource = new cloudformation.RuleResource(this, 'Resource', { description: props.description, state: props.enabled == null ? 'ENABLED' : (props.enabled ? 'ENABLED' : 'DISABLED'), scheduleExpression: new Token(() => this.scheduleExpression), @@ -110,7 +110,7 @@ export class EventRule extends EventRuleRef { inputTransformer: renderTransformer(), }); - function renderTransformer(): events.cloudformation.RuleResource.InputTransformerProperty | undefined { + function renderTransformer(): cloudformation.RuleResource.InputTransformerProperty | undefined { if (!inputOptions) { return undefined; } diff --git a/packages/@aws-cdk/events/lib/target.ts b/packages/@aws-cdk/events/lib/target.ts index 388eee2ccb062..44f8ad76080cf 100644 --- a/packages/@aws-cdk/events/lib/target.ts +++ b/packages/@aws-cdk/events/lib/target.ts @@ -1,6 +1,6 @@ import { Arn } from '@aws-cdk/core'; import * as iam from '@aws-cdk/iam'; -import * as events from './events.generated'; +import { cloudformation } from './events.generated'; export interface EventRuleTarget { /** @@ -27,20 +27,20 @@ export interface EventRuleTarget { * The Amazon ECS task definition and task count to use, if the event target * is an Amazon ECS task. */ - ecsParameters?: events.cloudformation.RuleResource.EcsParametersProperty; + ecsParameters?: cloudformation.RuleResource.EcsParametersProperty; /** * Settings that control shard assignment, when the target is a Kinesis * stream. If you don't include this parameter, eventId is used as the * partition key. */ - kinesisParameters?: events.cloudformation.RuleResource.KinesisParametersProperty; + kinesisParameters?: cloudformation.RuleResource.KinesisParametersProperty; /** * Parameters used when the rule invokes Amazon EC2 Systems Manager Run * Command. */ - runCommandParameters?: events.cloudformation.RuleResource.RunCommandParametersProperty; + runCommandParameters?: cloudformation.RuleResource.RunCommandParametersProperty; } /** diff --git a/packages/@aws-cdk/iam/lib/group.ts b/packages/@aws-cdk/iam/lib/group.ts index 73c563535caf7..5e6b31b43a053 100644 --- a/packages/@aws-cdk/iam/lib/group.ts +++ b/packages/@aws-cdk/iam/lib/group.ts @@ -1,5 +1,5 @@ import { ArnPrincipal, Construct, PolicyPrincipal, PolicyStatement, Token } from '@aws-cdk/core'; -import * as iam from './iam.generated'; +import { cloudformation, GroupArn } from './iam.generated'; import { IIdentityResource, Policy } from './policy'; import { User } from './user'; import { AttachedPolicies, undefinedIfEmpty } from './util'; @@ -42,7 +42,7 @@ export class Group extends Construct implements IIdentityResource { /** * The ARN of this group. */ - public readonly groupArn: iam.GroupArn; + public readonly groupArn: GroupArn; /** * An "AWS" policy principal that represents this group. @@ -58,7 +58,7 @@ export class Group extends Construct implements IIdentityResource { this.managedPolicies = props.managedPolicyArns || []; - const group = new iam.cloudformation.GroupResource(this, 'Resource', { + const group = new cloudformation.GroupResource(this, 'Resource', { groupName: props.groupName, managedPolicyArns: undefinedIfEmpty(() => this.managedPolicies), path: props.path, diff --git a/packages/@aws-cdk/iam/lib/policy.ts b/packages/@aws-cdk/iam/lib/policy.ts index 9d3c0a2b6d2a4..205cef2d56d51 100644 --- a/packages/@aws-cdk/iam/lib/policy.ts +++ b/packages/@aws-cdk/iam/lib/policy.ts @@ -1,6 +1,6 @@ import { Construct, IDependable, PolicyDocument, PolicyPrincipal, PolicyStatement, Token } from '@aws-cdk/core'; import { Group } from './group'; -import * as iam from './iam.generated'; +import { cloudformation } from './iam.generated'; import { Role } from './role'; import { User } from './user'; import { generatePolicyName, undefinedIfEmpty } from './util'; @@ -96,7 +96,7 @@ export class Policy extends Construct implements IDependable { constructor(parent: Construct, name: string, props: PolicyProps = {}) { super(parent, name); - const resource = new iam.cloudformation.PolicyResource(this, 'Resource', { + const resource = new cloudformation.PolicyResource(this, 'Resource', { policyDocument: this.document, policyName: new Token(() => this.policyName), roles: undefinedIfEmpty(() => this.roles.map(r => r.roleName)), diff --git a/packages/@aws-cdk/iam/lib/role.ts b/packages/@aws-cdk/iam/lib/role.ts index cddf09dc53b9b..c22d85a2d1992 100644 --- a/packages/@aws-cdk/iam/lib/role.ts +++ b/packages/@aws-cdk/iam/lib/role.ts @@ -1,5 +1,5 @@ import { ArnPrincipal, Construct, IDependable, PolicyDocument, PolicyPrincipal, PolicyStatement, Token } from '@aws-cdk/core'; -import * as iam from './iam.generated'; +import { cloudformation, RoleArn } from './iam.generated'; import { IIdentityResource, Policy } from './policy'; import { AttachedPolicies, undefinedIfEmpty } from './util'; @@ -58,7 +58,7 @@ export class Role extends Construct implements IIdentityResource, IDependable { /** * Returns the ARN of this role. */ - public readonly roleArn: iam.RoleArn; + public readonly roleArn: RoleArn; /** * Returns the name of the role. @@ -85,7 +85,7 @@ export class Role extends Construct implements IIdentityResource, IDependable { this.assumeRolePolicy = createAssumeRolePolicy(props.assumedBy); this.managedPolicies = props.managedPolicyArns || [ ]; - const role = new iam.cloudformation.RoleResource(this, 'Resource', { + const role = new cloudformation.RoleResource(this, 'Resource', { assumeRolePolicyDocument: this.assumeRolePolicy as any, managedPolicyArns: undefinedIfEmpty(() => this.managedPolicies), path: props.path, diff --git a/packages/@aws-cdk/iam/lib/user.ts b/packages/@aws-cdk/iam/lib/user.ts index 933b92fe1ff94..715b95a3cb2cc 100644 --- a/packages/@aws-cdk/iam/lib/user.ts +++ b/packages/@aws-cdk/iam/lib/user.ts @@ -1,6 +1,6 @@ import { ArnPrincipal, Construct, PolicyPrincipal, PolicyStatement, Token } from '@aws-cdk/core'; import { Group } from './group'; -import * as iam from './iam.generated'; +import { cloudformation, UserArn } from './iam.generated'; import { IIdentityResource, Policy } from './policy'; import { AttachedPolicies, undefinedIfEmpty } from './util'; @@ -71,7 +71,7 @@ export class User extends Construct implements IIdentityResource { /** * An attribute that represents the user's ARN. */ - public readonly userArn: iam.UserArn; + public readonly userArn: UserArn; /** * Returns the ARN of this user. @@ -86,7 +86,7 @@ export class User extends Construct implements IIdentityResource { constructor(parent: Construct, name: string, props: UserProps = {}) { super(parent, name); - const user = new iam.cloudformation.UserResource(this, 'Resource', { + const user = new cloudformation.UserResource(this, 'Resource', { userName: props.userName, groups: undefinedIfEmpty(() => this.groups), managedPolicyArns: undefinedIfEmpty(() => this.managedPolicies), @@ -138,7 +138,7 @@ export class User extends Construct implements IIdentityResource { this.defaultPolicy.addStatement(statement); } - private parseLoginProfile(props: UserProps): iam.cloudformation.UserResource.LoginProfileProperty | undefined { + private parseLoginProfile(props: UserProps): cloudformation.UserResource.LoginProfileProperty | undefined { if (props.password) { return { password: props.password, diff --git a/packages/@aws-cdk/kinesis/lib/stream.ts b/packages/@aws-cdk/kinesis/lib/stream.ts index a72acda5f8848..e3c4e542abe7a 100644 --- a/packages/@aws-cdk/kinesis/lib/stream.ts +++ b/packages/@aws-cdk/kinesis/lib/stream.ts @@ -1,7 +1,7 @@ import { Construct, Output, PolicyStatement, Token } from '@aws-cdk/core'; import { IIdentityResource } from '@aws-cdk/iam'; import * as kms from '@aws-cdk/kms'; -import * as kinesis from './kinesis.generated'; +import { cloudformation, StreamArn } from './kinesis.generated'; /** * A reference to a stream. The easiest way to instantiate is to call @@ -12,7 +12,7 @@ export interface StreamRefProps { /** * The ARN of the stream. */ - streamArn: kinesis.StreamArn; + streamArn: StreamArn; /** * The KMS key securing the contents of the stream if encryption is enabled. @@ -53,7 +53,7 @@ export abstract class StreamRef extends Construct { /** * The ARN of the stream. */ - public abstract readonly streamArn: kinesis.StreamArn; + public abstract readonly streamArn: StreamArn; /** * Optional KMS encryption key associated with this stream. @@ -217,11 +217,11 @@ export interface StreamProps { * A Kinesis stream. Can be encrypted with a KMS key. */ export class Stream extends StreamRef { - public readonly streamArn: kinesis.StreamArn; + public readonly streamArn: StreamArn; public readonly streamName: StreamName; public readonly encryptionKey?: kms.EncryptionKeyRef; - private readonly stream: kinesis.cloudformation.StreamResource; + private readonly stream: cloudformation.StreamResource; constructor(parent: Construct, name: string, props: StreamProps = {}) { super(parent, name); @@ -234,7 +234,7 @@ export class Stream extends StreamRef { const { streamEncryption, encryptionKey } = this.parseEncryption(props); - this.stream = new kinesis.cloudformation.StreamResource(this, "Resource", { + this.stream = new cloudformation.StreamResource(this, "Resource", { streamName: props.streamName, retentionPeriodHours, shardCount, @@ -252,7 +252,7 @@ export class Stream extends StreamRef { * user's configuration. */ private parseEncryption(props: StreamProps): { - streamEncryption?: kinesis.cloudformation.StreamResource.StreamEncryptionProperty, + streamEncryption?: cloudformation.StreamResource.StreamEncryptionProperty, encryptionKey?: kms.EncryptionKeyRef } { @@ -273,7 +273,7 @@ export class Stream extends StreamRef { description: `Created by ${this.path}` }); - const streamEncryption: kinesis.cloudformation.StreamResource.StreamEncryptionProperty = { + const streamEncryption: cloudformation.StreamResource.StreamEncryptionProperty = { encryptionType: 'KMS', keyId: encryptionKey.keyArn }; @@ -306,7 +306,7 @@ export enum StreamEncryption { export class StreamName extends Token {} class ImportedStreamRef extends StreamRef { - public readonly streamArn: kinesis.StreamArn; + public readonly streamArn: StreamArn; public readonly encryptionKey?: kms.EncryptionKeyRef; constructor(parent: Construct, name: string, props: StreamRefProps) { diff --git a/packages/@aws-cdk/kms/lib/alias.ts b/packages/@aws-cdk/kms/lib/alias.ts index 3b401aff30a21..529d224a3cc52 100644 --- a/packages/@aws-cdk/kms/lib/alias.ts +++ b/packages/@aws-cdk/kms/lib/alias.ts @@ -1,6 +1,6 @@ import { Construct, Token } from '@aws-cdk/core'; import { EncryptionKeyRef } from './key'; -import * as kms from './kms.generated'; +import { cloudformation } from './kms.generated'; const REQUIRED_ALIAS_PREFIX = 'alias/'; const DISALLOWED_PREFIX = REQUIRED_ALIAS_PREFIX + 'AWS'; @@ -51,7 +51,7 @@ export class EncryptionKeyAlias extends Construct { throw new Error(`Alias cannot start with ${DISALLOWED_PREFIX}: ${props.alias}`); } - const resource = new kms.cloudformation.AliasResource(this, 'Resource', { + const resource = new cloudformation.AliasResource(this, 'Resource', { aliasName: props.alias, targetKeyId: props.key.keyArn }); diff --git a/packages/@aws-cdk/kms/lib/key.ts b/packages/@aws-cdk/kms/lib/key.ts index c452d5f3cfc81..c67228581b745 100644 --- a/packages/@aws-cdk/kms/lib/key.ts +++ b/packages/@aws-cdk/kms/lib/key.ts @@ -1,12 +1,12 @@ import { Construct, DeletionPolicy, Output, PolicyDocument, PolicyStatement } from '@aws-cdk/core'; import { EncryptionKeyAlias } from './alias'; -import * as kms from './kms.generated'; +import { cloudformation, KeyArn } from './kms.generated'; export interface EncryptionKeyRefProps { /** * The ARN of the external KMS key. */ - keyArn: kms.KeyArn; + keyArn: KeyArn; } export abstract class EncryptionKeyRef extends Construct { @@ -35,7 +35,7 @@ export abstract class EncryptionKeyRef extends Construct { /** * The ARN of the key. */ - public abstract readonly keyArn: kms.KeyArn; + public abstract readonly keyArn: KeyArn; /** * Optional policy document that represents the resource policy of this key. @@ -109,7 +109,7 @@ export interface EncryptionKeyProps { * Definews a KMS key. */ export class EncryptionKey extends EncryptionKeyRef { - public readonly keyArn: kms.KeyArn; + public readonly keyArn: KeyArn; protected readonly policy?: PolicyDocument; constructor(parent: Construct, name: string, props: EncryptionKeyProps = {}) { @@ -122,7 +122,7 @@ export class EncryptionKey extends EncryptionKeyRef { this.allowAccountToAdmin(); } - const resource = new kms.cloudformation.KeyResource(this, 'Resource', { + const resource = new cloudformation.KeyResource(this, 'Resource', { description: props.description, enableKeyRotation: props.enableKeyRotation, enabled: props.enabled, @@ -161,7 +161,7 @@ export class EncryptionKey extends EncryptionKeyRef { } class EncryptionKeyRefImport extends EncryptionKeyRef { - public readonly keyArn: kms.KeyArn; + public readonly keyArn: KeyArn; protected readonly policy = undefined; // no policy associated with an imported key constructor(parent: Construct, name: string, props: EncryptionKeyRefProps) { diff --git a/packages/@aws-cdk/lambda/lib/alias.ts b/packages/@aws-cdk/lambda/lib/alias.ts index d1fac570c0655..d6581fa22d97d 100644 --- a/packages/@aws-cdk/lambda/lib/alias.ts +++ b/packages/@aws-cdk/lambda/lib/alias.ts @@ -2,7 +2,7 @@ import { Construct } from '@aws-cdk/core'; import { Role } from '@aws-cdk/iam'; import { FunctionName, LambdaRef } from './lambda-ref'; import { LambdaVersion } from './lambda-version'; -import * as lambda from './lambda.generated'; +import { cloudformation, FunctionArn } from './lambda.generated'; import { LambdaPermission } from './permission'; /** @@ -66,7 +66,7 @@ export class Alias extends LambdaRef { * Used to be able to use Alias in place of a regular Lambda. Lambda accepts * ARNs everywhere it accepts function names. */ - public readonly functionArn: lambda.FunctionArn; + public readonly functionArn: FunctionArn; /** * Role associated with this alias @@ -85,7 +85,7 @@ export class Alias extends LambdaRef { this.underlyingLambda = props.version.lambda; - const alias = new lambda.cloudformation.AliasResource(this, 'Resource', { + const alias = new cloudformation.AliasResource(this, 'Resource', { aliasName: props.aliasName, description: props.description, functionName: this.underlyingLambda.functionName, diff --git a/packages/@aws-cdk/lambda/lib/code.ts b/packages/@aws-cdk/lambda/lib/code.ts index 43ad0e272e66b..5cca73fdf4f8d 100644 --- a/packages/@aws-cdk/lambda/lib/code.ts +++ b/packages/@aws-cdk/lambda/lib/code.ts @@ -1,9 +1,9 @@ import { BucketName, BucketRef } from '@aws-cdk/s3'; -import * as lambda from './lambda.generated'; +import { cloudformation } from './lambda.generated'; import { LambdaRuntime } from './runtime'; export abstract class LambdaCode { - public abstract toJSON(runtime: LambdaRuntime): lambda.cloudformation.FunctionResource.CodeProperty; + public abstract toJSON(runtime: LambdaRuntime): cloudformation.FunctionResource.CodeProperty; } export class LambdaS3Code extends LambdaCode { @@ -19,7 +19,7 @@ export class LambdaS3Code extends LambdaCode { this.bucketName = bucket.bucketName; } - public toJSON(_runtime: LambdaRuntime): lambda.cloudformation.FunctionResource.CodeProperty { + public toJSON(_runtime: LambdaRuntime): cloudformation.FunctionResource.CodeProperty { return { s3Bucket: this.bucketName, s3Key: this.key, @@ -37,7 +37,7 @@ export class LambdaInlineCode extends LambdaCode { } } - public toJSON(runtime: LambdaRuntime): lambda.cloudformation.FunctionResource.CodeProperty { + public toJSON(runtime: LambdaRuntime): cloudformation.FunctionResource.CodeProperty { if (!runtime.supportsInlineCode) { throw new Error(`Inline source not supported for: ${runtime.name}`); } diff --git a/packages/@aws-cdk/lambda/lib/lambda-ref.ts b/packages/@aws-cdk/lambda/lib/lambda-ref.ts index eb68c49eb45f0..737953f6921e0 100644 --- a/packages/@aws-cdk/lambda/lib/lambda-ref.ts +++ b/packages/@aws-cdk/lambda/lib/lambda-ref.ts @@ -3,7 +3,7 @@ import { AccountPrincipal, Arn, Construct, FnSelect, FnSplit, PolicyPrincipal, PolicyStatement, resolve, ServicePrincipal, Token } from '@aws-cdk/core'; import { EventRuleTarget, IEventRuleTarget } from '@aws-cdk/events'; import { Role } from '@aws-cdk/iam'; -import * as lambda from './lambda.generated'; +import { cloudformation, FunctionArn } from './lambda.generated'; import { LambdaPermission } from './permission'; /** @@ -14,7 +14,7 @@ export interface LambdaRefProps { * The ARN of the Lambda function. * Format: arn::lambda:::function: */ - functionArn: lambda.FunctionArn; + functionArn: FunctionArn; /** * The IAM execution role associated with this function. @@ -93,7 +93,7 @@ export abstract class LambdaRef extends Construct implements IEventRuleTarget { /** * The ARN fo the function. */ - public abstract readonly functionArn: lambda.FunctionArn; + public abstract readonly functionArn: FunctionArn; /** * The IAM role associated with this function. @@ -126,7 +126,7 @@ export abstract class LambdaRef extends Construct implements IEventRuleTarget { const principal = this.parsePermissionPrincipal(permission.principal); const action = permission.action || 'lambda:InvokeFunction'; - new lambda.cloudformation.PermissionResource(this, name, { + new cloudformation.PermissionResource(this, name, { action, principal, functionName: this.functionName, @@ -234,7 +234,7 @@ export abstract class LambdaRef extends Construct implements IEventRuleTarget { class LambdaRefImport extends LambdaRef { public readonly functionName: FunctionName; - public readonly functionArn: lambda.FunctionArn; + public readonly functionArn: FunctionArn; public readonly role?: Role; protected readonly canCreatePermissions = false; diff --git a/packages/@aws-cdk/lambda/lib/lambda-version.ts b/packages/@aws-cdk/lambda/lib/lambda-version.ts index d5638998a47af..0807bb4380814 100644 --- a/packages/@aws-cdk/lambda/lib/lambda-version.ts +++ b/packages/@aws-cdk/lambda/lib/lambda-version.ts @@ -1,6 +1,6 @@ import { Construct } from '@aws-cdk/core'; import { LambdaRef } from './lambda-ref'; -import * as lambda from './lambda.generated'; +import { cloudformation, Version } from './lambda.generated'; /** * Properties for a new Lambda version @@ -48,7 +48,7 @@ export class LambdaVersion extends Construct { /** * The most recently deployed version of this function. */ - public readonly functionVersion: lambda.Version; + public readonly functionVersion: Version; /** * Lambda object this version is associated with @@ -58,7 +58,7 @@ export class LambdaVersion extends Construct { constructor(parent: Construct, name: string, props: LambdaVersionProps) { super(parent, name); - const version = new lambda.cloudformation.VersionResource(this, 'Resource', { + const version = new cloudformation.VersionResource(this, 'Resource', { codeSha256: props.codeSha256, description: props.description, functionName: props.lambda.functionName diff --git a/packages/@aws-cdk/lambda/lib/lambda.ts b/packages/@aws-cdk/lambda/lib/lambda.ts index 2d4ec53483526..454c4b7685997 100644 --- a/packages/@aws-cdk/lambda/lib/lambda.ts +++ b/packages/@aws-cdk/lambda/lib/lambda.ts @@ -3,7 +3,7 @@ import { Role } from '@aws-cdk/iam'; import { LambdaCode } from './code'; import { FunctionName, LambdaRef } from './lambda-ref'; import { LambdaVersion } from './lambda-version'; -import * as lambda from './lambda.generated'; +import { cloudformation, FunctionArn } from './lambda.generated'; import { LambdaRuntime } from './runtime'; export interface LambdaProps { @@ -99,7 +99,7 @@ export class Lambda extends LambdaRef { /** * ARN of this function */ - public readonly functionArn: lambda.FunctionArn; + public readonly functionArn: FunctionArn; /** * Execution role associated with this function @@ -134,7 +134,7 @@ export class Lambda extends LambdaRef { this.role.addToPolicy(statement); } - const resource = new lambda.cloudformation.FunctionResource(this, 'Resource', { + const resource = new cloudformation.FunctionResource(this, 'Resource', { functionName: props.functionName, description: props.description, code: props.code.toJSON(props.runtime), diff --git a/packages/@aws-cdk/rds/lib/cluster-ref.ts b/packages/@aws-cdk/rds/lib/cluster-ref.ts index 78029c8d64ffe..315c17f93b6d8 100644 --- a/packages/@aws-cdk/rds/lib/cluster-ref.ts +++ b/packages/@aws-cdk/rds/lib/cluster-ref.ts @@ -1,6 +1,6 @@ import { Construct, FnJoin, Output, StringListOutput, Token } from '@aws-cdk/core'; import { DefaultConnections, IDefaultConnectable, IPortRange, SecurityGroupId, SecurityGroupRef, TcpPortFromAttribute } from '@aws-cdk/ec2'; -import * as rds from './rds.generated'; +import { DBClusterEndpointAddress } from './rds.generated'; /** * Create a clustered database with a given number of instances. @@ -97,17 +97,17 @@ export interface DatabaseClusterRefProps { /** * Cluster endpoint address */ - clusterEndpointAddress: rds.DBClusterEndpointAddress; + clusterEndpointAddress: DBClusterEndpointAddress; /** * Reader endpoint address */ - readerEndpointAddress: rds.DBClusterEndpointAddress; + readerEndpointAddress: DBClusterEndpointAddress; /** * Endpoint addresses of individual instances */ - instanceEndpointAddresses: rds.DBClusterEndpointAddress[]; + instanceEndpointAddresses: DBClusterEndpointAddress[]; } /** @@ -196,7 +196,7 @@ export class Endpoint { /** * The hostname of the endpoint */ - public readonly hostname: rds.DBClusterEndpointAddress; + public readonly hostname: DBClusterEndpointAddress; /** * The port of the endpoint @@ -208,7 +208,7 @@ export class Endpoint { */ public readonly socketAddress: SocketAddress; - constructor(address: rds.DBClusterEndpointAddress, port: Port) { + constructor(address: DBClusterEndpointAddress, port: Port) { this.hostname = address; this.port = port; this.socketAddress = new FnJoin(":", address, port); diff --git a/packages/@aws-cdk/rds/lib/cluster.ts b/packages/@aws-cdk/rds/lib/cluster.ts index 6fb331f6abda8..1c7a589d7e535 100644 --- a/packages/@aws-cdk/rds/lib/cluster.ts +++ b/packages/@aws-cdk/rds/lib/cluster.ts @@ -4,7 +4,7 @@ import { DefaultConnections, InstanceType, IPortRange, SecurityGroup, TcpPortFro import { KeyArn } from '@aws-cdk/kms'; import { ClusterIdentifier, DatabaseClusterRef, Endpoint, InstanceIdentifier } from './cluster-ref'; import { BackupProps, DatabaseClusterEngine, InstanceProps, Login, Parameters } from './props'; -import * as rds from './rds.generated'; +import { cloudformation } from './rds.generated'; /** * Properties for a new database cluster @@ -143,7 +143,7 @@ export class DatabaseCluster extends DatabaseClusterRef { throw new Error(`Cluster requires at least 2 subnets, got ${subnets.length}`); } - const subnetGroup = new rds.cloudformation.DBSubnetGroupResource(this, 'Subnets', { + const subnetGroup = new cloudformation.DBSubnetGroupResource(this, 'Subnets', { dbSubnetGroupDescription: `Subnets for ${name} database`, subnetIds: subnets.map(s => s.subnetId) }); @@ -154,7 +154,7 @@ export class DatabaseCluster extends DatabaseClusterRef { }); this.securityGroupId = securityGroup.securityGroupId; - const cluster = new rds.cloudformation.DBClusterResource(this, 'Resource', { + const cluster = new cloudformation.DBClusterResource(this, 'Resource', { // Basic engine: props.engine, dbClusterIdentifier: props.clusterIdentifier, @@ -191,7 +191,7 @@ export class DatabaseCluster extends DatabaseClusterRef { const publiclyAccessible = props.instanceProps.vpcPlacement && props.instanceProps.vpcPlacement.usePublicSubnets; - const instance = new rds.cloudformation.DBInstanceResource(this, `Instance${instanceIndex}`, { + const instance = new cloudformation.DBInstanceResource(this, `Instance${instanceIndex}`, { // Link to cluster engine: props.engine, dbClusterIdentifier: cluster.ref, diff --git a/packages/@aws-cdk/route53/lib/hosted-zone.ts b/packages/@aws-cdk/route53/lib/hosted-zone.ts index ac5c92c7d4134..9c556ca1f74af 100644 --- a/packages/@aws-cdk/route53/lib/hosted-zone.ts +++ b/packages/@aws-cdk/route53/lib/hosted-zone.ts @@ -2,7 +2,7 @@ import { AwsRegion, Construct, Token } from '@aws-cdk/core'; import { VpcNetworkRef } from '@aws-cdk/ec2'; import { LogGroupArn } from '@aws-cdk/logs'; import { HostedZoneId, HostedZoneRef } from './hosted-zone-ref'; -import * as route53 from './route53.generated'; +import { cloudformation, HostedZoneNameServers } from './route53.generated'; import { validateZoneName } from './util'; /** @@ -46,14 +46,14 @@ export class PublicHostedZone extends HostedZoneRef { /** * Nameservers for this public hosted zone */ - public readonly nameServers: route53.HostedZoneNameServers; + public readonly nameServers: HostedZoneNameServers; constructor(parent: Construct, name: string, props: PublicHostedZoneProps) { super(parent, name); validateZoneName(props.zoneName); - const hostedZone = new route53.cloudformation.HostedZoneResource(this, 'Resource', { + const hostedZone = new cloudformation.HostedZoneResource(this, 'Resource', { ...determineHostedZoneProps(props) }); @@ -93,14 +93,14 @@ export class PrivateHostedZone extends HostedZoneRef { /** * VPCs to which this hosted zone will be added */ - private readonly vpcs: route53.cloudformation.HostedZoneResource.VPCProperty[] = []; + private readonly vpcs: cloudformation.HostedZoneResource.VPCProperty[] = []; constructor(parent: Construct, name: string, props: PrivateHostedZoneProps) { super(parent, name); validateZoneName(props.zoneName); - const hostedZone = new route53.cloudformation.HostedZoneResource(this, 'Resource', { + const hostedZone = new cloudformation.HostedZoneResource(this, 'Resource', { vpcs: new Token(() => this.vpcs ? this.vpcs : undefined), ...determineHostedZoneProps(props) }); @@ -121,7 +121,7 @@ export class PrivateHostedZone extends HostedZoneRef { } } -function toVpcProperty(vpc: VpcNetworkRef): route53.cloudformation.HostedZoneResource.VPCProperty { +function toVpcProperty(vpc: VpcNetworkRef): cloudformation.HostedZoneResource.VPCProperty { return { vpcId: vpc.vpcId, vpcRegion: new AwsRegion() }; } diff --git a/packages/@aws-cdk/route53/lib/records/txt.ts b/packages/@aws-cdk/route53/lib/records/txt.ts index dc35d9a29008b..3df49e46da08e 100644 --- a/packages/@aws-cdk/route53/lib/records/txt.ts +++ b/packages/@aws-cdk/route53/lib/records/txt.ts @@ -1,6 +1,6 @@ import { Construct } from '@aws-cdk/core'; import { HostedZoneRef } from '../hosted-zone-ref'; -import * as route53 from '../route53.generated'; +import { cloudformation } from '../route53.generated'; import { determineFullyQualifiedDomainName } from './_util'; export interface TXTRecordProps { @@ -21,7 +21,7 @@ export class TXTRecord extends Construct { const recordValue = JSON.stringify(props.recordValue); const ttl = props.ttl === undefined ? 1800 : props.ttl; - new route53.cloudformation.RecordSetResource(this, 'Resource', { + new cloudformation.RecordSetResource(this, 'Resource', { hostedZoneId: parent.hostedZoneId, recordSetName: determineFullyQualifiedDomainName(props.recordName, parent), type: 'TXT', diff --git a/packages/@aws-cdk/route53/lib/records/zone-delegation.ts b/packages/@aws-cdk/route53/lib/records/zone-delegation.ts index a4d5cabf050df..27edc082376ea 100644 --- a/packages/@aws-cdk/route53/lib/records/zone-delegation.ts +++ b/packages/@aws-cdk/route53/lib/records/zone-delegation.ts @@ -1,6 +1,6 @@ import { Construct } from '@aws-cdk/core'; import { HostedZoneRef } from '../hosted-zone-ref'; -import * as route53 from '../route53.generated'; +import { cloudformation } from '../route53.generated'; import { determineFullyQualifiedDomainName } from './_util'; export interface ZoneDelegationRecordProps { @@ -38,7 +38,7 @@ export class ZoneDelegationRecord extends Construct { const ttl = props.ttl === undefined ? 172_800 : props.ttl; - new route53.cloudformation.RecordSetResource(this, 'Resource', { + new cloudformation.RecordSetResource(this, 'Resource', { hostedZoneId: parent.hostedZoneId, recordSetName: determineFullyQualifiedDomainName(props.delegatedZoneName, parent), type: 'NS', diff --git a/packages/@aws-cdk/s3/lib/bucket-policy.ts b/packages/@aws-cdk/s3/lib/bucket-policy.ts index b7d548afbaecb..010c03d6999d6 100644 --- a/packages/@aws-cdk/s3/lib/bucket-policy.ts +++ b/packages/@aws-cdk/s3/lib/bucket-policy.ts @@ -1,6 +1,6 @@ import { Construct, PolicyDocument } from '@aws-cdk/core'; import { BucketRef } from './bucket'; -import * as s3 from './s3.generated'; +import { cloudformation } from './s3.generated'; export interface BucketPolicyProps { /** @@ -28,7 +28,7 @@ export class BucketPolicy extends Construct { throw new Error('Bucket doesn\'t have a bucketName defined'); } - new s3.cloudformation.BucketPolicyResource(this, 'Resource', { + new cloudformation.BucketPolicyResource(this, 'Resource', { bucket: props.bucket.bucketName, policyDocument: this.document, }); diff --git a/packages/@aws-cdk/s3/lib/bucket.ts b/packages/@aws-cdk/s3/lib/bucket.ts index b8ddddbea8383..848c0ad39ae8b 100644 --- a/packages/@aws-cdk/s3/lib/bucket.ts +++ b/packages/@aws-cdk/s3/lib/bucket.ts @@ -4,7 +4,7 @@ import * as kms from '@aws-cdk/kms'; import { BucketPolicy } from './bucket-policy'; import * as perms from './perms'; import { LifecycleRule } from './rule'; -import * as s3 from './s3.generated'; +import { BucketArn, BucketDomainName, BucketDualStackDomainName, cloudformation } from './s3.generated'; import { parseBucketArn, parseBucketName, validateBucketName } from './util'; /** @@ -17,7 +17,7 @@ export interface BucketRefProps { * The ARN fo the bucket. At least one of bucketArn or bucketName must be * defined in order to initialize a bucket ref. */ - bucketArn?: s3.BucketArn; + bucketArn?: BucketArn; /** * The name of the bucket. If the underlying value of ARN is a string, the @@ -61,7 +61,7 @@ export abstract class BucketRef extends Construct { /** * The ARN of the bucket. */ - public abstract readonly bucketArn: s3.BucketArn; + public abstract readonly bucketArn: BucketArn; /** * The name of the bucket. @@ -248,10 +248,10 @@ export interface BucketProps { * BucketResource. */ export class Bucket extends BucketRef { - public readonly bucketArn: s3.BucketArn; + public readonly bucketArn: BucketArn; public readonly bucketName: BucketName; - public readonly domainName: s3.BucketDomainName; - public readonly dualstackDomainName: s3.BucketDualStackDomainName; + public readonly domainName: BucketDomainName; + public readonly dualstackDomainName: BucketDualStackDomainName; public readonly encryptionKey?: kms.EncryptionKeyRef; protected policy?: BucketPolicy; protected autoCreatePolicy = true; @@ -265,7 +265,7 @@ export class Bucket extends BucketRef { const { bucketEncryption, encryptionKey } = this.parseEncryption(props); - const resource = new s3.cloudformation.BucketResource(this, 'Resource', { + const resource = new cloudformation.BucketResource(this, 'Resource', { bucketName: props && props.bucketName, bucketEncryption, versioningConfiguration: props.versioned ? { status: 'Enabled' } : undefined, @@ -306,7 +306,7 @@ export class Bucket extends BucketRef { * user's configuration. */ private parseEncryption(props: BucketProps): { - bucketEncryption?: s3.cloudformation.BucketResource.BucketEncryptionProperty, + bucketEncryption?: cloudformation.BucketResource.BucketEncryptionProperty, encryptionKey?: kms.EncryptionKeyRef } { @@ -366,14 +366,14 @@ export class Bucket extends BucketRef { * Parse the lifecycle configuration out of the uucket props * @param props Par */ - private parseLifecycleConfiguration(): s3.cloudformation.BucketResource.LifecycleConfigurationProperty | undefined { + private parseLifecycleConfiguration(): cloudformation.BucketResource.LifecycleConfigurationProperty | undefined { if (!this.lifecycleRules || this.lifecycleRules.length === 0) { return undefined; } return { rules: this.lifecycleRules.map(parseLifecycleRule) }; - function parseLifecycleRule(rule: LifecycleRule): s3.cloudformation.BucketResource.RuleProperty { + function parseLifecycleRule(rule: LifecycleRule): cloudformation.BucketResource.RuleProperty { const enabled = rule.enabled !== undefined ? rule.enabled : true; const x = { @@ -440,7 +440,7 @@ export class BucketName extends Token { } class ImportedBucketRef extends BucketRef { - public readonly bucketArn: s3.BucketArn; + public readonly bucketArn: BucketArn; public readonly bucketName: BucketName; public readonly encryptionKey?: kms.EncryptionKey; diff --git a/packages/@aws-cdk/sns/lib/policy.ts b/packages/@aws-cdk/sns/lib/policy.ts index ae2f438cef1d9..576679249b11c 100644 --- a/packages/@aws-cdk/sns/lib/policy.ts +++ b/packages/@aws-cdk/sns/lib/policy.ts @@ -1,5 +1,5 @@ import { Construct, PolicyDocument } from '@aws-cdk/core'; -import * as sns from './sns.generated'; +import { cloudformation } from './sns.generated'; import { TopicRef } from './topic-ref'; export interface TopicPolicyProps { @@ -21,7 +21,7 @@ export class TopicPolicy extends Construct { constructor(parent: Construct, name: string, props: TopicPolicyProps) { super(parent, name); - new sns.cloudformation.TopicPolicyResource(this, 'Resource', { + new cloudformation.TopicPolicyResource(this, 'Resource', { policyDocument: this.document, topics: props.topics.map(t => t.topicArn) }); diff --git a/packages/@aws-cdk/sns/lib/subscription.ts b/packages/@aws-cdk/sns/lib/subscription.ts index 31f4f5095f165..74912fda9c465 100644 --- a/packages/@aws-cdk/sns/lib/subscription.ts +++ b/packages/@aws-cdk/sns/lib/subscription.ts @@ -1,5 +1,5 @@ import { Construct } from '@aws-cdk/core'; -import * as sns from './sns.generated'; +import { cloudformation } from './sns.generated'; import { TopicRef } from './topic-ref'; /** @@ -34,7 +34,7 @@ export class Subscription extends Construct { constructor(parent: Construct, name: string, props: SubscriptionProps) { super(parent, name); - new sns.cloudformation.SubscriptionResource(this, 'Resource', { + new cloudformation.SubscriptionResource(this, 'Resource', { endpoint: props.endpoint, protocol: props.protocol, topicArn: props.topic.topicArn diff --git a/packages/@aws-cdk/sns/lib/topic-ref.ts b/packages/@aws-cdk/sns/lib/topic-ref.ts index ed2796de15b73..d7df4d286fafe 100644 --- a/packages/@aws-cdk/sns/lib/topic-ref.ts +++ b/packages/@aws-cdk/sns/lib/topic-ref.ts @@ -5,7 +5,7 @@ import { IIdentityResource } from '@aws-cdk/iam'; import { LambdaRef } from '@aws-cdk/lambda'; import { QueueRef } from '@aws-cdk/sqs'; import { TopicPolicy } from './policy'; -import * as sns from './sns.generated'; +import { TopicName } from './sns.generated'; import { Subscription, SubscriptionProtocol } from './subscription'; /** @@ -26,7 +26,7 @@ export abstract class TopicRef extends Construct implements IEventRuleTarget, IA public abstract readonly topicArn: TopicArn; - public abstract readonly topicName: sns.TopicName; + public abstract readonly topicName: TopicName; /** * Controls automatic creation of policy objects. @@ -280,7 +280,7 @@ export abstract class TopicRef extends Construct implements IEventRuleTarget, IA */ class ImportedTopic extends TopicRef { public readonly topicArn: TopicArn; - public readonly topicName: sns.TopicName; + public readonly topicName: TopicName; protected autoCreatePolicy: boolean = false; @@ -296,7 +296,7 @@ class ImportedTopic extends TopicRef { */ export interface TopicRefProps { topicArn: TopicArn; - topicName: sns.TopicName; + topicName: TopicName; } /** diff --git a/packages/@aws-cdk/sns/lib/topic.ts b/packages/@aws-cdk/sns/lib/topic.ts index abd97ba0de72b..01d4cb51b9217 100644 --- a/packages/@aws-cdk/sns/lib/topic.ts +++ b/packages/@aws-cdk/sns/lib/topic.ts @@ -1,5 +1,5 @@ import { Construct, } from '@aws-cdk/core'; -import * as sns from './sns.generated'; +import { cloudformation, TopicName } from './sns.generated'; import { TopicArn, TopicRef } from './topic-ref'; /** @@ -30,14 +30,14 @@ export interface TopicProps { */ export class Topic extends TopicRef { public readonly topicArn: TopicArn; - public readonly topicName: sns.TopicName; + public readonly topicName: TopicName; protected autoCreatePolicy: boolean = true; constructor(parent: Construct, name: string, props: TopicProps = {}) { super(parent, name); - const resource = new sns.cloudformation.TopicResource(this, 'Resource', { + const resource = new cloudformation.TopicResource(this, 'Resource', { displayName: props.displayName, topicName: props.topicName }); diff --git a/packages/@aws-cdk/sqs/lib/policy.ts b/packages/@aws-cdk/sqs/lib/policy.ts index 73f3ca17a931a..13b6c5c440b5d 100644 --- a/packages/@aws-cdk/sqs/lib/policy.ts +++ b/packages/@aws-cdk/sqs/lib/policy.ts @@ -1,6 +1,6 @@ import { Construct, PolicyDocument } from '@aws-cdk/core'; import { QueueRef } from './queue-ref'; -import * as sqs from './sqs.generated'; +import { cloudformation } from './sqs.generated'; export interface QueuePolicyProps { /** @@ -21,7 +21,7 @@ export class QueuePolicy extends Construct { constructor(parent: Construct, name: string, props: QueuePolicyProps) { super(parent, name); - new sqs.cloudformation.QueuePolicyResource(this, 'Resource', { + new cloudformation.QueuePolicyResource(this, 'Resource', { policyDocument: this.document, queues: props.queues.map(q => q.queueUrl) }); diff --git a/packages/@aws-cdk/sqs/lib/queue-ref.ts b/packages/@aws-cdk/sqs/lib/queue-ref.ts index 349210c798d06..34818e8a5dd9c 100644 --- a/packages/@aws-cdk/sqs/lib/queue-ref.ts +++ b/packages/@aws-cdk/sqs/lib/queue-ref.ts @@ -1,6 +1,6 @@ import { Construct, Output, PolicyStatement, Token } from '@aws-cdk/core'; import { QueuePolicy } from './policy'; -import * as sqs from './sqs.generated'; +import { QueueArn } from './sqs.generated'; /** * Reference to a new or existing Amazon SQS queue @@ -16,7 +16,7 @@ export abstract class QueueRef extends Construct { /** * The ARN of this queue */ - public abstract readonly queueArn: sqs.QueueArn; + public abstract readonly queueArn: QueueArn; /** * The URL of this queue @@ -65,7 +65,7 @@ export abstract class QueueRef extends Construct { * Reference to a queue */ export interface QueueRefProps { - queueArn: sqs.QueueArn; + queueArn: QueueArn; queueUrl: QueueUrl; } @@ -73,7 +73,7 @@ export interface QueueRefProps { * A queue that has been imported */ class ImportedQueue extends QueueRef { - public readonly queueArn: sqs.QueueArn; + public readonly queueArn: QueueArn; public readonly queueUrl: QueueUrl; protected readonly autoCreatePolicy = false; diff --git a/packages/@aws-cdk/sqs/lib/queue.ts b/packages/@aws-cdk/sqs/lib/queue.ts index 7333ce315cb52..88bfc9dcba280 100644 --- a/packages/@aws-cdk/sqs/lib/queue.ts +++ b/packages/@aws-cdk/sqs/lib/queue.ts @@ -1,7 +1,7 @@ import { Construct } from '@aws-cdk/core'; import { EncryptionKey, EncryptionKeyRef, KeyArn } from '@aws-cdk/kms'; import { QueueRef, QueueUrl } from './queue-ref'; -import * as sqs from './sqs.generated'; +import { cloudformation, QueueArn, QueueName } from './sqs.generated'; import { validateProps } from './validate-props'; /** @@ -183,12 +183,12 @@ export class Queue extends QueueRef { /** * The ARN of this queue */ - public readonly queueArn: sqs.QueueArn; + public readonly queueArn: QueueArn; /** * The name of this queue */ - public readonly queueName: sqs.QueueName; + public readonly queueName: QueueName; /** * The URL of this queue @@ -209,7 +209,7 @@ export class Queue extends QueueRef { } : undefined; - const queue = new sqs.cloudformation.QueueResource(this, 'Resource', { + const queue = new cloudformation.QueueResource(this, 'Resource', { queueName: props.queueName, ...this.determineFifoProps(props), ...this.determineEncryptionProps(props),