From b1bfd0c0067812b587717b55c0150d31d4608adc Mon Sep 17 00:00:00 2001 From: Matt McClean Date: Wed, 1 May 2019 20:55:38 +0100 Subject: [PATCH 1/9] added new class for both GPU and ARM based AMIs --- packages/@aws-cdk/aws-ecs/lib/cluster.ts | 42 ++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/packages/@aws-cdk/aws-ecs/lib/cluster.ts b/packages/@aws-cdk/aws-ecs/lib/cluster.ts index 4266dde63e6ca..d52fd06db9e19 100644 --- a/packages/@aws-cdk/aws-ecs/lib/cluster.ts +++ b/packages/@aws-cdk/aws-ecs/lib/cluster.ts @@ -265,6 +265,48 @@ export class EcsOptimizedAmi implements ec2.IMachineImageSource { } } +/** + * Construct a GPU-based Linux machine image from the latest ECS Optimized AMI published in SSM + */ +export class EcsGpuOptimizedAmi implements ec2.IMachineImageSource { + private readonly amiParameterName: string = '/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended'; + + /** + * Return the correct image + */ + public getImage(scope: Construct): ec2.MachineImage { + const ssmProvider = new SSMParameterProvider(scope, { + parameterName: this.amiParameterName + }); + + const json = ssmProvider.parameterValue("{\"image_id\": \"\"}"); + const ami = JSON.parse(json).image_id; + + return new ec2.MachineImage(ami, new ec2.LinuxOS()); + } +} + +/** + * Construct a ARM-based Linux machine image from the latest ECS Optimized AMI published in SSM + */ +export class EcsArmOptimizedAmi implements ec2.IMachineImageSource { + private readonly amiParameterName: string = '/aws/service/ecs/optimized-ami/amazon-linux-2/arm64/recommended'; + + /** + * Return the correct image + */ + public getImage(scope: Construct): ec2.MachineImage { + const ssmProvider = new SSMParameterProvider(scope, { + parameterName: this.amiParameterName + }); + + const json = ssmProvider.parameterValue("{\"image_id\": \"\"}"); + const ami = JSON.parse(json).image_id; + + return new ec2.MachineImage(ami, new ec2.LinuxOS()); + } +} + /** * An ECS cluster */ From 2e27990dd2a72ad0a33a4cf99571b2d97b3d7446 Mon Sep 17 00:00:00 2001 From: Matt McClean Date: Thu, 2 May 2019 20:34:38 +0100 Subject: [PATCH 2/9] added machine image parameter to AddAutoScalingGroupCapacityOptions interface --- packages/@aws-cdk/aws-ecs/lib/cluster.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/@aws-cdk/aws-ecs/lib/cluster.ts b/packages/@aws-cdk/aws-ecs/lib/cluster.ts index d52fd06db9e19..dc9ff8942b98f 100644 --- a/packages/@aws-cdk/aws-ecs/lib/cluster.ts +++ b/packages/@aws-cdk/aws-ecs/lib/cluster.ts @@ -119,7 +119,7 @@ export class Cluster extends Resource implements ICluster { const autoScalingGroup = new autoscaling.AutoScalingGroup(this, id, { ...options, vpc: this.vpc, - machineImage: new EcsOptimizedAmi(), + machineImage: options.machineImage || new EcsOptimizedAmi(), updateType: options.updateType || autoscaling.UpdateType.ReplacingUpdate, instanceType: options.instanceType, }); @@ -474,6 +474,13 @@ export interface AddAutoScalingGroupCapacityOptions { * @default 300 */ readonly taskDrainTimeSeconds?: number; + + /** + * The machine image for the ECS instances + * + * @default - No default machine image + */ + readonly machineImage?: ec2.IMachineImageSource; } /** From dd475f84ab0bce871e6e1151397cb8a9ae16de2f Mon Sep 17 00:00:00 2001 From: Matt McClean Date: Thu, 16 May 2019 10:25:34 +0100 Subject: [PATCH 3/9] refactored EcsOptimizedAmi class --- packages/@aws-cdk/aws-ecs/lib/cluster.ts | 86 ++++++++++++------------ 1 file changed, 42 insertions(+), 44 deletions(-) diff --git a/packages/@aws-cdk/aws-ecs/lib/cluster.ts b/packages/@aws-cdk/aws-ecs/lib/cluster.ts index 6f1cd8d596bd4..99c88c38f1bc8 100644 --- a/packages/@aws-cdk/aws-ecs/lib/cluster.ts +++ b/packages/@aws-cdk/aws-ecs/lib/cluster.ts @@ -232,9 +232,16 @@ export interface EcsOptimizedAmiProps { /** * What generation of Amazon Linux to use * - * @default AmazonLinux + * @deprecated Use amiType instead. */ readonly generation?: ec2.AmazonLinuxGeneration; + + /** + * What ECS Optimized AMI type to use + * + * @default is Amazon Linux + */ + readonly amiType?: EcsOptimizedAmiType; } /** @@ -242,12 +249,19 @@ export interface EcsOptimizedAmiProps { */ export class EcsOptimizedAmi implements ec2.IMachineImageSource { private readonly generation: ec2.AmazonLinuxGeneration; + private readonly amiType: EcsOptimizedAmiType; + private readonly amiParameterName: string; constructor(props?: EcsOptimizedAmiProps) { this.generation = (props && props.generation) || ec2.AmazonLinuxGeneration.AmazonLinux; - if (this.generation === ec2.AmazonLinuxGeneration.AmazonLinux2) { + this.amiType = (props && props.amiType) || EcsOptimizedAmiType.AmazonLinux; + if (this.generation === ec2.AmazonLinuxGeneration.AmazonLinux2 || this.amiType == EcsOptimizedAmiType.AmazonLinux2) { this.amiParameterName = "/aws/service/ecs/optimized-ami/amazon-linux-2/recommended"; + } else if (this.amiType == EcsOptimizedAmiType.Gpu) { + this.amiParameterName = '/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended'; + } else if (this.amiType == EcsOptimizedAmiType.Arm) { + this.amiParameterName = '/aws/service/ecs/optimized-ami/amazon-linux-2/arm64/recommended'; } else { this.amiParameterName = "/aws/service/ecs/optimized-ami/amazon-linux/recommended"; } @@ -268,48 +282,6 @@ export class EcsOptimizedAmi implements ec2.IMachineImageSource { } } -/** - * Construct a GPU-based Linux machine image from the latest ECS Optimized AMI published in SSM - */ -export class EcsGpuOptimizedAmi implements ec2.IMachineImageSource { - private readonly amiParameterName: string = '/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended'; - - /** - * Return the correct image - */ - public getImage(scope: Construct): ec2.MachineImage { - const ssmProvider = new SSMParameterProvider(scope, { - parameterName: this.amiParameterName - }); - - const json = ssmProvider.parameterValue("{\"image_id\": \"\"}"); - const ami = JSON.parse(json).image_id; - - return new ec2.MachineImage(ami, new ec2.LinuxOS()); - } -} - -/** - * Construct a ARM-based Linux machine image from the latest ECS Optimized AMI published in SSM - */ -export class EcsArmOptimizedAmi implements ec2.IMachineImageSource { - private readonly amiParameterName: string = '/aws/service/ecs/optimized-ami/amazon-linux-2/arm64/recommended'; - - /** - * Return the correct image - */ - public getImage(scope: Construct): ec2.MachineImage { - const ssmProvider = new SSMParameterProvider(scope, { - parameterName: this.amiParameterName - }); - - const json = ssmProvider.parameterValue("{\"image_id\": \"\"}"); - const ami = JSON.parse(json).image_id; - - return new ec2.MachineImage(ami, new ec2.LinuxOS()); - } -} - /** * An ECS cluster */ @@ -539,3 +511,29 @@ export enum NamespaceType { */ PublicDns = 'PublicDns', } + +/** + * The type of ECS OptimizedAMI to create + */ +export enum EcsOptimizedAmiType { + + /** + * Create an Amazon Linux optimized AMI + */ + AmazonLinux = 'AmazonLinux', + + /** + * Create an Amazon Linux 2 optimized AMI + */ + AmazonLinux2 = 'AmazonLinux2', + + /** + * Create a GPU optimized AMI + */ + Gpu = 'Gpu', + + /** + * Create a ARM64 optimized AMI + */ + Arm = 'Arm', +} \ No newline at end of file From 074df2ab9239e5dd6ede14ba1e1b88dbf9273b8d Mon Sep 17 00:00:00 2001 From: Matt McClean Date: Thu, 16 May 2019 18:18:16 +0100 Subject: [PATCH 4/9] fixed incorrect comparison operator --- packages/@aws-cdk/aws-ecs/lib/cluster.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/@aws-cdk/aws-ecs/lib/cluster.ts b/packages/@aws-cdk/aws-ecs/lib/cluster.ts index 99c88c38f1bc8..9f4165de2315d 100644 --- a/packages/@aws-cdk/aws-ecs/lib/cluster.ts +++ b/packages/@aws-cdk/aws-ecs/lib/cluster.ts @@ -256,11 +256,11 @@ export class EcsOptimizedAmi implements ec2.IMachineImageSource { constructor(props?: EcsOptimizedAmiProps) { this.generation = (props && props.generation) || ec2.AmazonLinuxGeneration.AmazonLinux; this.amiType = (props && props.amiType) || EcsOptimizedAmiType.AmazonLinux; - if (this.generation === ec2.AmazonLinuxGeneration.AmazonLinux2 || this.amiType == EcsOptimizedAmiType.AmazonLinux2) { + if (this.generation === ec2.AmazonLinuxGeneration.AmazonLinux2 || this.amiType === EcsOptimizedAmiType.AmazonLinux2) { this.amiParameterName = "/aws/service/ecs/optimized-ami/amazon-linux-2/recommended"; - } else if (this.amiType == EcsOptimizedAmiType.Gpu) { + } else if (this.amiType === EcsOptimizedAmiType.Gpu) { this.amiParameterName = '/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended'; - } else if (this.amiType == EcsOptimizedAmiType.Arm) { + } else if (this.amiType === EcsOptimizedAmiType.Arm) { this.amiParameterName = '/aws/service/ecs/optimized-ami/amazon-linux-2/arm64/recommended'; } else { this.amiParameterName = "/aws/service/ecs/optimized-ami/amazon-linux/recommended"; From 04d81b4fd95eae8084b4f98d9b9cf5020f184583 Mon Sep 17 00:00:00 2001 From: Matt McClean Date: Tue, 21 May 2019 10:00:25 +0100 Subject: [PATCH 5/9] changed EcsOptimizedAmiProps to have generation and hw params --- packages/@aws-cdk/aws-ecs/lib/cluster.ts | 57 +++++++++++-------- .../@aws-cdk/aws-ecs/test/test.ecs-cluster.ts | 52 +++++++++++++++++ 2 files changed, 84 insertions(+), 25 deletions(-) diff --git a/packages/@aws-cdk/aws-ecs/lib/cluster.ts b/packages/@aws-cdk/aws-ecs/lib/cluster.ts index 59a83b4bf9cd4..c9742aab4eb5a 100644 --- a/packages/@aws-cdk/aws-ecs/lib/cluster.ts +++ b/packages/@aws-cdk/aws-ecs/lib/cluster.ts @@ -218,16 +218,16 @@ export interface EcsOptimizedAmiProps { /** * What generation of Amazon Linux to use * - * @deprecated Use amiType instead. + * @default is Amazon Linux */ readonly generation?: ec2.AmazonLinuxGeneration; /** * What ECS Optimized AMI type to use * - * @default is Amazon Linux + * @default is Standard */ - readonly amiType?: EcsOptimizedAmiType; + readonly hwType?: AmiHardwareType; } /** @@ -235,22 +235,34 @@ export interface EcsOptimizedAmiProps { */ export class EcsOptimizedAmi implements ec2.IMachineImageSource { private readonly generation: ec2.AmazonLinuxGeneration; - private readonly amiType: EcsOptimizedAmiType; + private readonly hwType: AmiHardwareType; private readonly amiParameterName: string; constructor(props?: EcsOptimizedAmiProps) { - this.generation = (props && props.generation) || ec2.AmazonLinuxGeneration.AmazonLinux; - this.amiType = (props && props.amiType) || EcsOptimizedAmiType.AmazonLinux; - if (this.generation === ec2.AmazonLinuxGeneration.AmazonLinux2 || this.amiType === EcsOptimizedAmiType.AmazonLinux2) { - this.amiParameterName = "/aws/service/ecs/optimized-ami/amazon-linux-2/recommended"; - } else if (this.amiType === EcsOptimizedAmiType.Gpu) { - this.amiParameterName = '/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended'; - } else if (this.amiType === EcsOptimizedAmiType.Arm) { - this.amiParameterName = '/aws/service/ecs/optimized-ami/amazon-linux-2/arm64/recommended'; - } else { - this.amiParameterName = "/aws/service/ecs/optimized-ami/amazon-linux/recommended"; + this.hwType = (props && props.hwType) || AmiHardwareType.Standard; + if (props && props.generation) { // generation defined in the props object + if (props.generation === ec2.AmazonLinuxGeneration.AmazonLinux && this.hwType !== AmiHardwareType.Standard) { + throw new Error(`Amazon Linux does not support special hardware type. Use Amazon Linux 2 instead`); + } else { + this.generation = props.generation; + } + } else { // generation not defined in props object + if (this.hwType === AmiHardwareType.Standard) { // default to Amazon Linux v1 if no HW is standard + this.generation = ec2.AmazonLinuxGeneration.AmazonLinux; + } + else { // default to Amazon Linux v2 if special HW + this.generation = ec2.AmazonLinuxGeneration.AmazonLinux2; + } } + + // set the SSM parameter name + this.amiParameterName = "/aws/service/ecs/optimized-ami/" + + ( this.generation === ec2.AmazonLinuxGeneration.AmazonLinux ? "amazon-linux/" : "" ) + + ( this.generation === ec2.AmazonLinuxGeneration.AmazonLinux2 ? "amazon-linux-2/" : "" ) + + ( this.hwType === AmiHardwareType.Gpu ? "gpu/": "" ) + + ( this.hwType === AmiHardwareType.Arm ? "arm64/": "" ) + + "recommended"; } /** @@ -490,27 +502,22 @@ export enum NamespaceType { } /** - * The type of ECS OptimizedAMI to create + * The type of HW for the ECS Optimized AMI */ -export enum EcsOptimizedAmiType { - - /** - * Create an Amazon Linux optimized AMI - */ - AmazonLinux = 'AmazonLinux', +export enum AmiHardwareType { /** - * Create an Amazon Linux 2 optimized AMI + * Create a standard AMI */ - AmazonLinux2 = 'AmazonLinux2', + Standard = 'Standard', /** * Create a GPU optimized AMI */ - Gpu = 'Gpu', + Gpu = 'GPU', /** * Create a ARM64 optimized AMI */ - Arm = 'Arm', + Arm = 'ARM64', } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-ecs/test/test.ecs-cluster.ts b/packages/@aws-cdk/aws-ecs/test/test.ecs-cluster.ts index 4feddac48b2f2..ff9179666eebf 100644 --- a/packages/@aws-cdk/aws-ecs/test/test.ecs-cluster.ts +++ b/packages/@aws-cdk/aws-ecs/test/test.ecs-cluster.ts @@ -220,6 +220,58 @@ export = { test.done(); }, + "allows specifying special HW AMI Type"(test: Test) { + // GIVEN + const stack = new cdk.Stack(); + const vpc = new ec2.VpcNetwork(stack, 'MyVpc', {}); + + const cluster = new ecs.Cluster(stack, 'EcsCluster', { vpc }); + cluster.addCapacity('GpuAutoScalingGroup', { + instanceType: new ec2.InstanceType('t2.micro'), + machineImage: new ecs.EcsOptimizedAmi({ + hwType: ecs.AmiHardwareType.Gpu + }), + }); + + // THEN + expect(stack).to(haveResource("AWS::AutoScaling::LaunchConfiguration", { + ImageId: "" + })); + + test.done(); + }, + + "throws if amazon linux given with special HW type"(test: Test) { + // GIVEN + const stack = new cdk.Stack(); + const vpc = new ec2.Vpc(stack, 'MyVpc', {}); + + const cluster = new ecs.Cluster(stack, 'EcsCluster', { vpc }); + + // WHEN + cluster.addCapacity('GpuAutoScalingGroup', { + instanceType: new ec2.InstanceType('t2.micro'), + machineImage: new ecs.EcsOptimizedAmi({ + generation: ec2.AmazonLinuxGeneration.AmazonLinux, + hwType: ecs.AmiHardwareType.Gpu, + }), + }); + + // THEN + test.throws(() => { + cluster.addCapacity('GpuAutoScalingGroup', { + instanceType: new ec2.InstanceType('t2.micro'), + machineImage: new ecs.EcsOptimizedAmi({ + generation: ec2.AmazonLinuxGeneration.AmazonLinux, + hwType: ecs.AmiHardwareType.Gpu, + }), + }); + }, /Amazon Linux does not support special hardware type. Use Amazon Linux 2 instead./); + + test.done(); + }, + + "allows adding default service discovery namespace"(test: Test) { // GIVEN const stack = new cdk.Stack(); From e0c24195d0d3e99dd649b02bc534d6164765eb8b Mon Sep 17 00:00:00 2001 From: Matt McClean Date: Tue, 21 May 2019 11:19:51 +0100 Subject: [PATCH 6/9] fixed bug in ecs test file --- package-lock.json | 477 ++++++++++-------- package.json | 2 +- packages/@aws-cdk/aws-ecs/lib/cluster.ts | 7 +- .../@aws-cdk/aws-ecs/test/test.ecs-cluster.ts | 3 +- 4 files changed, 285 insertions(+), 204 deletions(-) diff --git a/package-lock.json b/package-lock.json index 32535e07c4533..e2c08882a8f6b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -391,14 +391,14 @@ } }, "@lerna/add": { - "version": "3.13.3", - "resolved": "https://registry.npmjs.org/@lerna/add/-/add-3.13.3.tgz", - "integrity": "sha512-T3/Lsbo9ZFq+vL3ssaHxA8oKikZAPTJTGFe4CRuQgWCDd/M61+51jeWsngdaHpwzSSRDRjxg8fJTG10y10pnfA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/add/-/add-3.14.0.tgz", + "integrity": "sha512-Sa79Ju6HqF3heSVpBiYPNrGtuS56U/jMzVq4CcVvhNwB34USLrzJJncGFVcfnuUvsjKeFJv+jHxUycHeRE8XYw==", "dev": true, "requires": { - "@lerna/bootstrap": "3.13.3", - "@lerna/command": "3.13.3", - "@lerna/filter-options": "3.13.3", + "@lerna/bootstrap": "3.14.0", + "@lerna/command": "3.14.0", + "@lerna/filter-options": "3.14.0", "@lerna/npm-conf": "3.13.0", "@lerna/validation-error": "3.13.0", "dedent": "^0.7.0", @@ -409,34 +409,33 @@ } }, "@lerna/batch-packages": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/batch-packages/-/batch-packages-3.13.0.tgz", - "integrity": "sha512-TgLBTZ7ZlqilGnzJ3xh1KdAHcySfHytgNRTdG9YomfriTU6kVfp1HrXxKJYVGs7ClPUNt2CTFEOkw0tMBronjw==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/batch-packages/-/batch-packages-3.14.0.tgz", + "integrity": "sha512-RlBkQVNTqk1qvn6PFWiWNiskllUHh6tXbTVm43mZRNd+vhAyvrQC8RWJxH0ECVvnFAt9rSNGRIVbEJ31WnNQLg==", "dev": true, "requires": { - "@lerna/package-graph": "3.13.0", - "@lerna/validation-error": "3.13.0", + "@lerna/package-graph": "3.14.0", "npmlog": "^4.1.2" } }, "@lerna/bootstrap": { - "version": "3.13.3", - "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-3.13.3.tgz", - "integrity": "sha512-2XzijnLHRZOVQh8pwS7+5GR3cG4uh+EiLrWOishCq2TVzkqgjaS3GGBoef7KMCXfWHoLqAZRr/jEdLqfETLVqg==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-3.14.0.tgz", + "integrity": "sha512-AvnuDp8b0kX4zZgqD3v7ItPABhUsN5CmTEvZBD2JqM+xkQKhzCfz5ABcHEwDwOPWnNQmtH+/2iQdwaD7xBcAXw==", "dev": true, "requires": { - "@lerna/batch-packages": "3.13.0", - "@lerna/command": "3.13.3", - "@lerna/filter-options": "3.13.3", + "@lerna/batch-packages": "3.14.0", + "@lerna/command": "3.14.0", + "@lerna/filter-options": "3.14.0", "@lerna/has-npm-version": "3.13.3", "@lerna/npm-install": "3.13.3", - "@lerna/package-graph": "3.13.0", + "@lerna/package-graph": "3.14.0", "@lerna/pulse-till-done": "3.13.0", "@lerna/rimraf-dir": "3.13.3", - "@lerna/run-lifecycle": "3.13.0", + "@lerna/run-lifecycle": "3.14.0", "@lerna/run-parallel-batches": "3.13.0", - "@lerna/symlink-binary": "3.13.0", - "@lerna/symlink-dependencies": "3.13.0", + "@lerna/symlink-binary": "3.14.0", + "@lerna/symlink-dependencies": "3.14.0", "@lerna/validation-error": "3.13.0", "dedent": "^0.7.0", "get-port": "^3.2.0", @@ -452,24 +451,25 @@ } }, "@lerna/changed": { - "version": "3.13.4", - "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-3.13.4.tgz", - "integrity": "sha512-9lfOyRVObasw6L/z7yCSfsEl1QKy0Eamb8t2Krg1deIoAt+cE3JXOdGGC1MhOSli+7f/U9LyLXjJzIOs/pc9fw==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-3.14.1.tgz", + "integrity": "sha512-G0RgYL/WLTFzbezRBLUO2J0v39EvgZIO5bHHUtYt7zUFSfzapkPfvpdpBj+5JlMtf0B2xfxwTk+lSA4LVnbfmA==", "dev": true, "requires": { - "@lerna/collect-updates": "3.13.3", - "@lerna/command": "3.13.3", - "@lerna/listable": "3.13.0", + "@lerna/collect-updates": "3.14.0", + "@lerna/command": "3.14.0", + "@lerna/listable": "3.14.0", "@lerna/output": "3.13.0", - "@lerna/version": "3.13.4" + "@lerna/version": "3.14.1" } }, "@lerna/check-working-tree": { - "version": "3.13.3", - "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-3.13.3.tgz", - "integrity": "sha512-LoGZvTkne+V1WpVdCTU0XNzFKsQa2AiAFKksGRT0v8NQj6VAPp0jfVYDayTqwaWt2Ne0OGKOFE79Y5LStOuhaQ==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-3.14.1.tgz", + "integrity": "sha512-ae/sdZPNh4SS+6c4UDuWP/QKbtIFAn/TvKsPncA1Jdo0PqXLBlug4DzkHTGkvZ5F0nj+0JrSxYteInakJV99vg==", "dev": true, "requires": { + "@lerna/collect-uncommitted": "3.14.1", "@lerna/describe-ref": "3.13.3", "@lerna/validation-error": "3.13.0" } @@ -486,13 +486,13 @@ } }, "@lerna/clean": { - "version": "3.13.3", - "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-3.13.3.tgz", - "integrity": "sha512-xmNauF1PpmDaKdtA2yuRc23Tru4q7UMO6yB1a/TTwxYPYYsAWG/CBK65bV26J7x4RlZtEv06ztYGMa9zh34UXA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-3.14.0.tgz", + "integrity": "sha512-wEuAqOS9VMqh2C20KD63IySzyEnyVDqDI3LUsXw+ByUf9AJDgEHv0TCOxbDjDYaaQw1tjSBNZMyYInNeoASwhA==", "dev": true, "requires": { - "@lerna/command": "3.13.3", - "@lerna/filter-options": "3.13.3", + "@lerna/command": "3.14.0", + "@lerna/filter-options": "3.14.0", "@lerna/prompt": "3.13.0", "@lerna/pulse-till-done": "3.13.0", "@lerna/rimraf-dir": "3.13.3", @@ -513,10 +513,22 @@ "yargs": "^12.0.1" } }, + "@lerna/collect-uncommitted": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-3.14.1.tgz", + "integrity": "sha512-hQ67S+nlSJwsPylXbWlrQSZUcWa8tTNIdcMd9OY4+QxdJlZUG7CLbWSyaxi0g11WdoRJHT163mr9xQyAvIVT1A==", + "dev": true, + "requires": { + "@lerna/child-process": "3.13.3", + "chalk": "^2.3.1", + "figgy-pudding": "^3.5.1", + "npmlog": "^4.1.2" + } + }, "@lerna/collect-updates": { - "version": "3.13.3", - "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-3.13.3.tgz", - "integrity": "sha512-sTpALOAxli/ZS+Mjq6fbmjU9YXqFJ2E4FrE1Ijl4wPC5stXEosg2u0Z1uPY+zVKdM+mOIhLxPVdx83rUgRS+Cg==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-3.14.0.tgz", + "integrity": "sha512-siRHo2atAwj5KpKVOo6QTVIYDYbNs7dzTG6ow9VcFMLKX5shuaEyFA22Z3LmnxQ3sakVFdgvvVeediEz6cM3VA==", "dev": true, "requires": { "@lerna/child-process": "3.13.3", @@ -535,13 +547,13 @@ } }, "@lerna/command": { - "version": "3.13.3", - "resolved": "https://registry.npmjs.org/@lerna/command/-/command-3.13.3.tgz", - "integrity": "sha512-WHFIQCubJV0T8gSLRNr6exZUxTswrh+iAtJCb86SE0Sa+auMPklE8af7w2Yck5GJfewmxSjke3yrjNxQrstx7w==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/command/-/command-3.14.0.tgz", + "integrity": "sha512-PtFi5EtXB2VuSruoLsjfZdus56d7oKlZAI4iSRoaS/BBxE2Wyfn7//vW7Ow4hZCzuqb9tBcpDq+4u2pdXN1d2Q==", "dev": true, "requires": { "@lerna/child-process": "3.13.3", - "@lerna/package-graph": "3.13.0", + "@lerna/package-graph": "3.14.0", "@lerna/project": "3.13.1", "@lerna/validation-error": "3.13.0", "@lerna/write-log-file": "3.13.0", @@ -570,9 +582,9 @@ } }, "@lerna/conventional-commits": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-3.13.0.tgz", - "integrity": "sha512-BeAgcNXuocmLhPxnmKU2Vy8YkPd/Uo+vu2i/p3JGsUldzrPC8iF3IDxH7fuXpEFN2Nfogu7KHachd4tchtOppA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-3.14.0.tgz", + "integrity": "sha512-hGZ2qQZ9uEGf2eeIiIpEodSs9Qkkf/2uYEtNT7QN1RYISPUh6/lKGBssc5dpbCF64aEuxmemWLdlDf1ogG6++w==", "dev": true, "requires": { "@lerna/validation-error": "3.13.0", @@ -588,13 +600,13 @@ } }, "@lerna/create": { - "version": "3.13.3", - "resolved": "https://registry.npmjs.org/@lerna/create/-/create-3.13.3.tgz", - "integrity": "sha512-4M5xT1AyUMwt1gCDph4BfW3e6fZmt0KjTa3FoXkUotf/w/eqTsc2IQ+ULz2+gOFQmtuNbqIZEOK3J4P9ArJJ/A==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/create/-/create-3.14.0.tgz", + "integrity": "sha512-J4PeGnzVBOSV7Cih8Uhv9xIauljR9bGcfSDN9aMzFtJhSX0xFXNvmnpXRORp7xNHV2lbxk7mNxRQxzR9CQRMuw==", "dev": true, "requires": { "@lerna/child-process": "3.13.3", - "@lerna/command": "3.13.3", + "@lerna/command": "3.14.0", "@lerna/npm-conf": "3.13.0", "@lerna/validation-error": "3.13.0", "camelcase": "^5.0.0", @@ -639,9 +651,9 @@ } }, "@lerna/create-symlink": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-3.13.0.tgz", - "integrity": "sha512-PTvg3jAAJSAtLFoZDsuTMv1wTOC3XYIdtg54k7uxIHsP8Ztpt+vlilY/Cni0THAqEMHvfiToel76Xdta4TU21Q==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-3.14.0.tgz", + "integrity": "sha512-Kw51HYOOi6UfCKncqkgEU1k/SYueSBXgkNL91FR8HAZH7EPSRTEtp9mnJo568g0+Hog5C+3cOaWySwhHpRG29A==", "dev": true, "requires": { "cmd-shim": "^2.0.2", @@ -660,38 +672,38 @@ } }, "@lerna/diff": { - "version": "3.13.3", - "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-3.13.3.tgz", - "integrity": "sha512-/DRS2keYbnKaAC+5AkDyZRGkP/kT7v1GlUS0JGZeiRDPQ1H6PzhX09EgE5X6nj0Ytrm0sUasDeN++CDVvgaI+A==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-3.14.0.tgz", + "integrity": "sha512-H6FSj0jOiQ6unVCwOK6ReT5uZN6ZIn/j/cx4YwuOtU3SMcs3UfuQRIFNeKg/tKmOcQGd39Mn9zDhmt3TAYGROA==", "dev": true, "requires": { "@lerna/child-process": "3.13.3", - "@lerna/command": "3.13.3", + "@lerna/command": "3.14.0", "@lerna/validation-error": "3.13.0", "npmlog": "^4.1.2" } }, "@lerna/exec": { - "version": "3.13.3", - "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-3.13.3.tgz", - "integrity": "sha512-c0bD4XqM96CTPV8+lvkxzE7mkxiFyv/WNM4H01YvvbFAJzk+S4Y7cBtRkIYFTfkFZW3FLo8pEgtG1ONtIdM+tg==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-3.14.0.tgz", + "integrity": "sha512-cNFO8hWsBVLeqVQ7LsQ4rYKbbQ2eN+Ne+hWKTlUQoyRbYzgJ22TXhjKR6IMr68q0xtclcDlasfcNO+XEWESh0g==", "dev": true, "requires": { - "@lerna/batch-packages": "3.13.0", "@lerna/child-process": "3.13.3", - "@lerna/command": "3.13.3", - "@lerna/filter-options": "3.13.3", - "@lerna/run-parallel-batches": "3.13.0", - "@lerna/validation-error": "3.13.0" + "@lerna/command": "3.14.0", + "@lerna/filter-options": "3.14.0", + "@lerna/run-topologically": "3.14.0", + "@lerna/validation-error": "3.13.0", + "p-map": "^1.2.0" } }, "@lerna/filter-options": { - "version": "3.13.3", - "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-3.13.3.tgz", - "integrity": "sha512-DbtQX4eRgrBz1wCFWRP99JBD7ODykYme9ykEK79+RrKph40znhJQRlLg4idogj6IsUEzwo1OHjihCzSfnVo6Cg==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-3.14.0.tgz", + "integrity": "sha512-ZmNZK9m8evxHc+2ZnDyCm8XFIKVDKpIASG1wtizr3R14t49fuYE7nR+rm4t82u9oSSmER8gb8bGzh0SKZme/jg==", "dev": true, "requires": { - "@lerna/collect-updates": "3.13.3", + "@lerna/collect-updates": "3.14.0", "@lerna/filter-packages": "3.13.0", "dedent": "^0.7.0" } @@ -757,13 +769,13 @@ } }, "@lerna/import": { - "version": "3.13.4", - "resolved": "https://registry.npmjs.org/@lerna/import/-/import-3.13.4.tgz", - "integrity": "sha512-dn6eNuPEljWsifBEzJ9B6NoaLwl/Zvof7PBUPA4hRyRlqG5sXRn6F9DnusMTovvSarbicmTURbOokYuotVWQQA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/import/-/import-3.14.0.tgz", + "integrity": "sha512-j8z/m85FX1QYPgl5TzMNupdxsQF/NFZSmdCR19HQzqiVKC8ULGzF30WJEk66+KeZ94wYMSakINtYD+41s34pNQ==", "dev": true, "requires": { "@lerna/child-process": "3.13.3", - "@lerna/command": "3.13.3", + "@lerna/command": "3.14.0", "@lerna/prompt": "3.13.0", "@lerna/pulse-till-done": "3.13.0", "@lerna/validation-error": "3.13.0", @@ -773,27 +785,27 @@ } }, "@lerna/init": { - "version": "3.13.3", - "resolved": "https://registry.npmjs.org/@lerna/init/-/init-3.13.3.tgz", - "integrity": "sha512-bK/mp0sF6jT0N+c+xrbMCqN4xRoiZCXQzlYsyACxPK99KH/mpHv7hViZlTYUGlYcymtew6ZC770miv5A9wF9hA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/init/-/init-3.14.0.tgz", + "integrity": "sha512-X3PQkQZds5ozA1xiarmVzAK6LPLNK3bBu24Api0w2KJXO7Ccs9ob/VcGdevZuzqdJo1Xg2H6oBhEqIClU9Uqqw==", "dev": true, "requires": { "@lerna/child-process": "3.13.3", - "@lerna/command": "3.13.3", + "@lerna/command": "3.14.0", "fs-extra": "^7.0.0", "p-map": "^1.2.0", "write-json-file": "^2.3.0" } }, "@lerna/link": { - "version": "3.13.3", - "resolved": "https://registry.npmjs.org/@lerna/link/-/link-3.13.3.tgz", - "integrity": "sha512-IHhtdhA0KlIdevCsq6WHkI2rF3lHWHziJs2mlrEWAKniVrFczbELON1KJAgdJS1k3kAP/WeWVqmIYZ2hJDxMvg==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/link/-/link-3.14.0.tgz", + "integrity": "sha512-xlwQhWTVOZrgAuoONY3/OIBWehDfZXmf5qFhnOy7lIxByRhEX5Vwx0ApaGxHTv3Flv7T+oI4s8UZVq5F6dT8Aw==", "dev": true, "requires": { - "@lerna/command": "3.13.3", - "@lerna/package-graph": "3.13.0", - "@lerna/symlink-dependencies": "3.13.0", + "@lerna/command": "3.14.0", + "@lerna/package-graph": "3.14.0", + "@lerna/symlink-dependencies": "3.14.0", "p-map": "^1.2.0", "slash": "^1.0.0" }, @@ -807,24 +819,24 @@ } }, "@lerna/list": { - "version": "3.13.3", - "resolved": "https://registry.npmjs.org/@lerna/list/-/list-3.13.3.tgz", - "integrity": "sha512-rLRDsBCkydMq2FL6WY1J/elvnXIjxxRtb72lfKHdvDEqVdquT5Qgt9ci42hwjmcocFwWcFJgF6BZozj5pbc13A==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/list/-/list-3.14.0.tgz", + "integrity": "sha512-Gp+9gaIkBfXBwc9Ng0Y74IEfAqpQpLiXwOP4IOpdINxOeDpllhMaYP6SzLaMvrfSyHRayM7Cq5/PRnHkXQ5uuQ==", "dev": true, "requires": { - "@lerna/command": "3.13.3", - "@lerna/filter-options": "3.13.3", - "@lerna/listable": "3.13.0", + "@lerna/command": "3.14.0", + "@lerna/filter-options": "3.14.0", + "@lerna/listable": "3.14.0", "@lerna/output": "3.13.0" } }, "@lerna/listable": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-3.13.0.tgz", - "integrity": "sha512-liYJ/WBUYP4N4MnSVZuLUgfa/jy3BZ02/1Om7xUY09xGVSuNVNEeB8uZUMSC+nHqFHIsMPZ8QK9HnmZb1E/eTA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-3.14.0.tgz", + "integrity": "sha512-ZK44Mo8xf/N97eQZ236SPSq0ek6+gk4HqHIx05foEMZVV1iIDH4a/nblLsJNjGQVsIdMYFPaqNJ0z+ZQfiJazQ==", "dev": true, "requires": { - "@lerna/batch-packages": "3.13.0", + "@lerna/query-graph": "3.14.0", "chalk": "^2.3.1", "columnify": "^1.5.4" } @@ -852,11 +864,12 @@ } }, "@lerna/npm-dist-tag": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-3.13.0.tgz", - "integrity": "sha512-mcuhw34JhSRFrbPn0vedbvgBTvveG52bR2lVE3M3tfE8gmR/cKS/EJFO4AUhfRKGCTFn9rjaSEzlFGYV87pemQ==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-3.14.0.tgz", + "integrity": "sha512-DEyYEdufTGIC6E4RTJUsYPgqlz1Bs/XPeEQ5fd+ojWnICevj7dRrr2DfHucPiUCADlm2jbAraAQc3QPU0dXRhw==", "dev": true, "requires": { + "@lerna/otplease": "3.14.0", "figgy-pudding": "^3.5.1", "npm-package-arg": "^6.1.0", "npm-registry-fetch": "^3.9.0", @@ -879,12 +892,13 @@ } }, "@lerna/npm-publish": { - "version": "3.13.2", - "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-3.13.2.tgz", - "integrity": "sha512-HMucPyEYZfom5tRJL4GsKBRi47yvSS2ynMXYxL3kO0ie+j9J7cb0Ir8NmaAMEd3uJWJVFCPuQarehyfTDZsSxg==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-3.14.0.tgz", + "integrity": "sha512-ShG0qEnGkWxtjQvIRATgm/CzeoVaSyyoNRag5t8gDSR/r2u9ux72oROKQUEaE8OwcTS4rL2cyBECts8XMNmyYw==", "dev": true, "requires": { - "@lerna/run-lifecycle": "3.13.0", + "@lerna/otplease": "3.14.0", + "@lerna/run-lifecycle": "3.14.0", "figgy-pudding": "^3.5.1", "fs-extra": "^7.0.0", "libnpmpublish": "^1.1.1", @@ -905,6 +919,16 @@ "npmlog": "^4.1.2" } }, + "@lerna/otplease": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/otplease/-/otplease-3.14.0.tgz", + "integrity": "sha512-rYAWzaYZ81bwnrmTkYWGgcc13bl/6DlG7pjWQWNGAJNLzO5zzj0xmXN5sMFJnNvDpSiS/ZS1sIuPvb4xnwLUkg==", + "dev": true, + "requires": { + "@lerna/prompt": "3.13.0", + "figgy-pudding": "^3.5.1" + } + }, "@lerna/output": { "version": "3.13.0", "resolved": "https://registry.npmjs.org/@lerna/output/-/output-3.13.0.tgz", @@ -915,14 +939,14 @@ } }, "@lerna/pack-directory": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-3.13.1.tgz", - "integrity": "sha512-kXnyqrkQbCIZOf1054N88+8h0ItC7tUN5v9ca/aWpx298gsURpxUx/1TIKqijL5TOnHMyIkj0YJmnH/PyBVLKA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-3.14.0.tgz", + "integrity": "sha512-E9PmC1oWYjYN8Z0Oeoj7X98NruMg/pcdDiRxnwJ5awnB0d/kyfoquHXCYwCQQFCnWUfto7m5lM4CSostcolEVQ==", "dev": true, "requires": { "@lerna/get-packed": "3.13.0", "@lerna/package": "3.13.0", - "@lerna/run-lifecycle": "3.13.0", + "@lerna/run-lifecycle": "3.14.0", "figgy-pudding": "^3.5.1", "npm-packlist": "^1.4.1", "npmlog": "^4.1.2", @@ -942,13 +966,24 @@ } }, "@lerna/package-graph": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-3.13.0.tgz", - "integrity": "sha512-3mRF1zuqFE1HEFmMMAIggXy+f+9cvHhW/jzaPEVyrPNLKsyfJQtpTNzeI04nfRvbAh+Gd2aNksvaW/w3xGJnnw==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-3.14.0.tgz", + "integrity": "sha512-dNpA/64STD5YXhaSlg4gT6Z474WPJVCHoX1ibsVIFu0fVgH609Y69bsdmbvTRdI7r6Dcu4ZfGxdR636RTrH+Eg==", "dev": true, "requires": { + "@lerna/prerelease-id-from-version": "3.14.0", "@lerna/validation-error": "3.13.0", "npm-package-arg": "^6.1.0", + "npmlog": "^4.1.2", + "semver": "^5.5.0" + } + }, + "@lerna/prerelease-id-from-version": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-3.14.0.tgz", + "integrity": "sha512-Ap3Z/dNhqQuSrKmK+JmzYvQYI2vowxHvUVxZJiDVilW8dyNnxkCsYFmkuZytk5sxVz4VeGLNPS2RSsU5eeSS+Q==", + "dev": true, + "requires": { "semver": "^5.5.0" } }, @@ -1000,29 +1035,29 @@ } }, "@lerna/publish": { - "version": "3.13.4", - "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-3.13.4.tgz", - "integrity": "sha512-v03pabiPlqCDwX6cVNis1PDdT6/jBgkVb5Nl4e8wcJXevIhZw3ClvtI94gSZu/wdoVFX0RMfc8QBVmaimSO0qg==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-3.14.1.tgz", + "integrity": "sha512-p+By/P84XJkndBzrmcnVLMcFpGAE+sQZCQK4e3aKQrEMLDrEwXkWt/XJxzeQskPxInFA/7Icj686LOADO7p0qg==", "dev": true, "requires": { - "@lerna/batch-packages": "3.13.0", - "@lerna/check-working-tree": "3.13.3", + "@lerna/check-working-tree": "3.14.1", "@lerna/child-process": "3.13.3", - "@lerna/collect-updates": "3.13.3", - "@lerna/command": "3.13.3", + "@lerna/collect-updates": "3.14.0", + "@lerna/command": "3.14.0", "@lerna/describe-ref": "3.13.3", "@lerna/log-packed": "3.13.0", "@lerna/npm-conf": "3.13.0", - "@lerna/npm-dist-tag": "3.13.0", - "@lerna/npm-publish": "3.13.2", + "@lerna/npm-dist-tag": "3.14.0", + "@lerna/npm-publish": "3.14.0", "@lerna/output": "3.13.0", - "@lerna/pack-directory": "3.13.1", + "@lerna/pack-directory": "3.14.0", + "@lerna/prerelease-id-from-version": "3.14.0", "@lerna/prompt": "3.13.0", "@lerna/pulse-till-done": "3.13.0", - "@lerna/run-lifecycle": "3.13.0", - "@lerna/run-parallel-batches": "3.13.0", + "@lerna/run-lifecycle": "3.14.0", + "@lerna/run-topologically": "3.14.0", "@lerna/validation-error": "3.13.0", - "@lerna/version": "3.13.4", + "@lerna/version": "3.14.1", "figgy-pudding": "^3.5.1", "fs-extra": "^7.0.0", "libnpmaccess": "^3.0.1", @@ -1032,7 +1067,6 @@ "p-finally": "^1.0.0", "p-map": "^1.2.0", "p-pipe": "^1.2.0", - "p-reduce": "^1.0.0", "pacote": "^9.5.0", "semver": "^5.5.0" } @@ -1046,6 +1080,16 @@ "npmlog": "^4.1.2" } }, + "@lerna/query-graph": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-3.14.0.tgz", + "integrity": "sha512-6YTh3vDMW2hUxHdKeRvx4bosc9lZClKaN+DzC1XKTkwDbWrsjmEzLcemKL6QnyyeuryN2f/eto7P9iSe3z3pQQ==", + "dev": true, + "requires": { + "@lerna/package-graph": "3.14.0", + "figgy-pudding": "^3.5.1" + } + }, "@lerna/resolve-symlink": { "version": "3.13.0", "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-3.13.0.tgz", @@ -1070,31 +1114,30 @@ } }, "@lerna/run": { - "version": "3.13.3", - "resolved": "https://registry.npmjs.org/@lerna/run/-/run-3.13.3.tgz", - "integrity": "sha512-ygnLIfIYS6YY1JHWOM4CsdZiY8kTYPsDFOLAwASlRnlAXF9HiMT08GFXLmMHIblZJ8yJhsM2+QgraCB0WdxzOQ==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/run/-/run-3.14.0.tgz", + "integrity": "sha512-kGGFGLYPKozAN07CSJ7kOyLY6W3oLCQcxCathg1isSkBqQH29tWUg8qNduOlhIFLmnq/nf1JEJxxoXnF6IRLjQ==", "dev": true, "requires": { - "@lerna/batch-packages": "3.13.0", - "@lerna/command": "3.13.3", - "@lerna/filter-options": "3.13.3", + "@lerna/command": "3.14.0", + "@lerna/filter-options": "3.14.0", "@lerna/npm-run-script": "3.13.3", "@lerna/output": "3.13.0", - "@lerna/run-parallel-batches": "3.13.0", + "@lerna/run-topologically": "3.14.0", "@lerna/timer": "3.13.0", "@lerna/validation-error": "3.13.0", "p-map": "^1.2.0" } }, "@lerna/run-lifecycle": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-3.13.0.tgz", - "integrity": "sha512-oyiaL1biZdjpmjh6X/5C4w07wNFyiwXSSHH5GQB4Ay4BPwgq9oNhCcxRoi0UVZlZ1YwzSW8sTwLgj8emkIo3Yg==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-3.14.0.tgz", + "integrity": "sha512-GUM3L9MzGRSW0WQ8wbLW1+SYStU1OFjW0GBzShhBnFrO4nGRrU7VchsLpcLu0hk2uCzyhsrDKzifEdOdUyMoEQ==", "dev": true, "requires": { "@lerna/npm-conf": "3.13.0", "figgy-pudding": "^3.5.1", - "npm-lifecycle": "^2.1.0", + "npm-lifecycle": "^2.1.1", "npmlog": "^4.1.2" } }, @@ -1108,27 +1151,38 @@ "p-map-series": "^1.0.0" } }, + "@lerna/run-topologically": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-3.14.0.tgz", + "integrity": "sha512-y+KBpC1YExFzGynovt9MY4O/bc3RrJaKeuXieiPfKGKxrdtmZe/r33oj/xePTXZq65jnw3SaU3H8S5CrrdkwDg==", + "dev": true, + "requires": { + "@lerna/query-graph": "3.14.0", + "figgy-pudding": "^3.5.1", + "p-queue": "^4.0.0" + } + }, "@lerna/symlink-binary": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-3.13.0.tgz", - "integrity": "sha512-obc4Y6jxywkdaCe+DB0uTxYqP0IQ8mFWvN+k/YMbwH4G2h7M7lCBWgPy8e7xw/50+1II9tT2sxgx+jMus1sTJg==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-3.14.0.tgz", + "integrity": "sha512-AHFb4NlazxYmC+7guoamM3laIRbMSeKERMooKHJ7moe0ayGPBWsCGOH+ZFKZ+eXSDek+FnxdzayR3wf8B3LkTg==", "dev": true, "requires": { - "@lerna/create-symlink": "3.13.0", + "@lerna/create-symlink": "3.14.0", "@lerna/package": "3.13.0", "fs-extra": "^7.0.0", "p-map": "^1.2.0" } }, "@lerna/symlink-dependencies": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-3.13.0.tgz", - "integrity": "sha512-7CyN5WYEPkbPLbqHBIQg/YiimBzb5cIGQB0E9IkLs3+racq2vmUNQZn38LOaazQacAA83seB+zWSxlI6H+eXSg==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-3.14.0.tgz", + "integrity": "sha512-kuSXxwAWiVZqFcXfUBKH4yLUH3lrnGyZmCYon7UnZitw3AK3LQY7HvV2LNNw/oatfjOAiKhPBxnYjYijKiV4oA==", "dev": true, "requires": { - "@lerna/create-symlink": "3.13.0", + "@lerna/create-symlink": "3.14.0", "@lerna/resolve-symlink": "3.13.0", - "@lerna/symlink-binary": "3.13.0", + "@lerna/symlink-binary": "3.14.0", "fs-extra": "^7.0.0", "p-finally": "^1.0.0", "p-map": "^1.2.0", @@ -1151,21 +1205,23 @@ } }, "@lerna/version": { - "version": "3.13.4", - "resolved": "https://registry.npmjs.org/@lerna/version/-/version-3.13.4.tgz", - "integrity": "sha512-pptWUEgN/lUTQZu34+gfH1g4Uhs7TDKRcdZY9A4T9k6RTOwpKC2ceLGiXdeR+ZgQJAey2C4qiE8fo5Z6Rbc6QA==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/@lerna/version/-/version-3.14.1.tgz", + "integrity": "sha512-H/jykoxVIt4oDEYkBgwDfO5dmZFl3G6vP1UEttRVP1FIkI+gCN+olby8S0Qd8XprDuR5OrLboiDWQs3p7nJhLw==", "dev": true, "requires": { - "@lerna/batch-packages": "3.13.0", - "@lerna/check-working-tree": "3.13.3", + "@lerna/batch-packages": "3.14.0", + "@lerna/check-working-tree": "3.14.1", "@lerna/child-process": "3.13.3", - "@lerna/collect-updates": "3.13.3", - "@lerna/command": "3.13.3", - "@lerna/conventional-commits": "3.13.0", + "@lerna/collect-updates": "3.14.0", + "@lerna/command": "3.14.0", + "@lerna/conventional-commits": "3.14.0", "@lerna/github-client": "3.13.3", "@lerna/output": "3.13.0", + "@lerna/prerelease-id-from-version": "3.14.0", "@lerna/prompt": "3.13.0", - "@lerna/run-lifecycle": "3.13.0", + "@lerna/run-lifecycle": "3.14.0", + "@lerna/run-topologically": "3.14.0", "@lerna/validation-error": "3.13.0", "chalk": "^2.3.1", "dedent": "^0.7.0", @@ -1215,14 +1271,14 @@ "dev": true }, "@octokit/endpoint": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.1.1.tgz", - "integrity": "sha512-kCv3ZyqFTWGYmvuU0TETzC4jPGzyLCJrjXp65kRe9DHyQULZak+dpwmEbT7M2rpdr/O2im8ivrPGT6J+2WsKNg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.1.2.tgz", + "integrity": "sha512-bBGGmcRFq1x0jrB29G/9KjYmO3cdHfk3476B2JOHRvLsNw1Pn3l+ZvbiqtcO9qAS4Ti+zFedLB84ziHZRZclQA==", "dev": true, "requires": { "deepmerge": "3.2.0", "is-plain-object": "^3.0.0", - "universal-user-agent": "^2.0.1", + "universal-user-agent": "^2.1.0", "url-template": "^2.0.8" }, "dependencies": { @@ -1250,17 +1306,18 @@ "dev": true }, "@octokit/request": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-3.0.2.tgz", - "integrity": "sha512-lBH2hf2Yuh9XlmP3MSpn3jL9DyCGG+cuPXDRQiJMK42BwW6xFhwWmG1k6xWykcLM4GwZG/5fuwcqnQXYG0ZTSg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-4.1.0.tgz", + "integrity": "sha512-RvpQAba4i+BNH0z8i0gPRc1ShlHidj4puQjI/Tno6s+Q3/Mzb0XRSHJiOhpeFrZ22V7Mwjq1E7QS27P5CgpWYA==", "dev": true, "requires": { "@octokit/endpoint": "^5.1.0", - "deprecation": "^1.0.1", + "@octokit/request-error": "^1.0.1", + "deprecation": "^2.0.0", "is-plain-object": "^3.0.0", "node-fetch": "^2.3.0", "once": "^1.4.0", - "universal-user-agent": "^2.0.1" + "universal-user-agent": "^2.1.0" }, "dependencies": { "is-plain-object": { @@ -1280,17 +1337,28 @@ } } }, + "@octokit/request-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.0.2.tgz", + "integrity": "sha512-T9swMS/Vc4QlfWrvyeSyp/GjhXtYaBzCcibjGywV4k4D2qVrQKfEMPy8OxMDEj7zkIIdpHwqdpVbKCvnUPqkXw==", + "dev": true, + "requires": { + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, "@octokit/rest": { - "version": "16.25.3", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.25.3.tgz", - "integrity": "sha512-/6/Isn9pNoKUQwuWUaskxMC6kFxtXTHhzsgYbyirEQ3UvcLciHvPgtRTbuV3bbVf0x4+4WEfKaI9UzxmPQ3W3A==", + "version": "16.26.0", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.26.0.tgz", + "integrity": "sha512-NBpzre44ZAQWZhlH+zUYTgqI0pHN+c9rNj4d+pCydGEiKTGc1HKmoTghEUyr9GxazDyoAvmpx9nL0I7QS1Olvg==", "dev": true, "requires": { - "@octokit/request": "3.0.2", + "@octokit/request": "^4.0.1", + "@octokit/request-error": "^1.0.2", "atob-lite": "^2.0.0", "before-after-hook": "^1.4.0", "btoa-lite": "^1.0.0", - "deprecation": "^1.0.1", + "deprecation": "^2.0.0", "lodash.get": "^4.4.2", "lodash.set": "^4.3.2", "lodash.uniq": "^4.5.0", @@ -2704,14 +2772,14 @@ "dev": true }, "cosmiconfig": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.0.tgz", - "integrity": "sha512-nxt+Nfc3JAqf4WIWd0jXLjTJZmsPLrA9DDc4nRw2KFJQJK7DNooqSXrNI7tzLG50CF8axczly5UV929tBmh/7g==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", "dev": true, "requires": { "import-fresh": "^2.0.0", "is-directory": "^0.3.1", - "js-yaml": "^3.13.0", + "js-yaml": "^3.13.1", "parse-json": "^4.0.0" } }, @@ -2993,9 +3061,9 @@ "dev": true }, "deprecation": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-1.0.1.tgz", - "integrity": "sha512-ccVHpE72+tcIKaGMql33x5MAjKQIZrk+3x2GbJ7TeraUCZWHoT+KSZpoC+JQFsUBlSTXUrBaGiF0j6zVTepPLg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.0.0.tgz", + "integrity": "sha512-lbQN037mB3VfA2JFuguM5GCJ+zPinMeCrFe+AfSZ6eqrnJA/Fs+EYMnd6Nb2mn9lf2jO9xwEd9o9lic+D4vkcw==", "dev": true }, "detect-indent": { @@ -3262,6 +3330,12 @@ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", + "dev": true + }, "events-to-array": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz", @@ -3460,9 +3534,9 @@ "dev": true }, "fast-glob": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.6.tgz", - "integrity": "sha512-0BvMaZc1k9F+MeWWMe8pL6YltFzZYcJsYU7D4JyDA6PAczaXvxqQQ/z+mDF7/4Mw01DeUc+i3CTKajnkANkV4w==", + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", "dev": true, "requires": { "@mrmlnc/readdir-enhanced": "^2.2.1", @@ -3723,9 +3797,9 @@ } }, "fs-minipass": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz", + "integrity": "sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ==", "dev": true, "requires": { "minipass": "^2.2.1" @@ -6126,26 +6200,26 @@ "dev": true }, "lerna": { - "version": "3.13.4", - "resolved": "https://registry.npmjs.org/lerna/-/lerna-3.13.4.tgz", - "integrity": "sha512-qTp22nlpcgVrJGZuD7oHnFbTk72j2USFimc2Pj4kC0/rXmcU2xPtCiyuxLl8y6/6Lj5g9kwEuvKDZtSXujjX/A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/lerna/-/lerna-3.14.1.tgz", + "integrity": "sha512-lQxmGeEECjOMI3pRh2+I6jazoEWhEfvZNIs7XaX71op33AVwyjlY/nQ1GJGrPhxYBuQnlPgH0vH/nC/lcLaVkw==", "dev": true, "requires": { - "@lerna/add": "3.13.3", - "@lerna/bootstrap": "3.13.3", - "@lerna/changed": "3.13.4", - "@lerna/clean": "3.13.3", + "@lerna/add": "3.14.0", + "@lerna/bootstrap": "3.14.0", + "@lerna/changed": "3.14.1", + "@lerna/clean": "3.14.0", "@lerna/cli": "3.13.0", - "@lerna/create": "3.13.3", - "@lerna/diff": "3.13.3", - "@lerna/exec": "3.13.3", - "@lerna/import": "3.13.4", - "@lerna/init": "3.13.3", - "@lerna/link": "3.13.3", - "@lerna/list": "3.13.3", - "@lerna/publish": "3.13.4", - "@lerna/run": "3.13.3", - "@lerna/version": "3.13.4", + "@lerna/create": "3.14.0", + "@lerna/diff": "3.14.0", + "@lerna/exec": "3.14.0", + "@lerna/import": "3.14.0", + "@lerna/init": "3.14.0", + "@lerna/link": "3.14.0", + "@lerna/list": "3.14.0", + "@lerna/publish": "3.14.1", + "@lerna/run": "3.14.0", + "@lerna/version": "3.14.1", "import-local": "^1.0.0", "npmlog": "^4.1.2" }, @@ -6826,9 +6900,9 @@ "dev": true }, "node-fetch": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.5.0.tgz", - "integrity": "sha512-YuZKluhWGJwCcUu4RlZstdAxr8bFfOVHakc1mplwHkk8J+tqM1Y5yraYvIUpeX8aY7+crCwiELJq7Vl0o0LWXw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==", "dev": true }, "node-fetch-npm": { @@ -7481,6 +7555,15 @@ "integrity": "sha1-SxoROZoRUgpneQ7loMHViB1r7+k=", "dev": true }, + "p-queue": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-4.0.0.tgz", + "integrity": "sha512-3cRXXn3/O0o3+eVmUroJPSj/esxoEFIm0ZOno/T+NzG/VZgPOqQ8WKmlNqubSEpZmCIngEy34unkHGg83ZIBmg==", + "dev": true, + "requires": { + "eventemitter3": "^3.1.0" + } + }, "p-reduce": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", diff --git a/package.json b/package.json index befb08ecc3bbc..ce32bc43b81c4 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "@types/nodeunit": "^0.0.30", "conventional-changelog-cli": "^2.0.21", "jest": "^24.8.0", - "lerna": "^3.13.4", + "lerna": "^3.14.1", "nodeunit": "^0.11.3", "nyc": "^14.1.1", "ts-jest": "^24.0.2", diff --git a/packages/@aws-cdk/aws-ecs/lib/cluster.ts b/packages/@aws-cdk/aws-ecs/lib/cluster.ts index c9742aab4eb5a..e79b2f907e078 100644 --- a/packages/@aws-cdk/aws-ecs/lib/cluster.ts +++ b/packages/@aws-cdk/aws-ecs/lib/cluster.ts @@ -250,8 +250,7 @@ export class EcsOptimizedAmi implements ec2.IMachineImageSource { } else { // generation not defined in props object if (this.hwType === AmiHardwareType.Standard) { // default to Amazon Linux v1 if no HW is standard this.generation = ec2.AmazonLinuxGeneration.AmazonLinux; - } - else { // default to Amazon Linux v2 if special HW + } else { // default to Amazon Linux v2 if special HW this.generation = ec2.AmazonLinuxGeneration.AmazonLinux2; } } @@ -260,8 +259,8 @@ export class EcsOptimizedAmi implements ec2.IMachineImageSource { this.amiParameterName = "/aws/service/ecs/optimized-ami/" + ( this.generation === ec2.AmazonLinuxGeneration.AmazonLinux ? "amazon-linux/" : "" ) + ( this.generation === ec2.AmazonLinuxGeneration.AmazonLinux2 ? "amazon-linux-2/" : "" ) - + ( this.hwType === AmiHardwareType.Gpu ? "gpu/": "" ) - + ( this.hwType === AmiHardwareType.Arm ? "arm64/": "" ) + + ( this.hwType === AmiHardwareType.Gpu ? "gpu/" : "" ) + + ( this.hwType === AmiHardwareType.Arm ? "arm64/" : "" ) + "recommended"; } diff --git a/packages/@aws-cdk/aws-ecs/test/test.ecs-cluster.ts b/packages/@aws-cdk/aws-ecs/test/test.ecs-cluster.ts index ff9179666eebf..527018f43b330 100644 --- a/packages/@aws-cdk/aws-ecs/test/test.ecs-cluster.ts +++ b/packages/@aws-cdk/aws-ecs/test/test.ecs-cluster.ts @@ -223,7 +223,7 @@ export = { "allows specifying special HW AMI Type"(test: Test) { // GIVEN const stack = new cdk.Stack(); - const vpc = new ec2.VpcNetwork(stack, 'MyVpc', {}); + const vpc = new ec2.Vpc(stack, 'MyVpc', {}); const cluster = new ecs.Cluster(stack, 'EcsCluster', { vpc }); cluster.addCapacity('GpuAutoScalingGroup', { @@ -271,7 +271,6 @@ export = { test.done(); }, - "allows adding default service discovery namespace"(test: Test) { // GIVEN const stack = new cdk.Stack(); From 9b55cb92fa7037bbd7be56510cff8514395a5b3f Mon Sep 17 00:00:00 2001 From: Matt McClean Date: Tue, 21 May 2019 12:06:43 +0100 Subject: [PATCH 7/9] fixed bug in ecs test case --- packages/@aws-cdk/aws-ecs/test/test.ecs-cluster.ts | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/packages/@aws-cdk/aws-ecs/test/test.ecs-cluster.ts b/packages/@aws-cdk/aws-ecs/test/test.ecs-cluster.ts index 527018f43b330..ff754f5ca5154 100644 --- a/packages/@aws-cdk/aws-ecs/test/test.ecs-cluster.ts +++ b/packages/@aws-cdk/aws-ecs/test/test.ecs-cluster.ts @@ -241,22 +241,13 @@ export = { test.done(); }, - "throws if amazon linux given with special HW type"(test: Test) { + "errors if amazon linux given with special HW type"(test: Test) { // GIVEN const stack = new cdk.Stack(); const vpc = new ec2.Vpc(stack, 'MyVpc', {}); const cluster = new ecs.Cluster(stack, 'EcsCluster', { vpc }); - // WHEN - cluster.addCapacity('GpuAutoScalingGroup', { - instanceType: new ec2.InstanceType('t2.micro'), - machineImage: new ecs.EcsOptimizedAmi({ - generation: ec2.AmazonLinuxGeneration.AmazonLinux, - hwType: ecs.AmiHardwareType.Gpu, - }), - }); - // THEN test.throws(() => { cluster.addCapacity('GpuAutoScalingGroup', { @@ -266,7 +257,7 @@ export = { hwType: ecs.AmiHardwareType.Gpu, }), }); - }, /Amazon Linux does not support special hardware type. Use Amazon Linux 2 instead./); + }); test.done(); }, From cab463fbe8c037e7426e1c4ea4dd216f01e9a601 Mon Sep 17 00:00:00 2001 From: Matt McClean Date: Thu, 23 May 2019 14:12:47 +0100 Subject: [PATCH 8/9] moved machineImage param to AddCapacityOptions --- packages/@aws-cdk/aws-ecs/lib/cluster.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/@aws-cdk/aws-ecs/lib/cluster.ts b/packages/@aws-cdk/aws-ecs/lib/cluster.ts index e79b2f907e078..89d6e36ff83e1 100644 --- a/packages/@aws-cdk/aws-ecs/lib/cluster.ts +++ b/packages/@aws-cdk/aws-ecs/lib/cluster.ts @@ -445,13 +445,6 @@ export interface AddAutoScalingGroupCapacityOptions { * @default 300 */ readonly taskDrainTimeSeconds?: number; - - /** - * The machine image for the ECS instances - * - * @default - No default machine image - */ - readonly machineImage?: ec2.IMachineImageSource; } /** @@ -462,6 +455,13 @@ export interface AddCapacityOptions extends AddAutoScalingGroupCapacityOptions, * The type of EC2 instance to launch into your Autoscaling Group */ readonly instanceType: ec2.InstanceType; + + /** + * The machine image for the ECS instances + * + * @default - Amazon Linux 1 + */ + readonly machineImage?: ec2.IMachineImageSource; } export interface NamespaceOptions { From 55878d332506b7dff92b51a251ce8264b2a65730 Mon Sep 17 00:00:00 2001 From: Matt McClean Date: Thu, 23 May 2019 14:29:13 +0100 Subject: [PATCH 9/9] updated default values for EcsOptimizedAmiProps --- packages/@aws-cdk/aws-ecs/lib/cluster.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/@aws-cdk/aws-ecs/lib/cluster.ts b/packages/@aws-cdk/aws-ecs/lib/cluster.ts index 89d6e36ff83e1..5e014566208dc 100644 --- a/packages/@aws-cdk/aws-ecs/lib/cluster.ts +++ b/packages/@aws-cdk/aws-ecs/lib/cluster.ts @@ -218,14 +218,14 @@ export interface EcsOptimizedAmiProps { /** * What generation of Amazon Linux to use * - * @default is Amazon Linux + * @default AmazonLinuxGeneration.AmazonLinux if hwType equal to AmiHardwareType.Standard else AmazonLinuxGeneration.AmazonLinux2 */ readonly generation?: ec2.AmazonLinuxGeneration; /** * What ECS Optimized AMI type to use * - * @default is Standard + * @default AmiHardwareType.Standard */ readonly hwType?: AmiHardwareType; }