truemark-cdk-lib 1.0.2-alpha.6 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import { BehaviorOptions, Distribution, DistributionProps, ErrorResponse, GeoRestriction, HttpVersion, IOrigin, PriceClass, SecurityPolicyProtocol, SSLMethod } from "aws-cdk-lib/aws-cloudfront";
2
- import { Certificate } from "aws-cdk-lib/aws-certificatemanager";
2
+ import { ICertificate } from "aws-cdk-lib/aws-certificatemanager";
3
3
  import { IBucket } from "aws-cdk-lib/aws-s3";
4
4
  import { Construct } from "constructs";
5
5
  import { BehaviorBuilder, WebsiteDefaultsProps } from "./behavior-builder";
@@ -12,7 +12,7 @@ export declare class DistributionBuilder {
12
12
  defaultBehavior(): BehaviorBuilder;
13
13
  additionalBehaviors(additionalBehaviors?: Record<string, BehaviorOptions>): DistributionBuilder;
14
14
  additionalBehavior(pattern: string, origin: IOrigin): BehaviorBuilder;
15
- certificate(certificate?: Certificate): DistributionBuilder;
15
+ certificate(certificate?: ICertificate): DistributionBuilder;
16
16
  comment(comment?: string): DistributionBuilder;
17
17
  defaultRootObject(defaultRootObject?: string): DistributionBuilder;
18
18
  domainNames(domainNames?: string[]): DistributionBuilder;
@@ -209,4 +209,4 @@ class DistributionBuilder {
209
209
  }
210
210
  }
211
211
  exports.DistributionBuilder = DistributionBuilder;
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdHJpYnV0aW9uLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkaXN0cmlidXRpb24tYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrREFXb0M7QUFJcEMseURBQXlFO0FBR3pFLE1BQWEsbUJBQW1CO0lBTTlCLFlBQVksc0JBQXVDO1FBQ2pELElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxlQUFlLEVBQUUsc0JBQXNCLENBQUMsS0FBSyxFQUFFO1NBQ2hELENBQUE7UUFDRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsc0JBQXNCLENBQUM7UUFDckQsSUFBSSxDQUFDLDBCQUEwQixHQUFHLEVBQUUsQ0FBQTtJQUN0QyxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQ3JDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxtQkFBcUQ7UUFDdkUsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLEdBQUcsSUFBSSxDQUFDLEtBQUs7WUFDYixtQkFBbUI7U0FDcEIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQixDQUFDLE9BQWUsRUFBRSxNQUFlO1FBQ2pELE1BQU0sZUFBZSxHQUFHLGtDQUFlLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsR0FBRyxlQUFlLENBQUM7UUFDM0QsT0FBTyxlQUFlLENBQUE7SUFDeEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxXQUF5QjtRQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsR0FBRyxJQUFJLENBQUMsS0FBSztZQUNiLFdBQVc7U0FDWixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQWdCO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxHQUFHLElBQUksQ0FBQyxLQUFLO1lB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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmVoYXZpb3JPcHRpb25zLFxuICBEaXN0cmlidXRpb24sXG4gIERpc3RyaWJ1dGlvblByb3BzLFxuICBFcnJvclJlc3BvbnNlLFxuICBHZW9SZXN0cmljdGlvbixcbiAgSHR0cFZlcnNpb24sXG4gIElPcmlnaW4sXG4gIFByaWNlQ2xhc3MsXG4gIFNlY3VyaXR5UG9saWN5UHJvdG9jb2wsXG4gIFNTTE1ldGhvZCxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCI7XG5pbXBvcnQge0NlcnRpZmljYXRlfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlclwiO1xuaW1wb3J0IHtJQnVja2V0fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQge0NvbnN0cnVjdH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7QmVoYXZpb3JCdWlsZGVyLCBXZWJzaXRlRGVmYXVsdHNQcm9wc30gZnJvbSBcIi4vYmVoYXZpb3ItYnVpbGRlclwiO1xuaW1wb3J0IHtEb21haW5OYW1lfSBmcm9tIFwiLi4vLi4vYXdzLXJvdXRlNTNcIjtcblxuZXhwb3J0IGNsYXNzIERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuXG4gIHByb3RlY3RlZCBwcm9wczogRGlzdHJpYnV0aW9uUHJvcHM7XG4gIHByb3RlY3RlZCBkZWZhdWx0QmVoYXZpb3JCdWlsZGVyOiBCZWhhdmlvckJ1aWxkZXI7XG4gIHByb3RlY3RlZCBhZGRpdGlvbmFsQmVoYXZpb3JCdWlsZGVyczogUmVjb3JkPHN0cmluZywgQmVoYXZpb3JCdWlsZGVyPjtcblxuICBjb25zdHJ1Y3RvcihkZWZhdWx0QmVoYXZpb3JCdWlsZGVyOiBCZWhhdmlvckJ1aWxkZXIpIHtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgZGVmYXVsdEJlaGF2aW9yOiBkZWZhdWx0QmVoYXZpb3JCdWlsZGVyLmJ1aWxkKClcbiAgICB9XG4gICAgdGhpcy5kZWZhdWx0QmVoYXZpb3JCdWlsZGVyID0gZGVmYXVsdEJlaGF2aW9yQnVpbGRlcjtcbiAgICB0aGlzLmFkZGl0aW9uYWxCZWhhdmlvckJ1aWxkZXJzID0ge31cbiAgfVxuXG4gIGRlZmF1bHRCZWhhdmlvcigpOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmRlZmF1bHRCZWhhdmlvckJ1aWxkZXI7XG4gIH1cblxuICBhZGRpdGlvbmFsQmVoYXZpb3JzKGFkZGl0aW9uYWxCZWhhdmlvcnM/OiBSZWNvcmQ8c3RyaW5nLCBCZWhhdmlvck9wdGlvbnM+KTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBhZGRpdGlvbmFsQmVoYXZpb3JzXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGFkZGl0aW9uYWxCZWhhdmlvcihwYXR0ZXJuOiBzdHJpbmcsIG9yaWdpbjogSU9yaWdpbik6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgY29uc3QgYmVoYXZpb3JCdWlsZGVyID0gQmVoYXZpb3JCdWlsZGVyLmZyb21PcmlnaW4ob3JpZ2luKTtcbiAgICB0aGlzLmFkZGl0aW9uYWxCZWhhdmlvckJ1aWxkZXJzW3BhdHRlcm5dID0gYmVoYXZpb3JCdWlsZGVyO1xuICAgIHJldHVybiBiZWhhdmlvckJ1aWxkZXJcbiAgfVxuXG4gIGNlcnRpZmljYXRlKGNlcnRpZmljYXRlPzogQ2VydGlmaWNhdGUpOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGNlcnRpZmljYXRlXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNvbW1lbnQoY29tbWVudD86IHN0cmluZyk6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgY29tbWVudFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkZWZhdWx0Um9vdE9iamVjdChkZWZhdWx0Um9vdE9iamVjdD86IHN0cmluZyk6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgZGVmYXVsdFJvb3RPYmplY3RcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZG9tYWluTmFtZXMoZG9tYWluTmFtZXM/OiBzdHJpbmdbXSk6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgZG9tYWluTmFtZXNcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZG9tYWluTmFtZShkb21haW5OYW1lOiBzdHJpbmcgfCBEb21haW5OYW1lKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgY29uc3QgZG9tYWluTmFtZXM6IHN0cmluZ1tdID0gdGhpcy5wcm9wcy5kb21haW5OYW1lcyA/PyBbXTtcbiAgICBkb21haW5OYW1lcy5wdXNoKGRvbWFpbk5hbWUudG9TdHJpbmcoKSk7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBkb21haW5OYW1lc1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBlbmFibGVkKGVuYWJsZWQ/OiBib29sZWFuKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBlbmFibGVkXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGVuYWJsZUlwdjYoZW5hYmxlSXB2Nj86IGJvb2xlYW4pOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGVuYWJsZUlwdjZcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZW5hYmxlTG9nZ2luZyhlbmFibGVMb2dnaW5nPzogYm9vbGVhbik6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgZW5hYmxlTG9nZ2luZ1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnZW9SZXN0cmljdGlvbihnZW9SZXN0cmljdGlvbj86IEdlb1Jlc3RyaWN0aW9uKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBnZW9SZXN0cmljdGlvblxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBodHRwVmVyc2lvbihodHRwVmVyc2lvbj86IEh0dHBWZXJzaW9uKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBodHRwVmVyc2lvblxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBsb2dCdWNrZXQobG9nQnVja2V0PzogSUJ1Y2tldCk6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgbG9nQnVja2V0XG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGxvZ0luY2x1ZGVzQ29va2llcyhsb2dJbmNsdWRlc0Nvb2tpZXM/OiBib29sZWFuKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBsb2dJbmNsdWRlc0Nvb2tpZXNcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbG9nRmlsZVByZWZpeChsb2dGaWxlUHJlZml4Pzogc3RyaW5nKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBsb2dGaWxlUHJlZml4XG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByaWNlQ2xhc3MocHJpY2VDbGFzcz86IFByaWNlQ2xhc3MpOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIHByaWNlQ2xhc3NcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgd2ViQWNsSWQod2ViQWNsSWQ/OiBzdHJpbmcpOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIHdlYkFjbElkXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGVycm9yUmVzcG9uc2VzKGVycm9yUmVzcG9uc2VzPzogRXJyb3JSZXNwb25zZVtdKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBlcnJvclJlc3BvbnNlc1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBlcnJvclJlc3BvbnNlKGVycm9yUmVzcG9uc2U6IEVycm9yUmVzcG9uc2UpOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICBjb25zdCBlcnJvclJlc3BvbnNlczogRXJyb3JSZXNwb25zZVtdID0gdGhpcy5wcm9wcy5lcnJvclJlc3BvbnNlcyA/PyBbXTtcbiAgICBlcnJvclJlc3BvbnNlcy5wdXNoKGVycm9yUmVzcG9uc2UpO1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgZXJyb3JSZXNwb25zZXNcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbWluaW11bVByb3RvY29sVmVyc2lvbihtaW5pbXVtUHJvdG9jb2xWZXJzaW9uPzogU2VjdXJpdHlQb2xpY3lQcm90b2NvbCk6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgbWluaW11bVByb3RvY29sVmVyc2lvblxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzc2xTdXBwb3J0TWV0aG9kKHNzbFN1cHBvcnRNZXRob2Q/OiBTU0xNZXRob2QpOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIHNzbFN1cHBvcnRNZXRob2RcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZGVmYXVsdHMoKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5kZWZhdWx0QmVoYXZpb3IoKS5kZWZhdWx0cygpXG4gICAgcmV0dXJuIHRoaXNcbiAgICAgIC5odHRwVmVyc2lvbihIdHRwVmVyc2lvbi5IVFRQMl9BTkRfMylcbiAgICAgIC5taW5pbXVtUHJvdG9jb2xWZXJzaW9uKFNlY3VyaXR5UG9saWN5UHJvdG9jb2wuVExTX1YxXzJfMjAyMSlcbiAgICAgIC5lbmFibGVJcHY2KHRydWUpXG4gICAgICAucHJpY2VDbGFzcyhQcmljZUNsYXNzLlBSSUNFX0NMQVNTXzEwMClcbiAgfVxuXG4gIHdlYnNpdGVEZWZhdWx0cyhwcm9wczogV2Vic2l0ZURlZmF1bHRzUHJvcHMpIHtcbiAgICB0aGlzLmRlZmF1bHRCZWhhdmlvcigpLndlYnNpdGVEZWZhdWx0cyhwcm9wcylcbiAgICByZXR1cm4gdGhpc1xuICAgICAgLmh0dHBWZXJzaW9uKEh0dHBWZXJzaW9uLkhUVFAyX0FORF8zKVxuICAgICAgLm1pbmltdW1Qcm90b2NvbFZlcnNpb24oU2VjdXJpdHlQb2xpY3lQcm90b2NvbC5UTFNfVjFfMl8yMDIxKVxuICAgICAgLmVuYWJsZUlwdjYodHJ1ZSlcbiAgICAgIC5wcmljZUNsYXNzKFByaWNlQ2xhc3MuUFJJQ0VfQ0xBU1NfMTAwKVxuICAgICAgLmVycm9yUmVzcG9uc2Uoe1xuICAgICAgICBodHRwU3RhdHVzOiA0MDQsXG4gICAgICAgIHJlc3BvbnNlSHR0cFN0YXR1czogNDA0LFxuICAgICAgICByZXNwb25zZVBhZ2VQYXRoOiBcIi80MDQuaHRtbFwiXG4gICAgICB9KTtcbiAgfVxuXG4gIGJ1aWxkKCk6IERpc3RyaWJ1dGlvblByb3BzIHtcblxuICAgIGNvbnN0IGFkZGl0aW9uYWxCZWhhdmlvcnM6IFJlY29yZDxzdHJpbmcsIEJlaGF2aW9yT3B0aW9ucz4gPSB7fVxuICAgIGZvciAoY29uc3QgW3BhdHRlcm4sIGJlaGF2aW9yQnVpbGRlcl0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5hZGRpdGlvbmFsQmVoYXZpb3JCdWlsZGVycykpIHtcbiAgICAgIGFkZGl0aW9uYWxCZWhhdmlvcnNbcGF0dGVybl0gPSBiZWhhdmlvckJ1aWxkZXIuYnVpbGQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGRlZmF1bHRCZWhhdmlvcjogdGhpcy5kZWZhdWx0QmVoYXZpb3JCdWlsZGVyLmJ1aWxkKCksXG4gICAgICBhZGRpdGlvbmFsQmVoYXZpb3JzOiB7XG4gICAgICAgIC4uLnRoaXMucHJvcHMuYWRkaXRpb25hbEJlaGF2aW9ycyxcbiAgICAgICAgLi4uYWRkaXRpb25hbEJlaGF2aW9yc1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRvRGlzdHJpYnV0aW9uKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpOiBEaXN0cmlidXRpb24ge1xuICAgIHJldHVybiBuZXcgRGlzdHJpYnV0aW9uKHNjb3BlLCBpZCwgdGhpcy5idWlsZCgpKTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tT3JpZ2luKG9yaWdpbjogSU9yaWdpbik6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIGNvbnN0IGRlZmF1bHRCZWhhdmlvckJ1aWxkZXIgPSBCZWhhdmlvckJ1aWxkZXIuZnJvbU9yaWdpbihvcmlnaW4pO1xuICAgIHJldHVybiBuZXcgRGlzdHJpYnV0aW9uQnVpbGRlcihkZWZhdWx0QmVoYXZpb3JCdWlsZGVyKTtcbiAgfVxufVxuIl19
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdHJpYnV0aW9uLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkaXN0cmlidXRpb24tYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrREFXb0M7QUFJcEMseURBQXlFO0FBR3pFLE1BQWEsbUJBQW1CO0lBTTlCLFlBQVksc0JBQXVDO1FBQ2pELElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxlQUFlLEVBQUUsc0JBQXNCLENBQUMsS0FBSyxFQUFFO1NBQ2hELENBQUE7UUFDRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsc0JBQXNCLENBQUM7UUFDckQsSUFBSSxDQUFDLDBCQUEwQixHQUFHLEVBQUUsQ0FBQTtJQUN0QyxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQ3JDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxtQkFBcUQ7UUFDdkUsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLEdBQUcsSUFBSSxDQUFDLEtBQUs7WUFDYixtQkFBbUI7U0FDcEIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQixDQUFDLE9BQWUsRUFBRSxNQUFlO1FBQ2pELE1BQU0sZUFBZSxHQUFHLGtDQUFlLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsR0FBRyxlQUFlLENBQUM7UUFDM0QsT0FBTyxlQUFlLENBQUE7SUFDeEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxXQUEwQjtRQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsR0FBRyxJQUFJLENBQUMsS0FBSztZQUNiLFdBQVc7U0FDWixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQWdCO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxHQUFHLElBQUksQ0FBQyxLQUFLO1lB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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmVoYXZpb3JPcHRpb25zLFxuICBEaXN0cmlidXRpb24sXG4gIERpc3RyaWJ1dGlvblByb3BzLFxuICBFcnJvclJlc3BvbnNlLFxuICBHZW9SZXN0cmljdGlvbixcbiAgSHR0cFZlcnNpb24sXG4gIElPcmlnaW4sXG4gIFByaWNlQ2xhc3MsXG4gIFNlY3VyaXR5UG9saWN5UHJvdG9jb2wsXG4gIFNTTE1ldGhvZCxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCI7XG5pbXBvcnQge0lDZXJ0aWZpY2F0ZX0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXJcIjtcbmltcG9ydCB7SUJ1Y2tldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge0JlaGF2aW9yQnVpbGRlciwgV2Vic2l0ZURlZmF1bHRzUHJvcHN9IGZyb20gXCIuL2JlaGF2aW9yLWJ1aWxkZXJcIjtcbmltcG9ydCB7RG9tYWluTmFtZX0gZnJvbSBcIi4uLy4uL2F3cy1yb3V0ZTUzXCI7XG5cbmV4cG9ydCBjbGFzcyBEaXN0cmlidXRpb25CdWlsZGVyIHtcblxuICBwcm90ZWN0ZWQgcHJvcHM6IERpc3RyaWJ1dGlvblByb3BzO1xuICBwcm90ZWN0ZWQgZGVmYXVsdEJlaGF2aW9yQnVpbGRlcjogQmVoYXZpb3JCdWlsZGVyO1xuICBwcm90ZWN0ZWQgYWRkaXRpb25hbEJlaGF2aW9yQnVpbGRlcnM6IFJlY29yZDxzdHJpbmcsIEJlaGF2aW9yQnVpbGRlcj47XG5cbiAgY29uc3RydWN0b3IoZGVmYXVsdEJlaGF2aW9yQnVpbGRlcjogQmVoYXZpb3JCdWlsZGVyKSB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIGRlZmF1bHRCZWhhdmlvcjogZGVmYXVsdEJlaGF2aW9yQnVpbGRlci5idWlsZCgpXG4gICAgfVxuICAgIHRoaXMuZGVmYXVsdEJlaGF2aW9yQnVpbGRlciA9IGRlZmF1bHRCZWhhdmlvckJ1aWxkZXI7XG4gICAgdGhpcy5hZGRpdGlvbmFsQmVoYXZpb3JCdWlsZGVycyA9IHt9XG4gIH1cblxuICBkZWZhdWx0QmVoYXZpb3IoKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0QmVoYXZpb3JCdWlsZGVyO1xuICB9XG5cbiAgYWRkaXRpb25hbEJlaGF2aW9ycyhhZGRpdGlvbmFsQmVoYXZpb3JzPzogUmVjb3JkPHN0cmluZywgQmVoYXZpb3JPcHRpb25zPik6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgYWRkaXRpb25hbEJlaGF2aW9yc1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBhZGRpdGlvbmFsQmVoYXZpb3IocGF0dGVybjogc3RyaW5nLCBvcmlnaW46IElPcmlnaW4pOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIGNvbnN0IGJlaGF2aW9yQnVpbGRlciA9IEJlaGF2aW9yQnVpbGRlci5mcm9tT3JpZ2luKG9yaWdpbik7XG4gICAgdGhpcy5hZGRpdGlvbmFsQmVoYXZpb3JCdWlsZGVyc1twYXR0ZXJuXSA9IGJlaGF2aW9yQnVpbGRlcjtcbiAgICByZXR1cm4gYmVoYXZpb3JCdWlsZGVyXG4gIH1cblxuICBjZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZT86IElDZXJ0aWZpY2F0ZSk6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgY2VydGlmaWNhdGVcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgY29tbWVudChjb21tZW50Pzogc3RyaW5nKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBjb21tZW50XG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGRlZmF1bHRSb290T2JqZWN0KGRlZmF1bHRSb290T2JqZWN0Pzogc3RyaW5nKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBkZWZhdWx0Um9vdE9iamVjdFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkb21haW5OYW1lcyhkb21haW5OYW1lcz86IHN0cmluZ1tdKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBkb21haW5OYW1lc1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkb21haW5OYW1lKGRvbWFpbk5hbWU6IHN0cmluZyB8IERvbWFpbk5hbWUpOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICBjb25zdCBkb21haW5OYW1lczogc3RyaW5nW10gPSB0aGlzLnByb3BzLmRvbWFpbk5hbWVzID8/IFtdO1xuICAgIGRvbWFpbk5hbWVzLnB1c2goZG9tYWluTmFtZS50b1N0cmluZygpKTtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGRvbWFpbk5hbWVzXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGVuYWJsZWQoZW5hYmxlZD86IGJvb2xlYW4pOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGVuYWJsZWRcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZW5hYmxlSXB2NihlbmFibGVJcHY2PzogYm9vbGVhbik6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgZW5hYmxlSXB2NlxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBlbmFibGVMb2dnaW5nKGVuYWJsZUxvZ2dpbmc/OiBib29sZWFuKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBlbmFibGVMb2dnaW5nXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdlb1Jlc3RyaWN0aW9uKGdlb1Jlc3RyaWN0aW9uPzogR2VvUmVzdHJpY3Rpb24pOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGdlb1Jlc3RyaWN0aW9uXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGh0dHBWZXJzaW9uKGh0dHBWZXJzaW9uPzogSHR0cFZlcnNpb24pOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGh0dHBWZXJzaW9uXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGxvZ0J1Y2tldChsb2dCdWNrZXQ/OiBJQnVja2V0KTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBsb2dCdWNrZXRcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbG9nSW5jbHVkZXNDb29raWVzKGxvZ0luY2x1ZGVzQ29va2llcz86IGJvb2xlYW4pOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGxvZ0luY2x1ZGVzQ29va2llc1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBsb2dGaWxlUHJlZml4KGxvZ0ZpbGVQcmVmaXg/OiBzdHJpbmcpOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGxvZ0ZpbGVQcmVmaXhcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJpY2VDbGFzcyhwcmljZUNsYXNzPzogUHJpY2VDbGFzcyk6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgcHJpY2VDbGFzc1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB3ZWJBY2xJZCh3ZWJBY2xJZD86IHN0cmluZyk6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgd2ViQWNsSWRcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZXJyb3JSZXNwb25zZXMoZXJyb3JSZXNwb25zZXM/OiBFcnJvclJlc3BvbnNlW10pOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGVycm9yUmVzcG9uc2VzXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGVycm9yUmVzcG9uc2UoZXJyb3JSZXNwb25zZTogRXJyb3JSZXNwb25zZSk6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIGNvbnN0IGVycm9yUmVzcG9uc2VzOiBFcnJvclJlc3BvbnNlW10gPSB0aGlzLnByb3BzLmVycm9yUmVzcG9uc2VzID8/IFtdO1xuICAgIGVycm9yUmVzcG9uc2VzLnB1c2goZXJyb3JSZXNwb25zZSk7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBlcnJvclJlc3BvbnNlc1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBtaW5pbXVtUHJvdG9jb2xWZXJzaW9uKG1pbmltdW1Qcm90b2NvbFZlcnNpb24/OiBTZWN1cml0eVBvbGljeVByb3RvY29sKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBtaW5pbXVtUHJvdG9jb2xWZXJzaW9uXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNzbFN1cHBvcnRNZXRob2Qoc3NsU3VwcG9ydE1ldGhvZD86IFNTTE1ldGhvZCk6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgc3NsU3VwcG9ydE1ldGhvZFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkZWZhdWx0cygpOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLmRlZmF1bHRCZWhhdmlvcigpLmRlZmF1bHRzKClcbiAgICByZXR1cm4gdGhpc1xuICAgICAgLmh0dHBWZXJzaW9uKEh0dHBWZXJzaW9uLkhUVFAyX0FORF8zKVxuICAgICAgLm1pbmltdW1Qcm90b2NvbFZlcnNpb24oU2VjdXJpdHlQb2xpY3lQcm90b2NvbC5UTFNfVjFfMl8yMDIxKVxuICAgICAgLmVuYWJsZUlwdjYodHJ1ZSlcbiAgICAgIC5wcmljZUNsYXNzKFByaWNlQ2xhc3MuUFJJQ0VfQ0xBU1NfMTAwKVxuICB9XG5cbiAgd2Vic2l0ZURlZmF1bHRzKHByb3BzOiBXZWJzaXRlRGVmYXVsdHNQcm9wcykge1xuICAgIHRoaXMuZGVmYXVsdEJlaGF2aW9yKCkud2Vic2l0ZURlZmF1bHRzKHByb3BzKVxuICAgIHJldHVybiB0aGlzXG4gICAgICAuaHR0cFZlcnNpb24oSHR0cFZlcnNpb24uSFRUUDJfQU5EXzMpXG4gICAgICAubWluaW11bVByb3RvY29sVmVyc2lvbihTZWN1cml0eVBvbGljeVByb3RvY29sLlRMU19WMV8yXzIwMjEpXG4gICAgICAuZW5hYmxlSXB2Nih0cnVlKVxuICAgICAgLnByaWNlQ2xhc3MoUHJpY2VDbGFzcy5QUklDRV9DTEFTU18xMDApXG4gICAgICAuZXJyb3JSZXNwb25zZSh7XG4gICAgICAgIGh0dHBTdGF0dXM6IDQwNCxcbiAgICAgICAgcmVzcG9uc2VIdHRwU3RhdHVzOiA0MDQsXG4gICAgICAgIHJlc3BvbnNlUGFnZVBhdGg6IFwiLzQwNC5odG1sXCJcbiAgICAgIH0pO1xuICB9XG5cbiAgYnVpbGQoKTogRGlzdHJpYnV0aW9uUHJvcHMge1xuXG4gICAgY29uc3QgYWRkaXRpb25hbEJlaGF2aW9yczogUmVjb3JkPHN0cmluZywgQmVoYXZpb3JPcHRpb25zPiA9IHt9XG4gICAgZm9yIChjb25zdCBbcGF0dGVybiwgYmVoYXZpb3JCdWlsZGVyXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLmFkZGl0aW9uYWxCZWhhdmlvckJ1aWxkZXJzKSkge1xuICAgICAgYWRkaXRpb25hbEJlaGF2aW9yc1twYXR0ZXJuXSA9IGJlaGF2aW9yQnVpbGRlci5idWlsZCgpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgZGVmYXVsdEJlaGF2aW9yOiB0aGlzLmRlZmF1bHRCZWhhdmlvckJ1aWxkZXIuYnVpbGQoKSxcbiAgICAgIGFkZGl0aW9uYWxCZWhhdmlvcnM6IHtcbiAgICAgICAgLi4udGhpcy5wcm9wcy5hZGRpdGlvbmFsQmVoYXZpb3JzLFxuICAgICAgICAuLi5hZGRpdGlvbmFsQmVoYXZpb3JzXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdG9EaXN0cmlidXRpb24oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZyk6IERpc3RyaWJ1dGlvbiB7XG4gICAgcmV0dXJuIG5ldyBEaXN0cmlidXRpb24oc2NvcGUsIGlkLCB0aGlzLmJ1aWxkKCkpO1xuICB9XG5cbiAgc3RhdGljIGZyb21PcmlnaW4ob3JpZ2luOiBJT3JpZ2luKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgY29uc3QgZGVmYXVsdEJlaGF2aW9yQnVpbGRlciA9IEJlaGF2aW9yQnVpbGRlci5mcm9tT3JpZ2luKG9yaWdpbik7XG4gICAgcmV0dXJuIG5ldyBEaXN0cmlidXRpb25CdWlsZGVyKGRlZmF1bHRCZWhhdmlvckJ1aWxkZXIpO1xuICB9XG59XG4iXX0=
@@ -1 +1,5 @@
1
+ export * from "./log-configuration";
1
2
  export * from "./standard-fargate-cluster";
3
+ export * from "./standard-fargate-service";
4
+ export * from "./standard-application-fargate-service";
5
+ export * from "./standard-network-fargate-service";
@@ -10,5 +10,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
10
  for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./log-configuration"), exports);
13
14
  __exportStar(require("./standard-fargate-cluster"), exports);
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSw2REFBMkMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9zdGFuZGFyZC1mYXJnYXRlLWNsdXN0ZXJcIjtcbiJdfQ==
15
+ __exportStar(require("./standard-fargate-service"), exports);
16
+ __exportStar(require("./standard-application-fargate-service"), exports);
17
+ __exportStar(require("./standard-network-fargate-service"), exports);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxzREFBb0M7QUFDcEMsNkRBQTJDO0FBQzNDLDZEQUEyQztBQUMzQyx5RUFBdUQ7QUFDdkQscUVBQW1EIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vbG9nLWNvbmZpZ3VyYXRpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0YW5kYXJkLWZhcmdhdGUtY2x1c3RlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3RhbmRhcmQtZmFyZ2F0ZS1zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdGFuZGFyZC1hcHBsaWNhdGlvbi1mYXJnYXRlLXNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0YW5kYXJkLW5ldHdvcmstZmFyZ2F0ZS1zZXJ2aWNlXCI7XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { RetentionDays } from "aws-cdk-lib/aws-logs";
2
+ import { RemovalPolicy } from "aws-cdk-lib";
3
+ import { IKey } from "aws-cdk-lib/aws-kms";
4
+ /**
5
+ * Standard log configuration for ECS services.
6
+ */
7
+ export interface LogConfiguration {
8
+ /** Enables logging to CloudWatch.
9
+ *
10
+ * @default - true
11
+ */
12
+ readonly enabled?: boolean;
13
+ /**
14
+ * The KMS customer managed key to encrypt the log group with.
15
+ */
16
+ readonly encryptionKey?: IKey;
17
+ /**
18
+ * Name of the log group. Best practice is to not set this field.
19
+ */
20
+ readonly logGroupName?: string;
21
+ /**
22
+ * How long, in days, the log contents will be retained.
23
+ *
24
+ * @default - RetentionDays.FIVE_DAYS
25
+ */
26
+ readonly retention?: RetentionDays;
27
+ /**
28
+ * Determine the removal policy of this log group
29
+ *
30
+ * @default - RemovalPolicy.DESTROY
31
+ */
32
+ readonly removalPolicy?: RemovalPolicy;
33
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJsb2ctY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZXRlbnRpb25EYXlzfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxvZ3NcIjtcbmltcG9ydCB7UmVtb3ZhbFBvbGljeX0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge0lLZXl9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mta21zXCI7XG5cbi8qKlxuICogU3RhbmRhcmQgbG9nIGNvbmZpZ3VyYXRpb24gZm9yIEVDUyBzZXJ2aWNlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dDb25maWd1cmF0aW9uIHtcblxuICAvKiogRW5hYmxlcyBsb2dnaW5nIHRvIENsb3VkV2F0Y2guXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBLTVMgY3VzdG9tZXIgbWFuYWdlZCBrZXkgdG8gZW5jcnlwdCB0aGUgbG9nIGdyb3VwIHdpdGguXG4gICAqL1xuICByZWFkb25seSBlbmNyeXB0aW9uS2V5PzogSUtleTtcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgbG9nIGdyb3VwLiBCZXN0IHByYWN0aWNlIGlzIHRvIG5vdCBzZXQgdGhpcyBmaWVsZC5cbiAgICovXG4gIHJlYWRvbmx5IGxvZ0dyb3VwTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSG93IGxvbmcsIGluIGRheXMsIHRoZSBsb2cgY29udGVudHMgd2lsbCBiZSByZXRhaW5lZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBSZXRlbnRpb25EYXlzLkZJVkVfREFZU1xuICAgKi9cbiAgcmVhZG9ubHkgcmV0ZW50aW9uPzogUmV0ZW50aW9uRGF5cztcblxuICAvKipcbiAgICogRGV0ZXJtaW5lIHRoZSByZW1vdmFsIHBvbGljeSBvZiB0aGlzIGxvZyBncm91cFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFJlbW92YWxQb2xpY3kuREVTVFJPWVxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG59XG4iXX0=
@@ -0,0 +1,132 @@
1
+ import { StandardFargateService, StandardFargateServiceProps } from "./standard-fargate-service";
2
+ import { Construct } from "constructs";
3
+ import { Duration } from "aws-cdk-lib";
4
+ import { ApplicationProtocol, IApplicationListener, IApplicationLoadBalancer, TargetGroupLoadBalancingAlgorithmType } from "aws-cdk-lib/aws-elasticloadbalancingv2";
5
+ import { ARecord, IHostedZone } from "aws-cdk-lib/aws-route53";
6
+ import { DomainName } from "../../aws-route53";
7
+ /**
8
+ * Properties for StandardApplicationFargateService
9
+ */
10
+ export interface StandardApplicationFargateServiceProps extends StandardFargateServiceProps {
11
+ /**
12
+ * The name of an application-based stickiness cookie.
13
+ *
14
+ * @default - lb_affinity
15
+ */
16
+ readonly stickinessCookieName?: string;
17
+ /**
18
+ * The stickiness cookie expiration period. Set to 0 to disable.
19
+ *
20
+ * @default - Duration.days(1)
21
+ */
22
+ readonly stickinessCookieDuration?: Duration;
23
+ /**
24
+ * The time period during which the load balancer sends a newly registered target a
25
+ * linearly increasing share of the traffic to the target group. Set this to 0
26
+ * to disable.
27
+ *
28
+ * @default - Duration.seconds(30)
29
+ */
30
+ readonly slowStart?: Duration;
31
+ /**
32
+ * The protocol used by the application in the container.
33
+ *
34
+ * @default - ApplicationProtocol.HTTP
35
+ */
36
+ readonly applicationProtocol?: ApplicationProtocol;
37
+ /**
38
+ * The amount of time for Elastic Load Balancing to wait before deregistering a target.
39
+ *
40
+ * @default - Duration.seconds(10)
41
+ */
42
+ readonly deregistrationDelay?: Duration;
43
+ /**
44
+ * The approximate number of seconds between health checks for an individual target.
45
+ *
46
+ * @default - Duration.seconds(10)
47
+ */
48
+ readonly healthCheckInterval?: Duration;
49
+ /**
50
+ * The ping path destination where Elastic Load Balancing sends health check requests.
51
+ *
52
+ * @default - /health
53
+ */
54
+ readonly healthCheckPath?: string;
55
+ /**
56
+ * The amount of time, in seconds, during which no response from a target means a failed health check
57
+ *
58
+ * @default - Duration.seconds(3)
59
+ */
60
+ readonly healthCheckTimeout?: Duration;
61
+ /**
62
+ * The number of consecutive health checks successes required before considering an unhealthy target healthy.
63
+ *
64
+ * @default - 2
65
+ */
66
+ readonly healthyThresholdCount?: number;
67
+ /**
68
+ * The number of consecutive health check failures required before considering a target unhealthy.
69
+ *
70
+ * @default - 2
71
+ */
72
+ readonly unhealthyThresholdCount?: number;
73
+ /**
74
+ * HTTP code to use when checking for a successful response from a target
75
+ *
76
+ * @default - 200-299
77
+ */
78
+ readonly healthyHttpCodes?: string;
79
+ /**
80
+ * The load balancing algorithm to select targets for routing requests.
81
+ * To set this to LEAST_OUTSTANDING_REQUESTS, stickiness must be disabled.
82
+ *
83
+ * @default - ROUND_ROBIN
84
+ */
85
+ readonly loadBalancingAlgorithmType?: TargetGroupLoadBalancingAlgorithmType;
86
+ /**
87
+ * The number of ALB requests to target for scaling.
88
+ * Disabled by default.
89
+ */
90
+ readonly scaleRequestPerTarget?: number;
91
+ /**
92
+ * Domain name associated with this service.
93
+ */
94
+ readonly domainName: string;
95
+ /**
96
+ * Path pattern to match on the load balancer.
97
+ *
98
+ * @default - ["/*"]
99
+ */
100
+ readonly pathPattern?: string[];
101
+ /**
102
+ * Load balancer to attach this service to. If passed an ARN or name a lookup will be
103
+ * performed to locate the load balancer.
104
+ */
105
+ readonly loadBalancer: IApplicationLoadBalancer | string;
106
+ /**
107
+ * The listener protocol to attach this service to.
108
+ *
109
+ * @default - ApplicationProtocol.HTTPS
110
+ */
111
+ readonly listenerProtocol?: ApplicationProtocol;
112
+ /**
113
+ * The priority to give the target group on the ALB.
114
+ *
115
+ * @default - 1
116
+ */
117
+ readonly targetGroupPriority?: number;
118
+ /**
119
+ * Zone of the domain name. If set, a route53 record is created for the service.
120
+ */
121
+ readonly domainZone?: IHostedZone;
122
+ }
123
+ /**
124
+ * Creates an ECS Fargate service and maps it to an Application Load Balancer (ALB).
125
+ */
126
+ export declare class StandardApplicationFargateService extends StandardFargateService {
127
+ readonly loadBalancer: IApplicationLoadBalancer;
128
+ readonly listener: IApplicationListener;
129
+ readonly domainName?: DomainName;
130
+ readonly route53Record?: ARecord;
131
+ constructor(scope: Construct, id: string, props: StandardApplicationFargateServiceProps);
132
+ }
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StandardApplicationFargateService = void 0;
4
+ const standard_fargate_service_1 = require("./standard-fargate-service");
5
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
6
+ const aws_elasticloadbalancingv2_1 = require("aws-cdk-lib/aws-elasticloadbalancingv2");
7
+ const aws_route53_1 = require("aws-cdk-lib/aws-route53");
8
+ const aws_route53_2 = require("../../aws-route53");
9
+ const aws_route53_targets_1 = require("aws-cdk-lib/aws-route53-targets");
10
+ /**
11
+ * Creates an ECS Fargate service and maps it to an Application Load Balancer (ALB).
12
+ */
13
+ class StandardApplicationFargateService extends standard_fargate_service_1.StandardFargateService {
14
+ constructor(scope, id, props) {
15
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
16
+ super(scope, id, props);
17
+ let stickinessCookieDuration = (_a = props.stickinessCookieDuration) !== null && _a !== void 0 ? _a : aws_cdk_lib_1.Duration.days(1);
18
+ if (stickinessCookieDuration.toSeconds() === 0) {
19
+ stickinessCookieDuration = undefined;
20
+ }
21
+ let stickinessCookieName;
22
+ if (stickinessCookieDuration !== undefined) {
23
+ stickinessCookieName = (_b = props.stickinessCookieName) !== null && _b !== void 0 ? _b : "lb_affinity";
24
+ }
25
+ let slowStart = (_c = props.slowStart) !== null && _c !== void 0 ? _c : aws_cdk_lib_1.Duration.seconds(30);
26
+ if (slowStart.toSeconds() === 0) {
27
+ slowStart = undefined;
28
+ }
29
+ const targetGroup = new aws_elasticloadbalancingv2_1.ApplicationTargetGroup(this, "TargetGroup", {
30
+ targets: [this.service],
31
+ vpc: props.cluster.vpc,
32
+ port: this.port,
33
+ protocol: (_d = props.applicationProtocol) !== null && _d !== void 0 ? _d : aws_elasticloadbalancingv2_1.ApplicationProtocol.HTTP,
34
+ deregistrationDelay: (_e = props.deregistrationDelay) !== null && _e !== void 0 ? _e : aws_cdk_lib_1.Duration.seconds(10),
35
+ slowStart,
36
+ healthCheck: {
37
+ enabled: true,
38
+ interval: (_f = props.healthCheckInterval) !== null && _f !== void 0 ? _f : aws_cdk_lib_1.Duration.seconds(10),
39
+ path: (_g = props.healthCheckPath) !== null && _g !== void 0 ? _g : "/health",
40
+ timeout: (_h = props.healthCheckTimeout) !== null && _h !== void 0 ? _h : aws_cdk_lib_1.Duration.seconds(3),
41
+ healthyThresholdCount: (_j = props.healthyThresholdCount) !== null && _j !== void 0 ? _j : 2,
42
+ unhealthyThresholdCount: (_k = props.unhealthyThresholdCount) !== null && _k !== void 0 ? _k : 2,
43
+ healthyHttpCodes: (_l = props.healthyHttpCodes) !== null && _l !== void 0 ? _l : "200-299"
44
+ },
45
+ stickinessCookieName,
46
+ stickinessCookieDuration,
47
+ loadBalancingAlgorithmType: (_m = props.loadBalancingAlgorithmType) !== null && _m !== void 0 ? _m : aws_elasticloadbalancingv2_1.TargetGroupLoadBalancingAlgorithmType.ROUND_ROBIN
48
+ });
49
+ if (props.scaleRequestPerTarget !== undefined) {
50
+ this.scaling.scaleOnRequestCount("RequestCountScaling", {
51
+ scaleInCooldown: this.scaleInCooldown,
52
+ scaleOutCooldown: this.scaleOutCooldown,
53
+ targetGroup,
54
+ requestsPerTarget: props.scaleRequestPerTarget,
55
+ });
56
+ }
57
+ const targetGroupConditions = [];
58
+ targetGroupConditions.push(aws_elasticloadbalancingv2_1.ListenerCondition.pathPatterns((_o = props.pathPattern) !== null && _o !== void 0 ? _o : ["/*"]));
59
+ if (props.domainName !== undefined) {
60
+ targetGroupConditions.push(aws_elasticloadbalancingv2_1.ListenerCondition.hostHeaders([props.domainName]));
61
+ }
62
+ let loadBalancer;
63
+ if (typeof props.loadBalancer === "string") {
64
+ if (props.loadBalancer.startsWith("arn:")) {
65
+ loadBalancer = aws_elasticloadbalancingv2_1.ApplicationLoadBalancer.fromLookup(this, "LoadBalancer", {
66
+ loadBalancerArn: props.loadBalancer
67
+ });
68
+ }
69
+ else {
70
+ loadBalancer = aws_elasticloadbalancingv2_1.ApplicationLoadBalancer.fromLookup(this, "LoadBalancer", {
71
+ loadBalancerTags: {
72
+ Name: props.loadBalancer
73
+ }
74
+ });
75
+ }
76
+ }
77
+ else {
78
+ loadBalancer = props.loadBalancer;
79
+ }
80
+ const listener = aws_elasticloadbalancingv2_1.ApplicationListener.fromLookup(this, "Listener", {
81
+ loadBalancerArn: loadBalancer.loadBalancerArn,
82
+ listenerProtocol: (_p = props.listenerProtocol) !== null && _p !== void 0 ? _p : aws_elasticloadbalancingv2_1.ApplicationProtocol.HTTPS
83
+ });
84
+ listener.addTargetGroups(`${id}TargetGroups`, {
85
+ targetGroups: [targetGroup],
86
+ conditions: targetGroupConditions,
87
+ priority: (_q = props.targetGroupPriority) !== null && _q !== void 0 ? _q : 1
88
+ });
89
+ if (props.domainZone !== undefined) {
90
+ this.domainName = aws_route53_2.DomainName.fromFqdn(props.domainName, props.domainZone);
91
+ this.route53Record = this.domainName.createARecord(this, aws_route53_1.RecordTarget.fromAlias(new aws_route53_targets_1.LoadBalancerTarget(loadBalancer)));
92
+ }
93
+ this.loadBalancer = loadBalancer;
94
+ this.listener = listener;
95
+ }
96
+ }
97
+ exports.StandardApplicationFargateService = StandardApplicationFargateService;
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtYXBwbGljYXRpb24tZmFyZ2F0ZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RhbmRhcmQtYXBwbGljYXRpb24tZmFyZ2F0ZS1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlFQUErRjtBQUUvRiw2Q0FBcUM7QUFDckMsdUZBTWdEO0FBQ2hELHlEQUEyRTtBQUMzRSxtREFBNkM7QUFDN0MseUVBQW1FO0FBMkluRTs7R0FFRztBQUNILE1BQWEsaUNBQWtDLFNBQVEsaURBQXNCO0lBTzNFLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNkM7O1FBQ3JGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksd0JBQXdCLFNBQXlCLEtBQUssQ0FBQyx3QkFBd0IsbUNBQUksc0JBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEcsSUFBSSx3QkFBd0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDOUMsd0JBQXdCLEdBQUcsU0FBUyxDQUFDO1NBQ3RDO1FBRUQsSUFBSSxvQkFBd0MsQ0FBQztRQUM3QyxJQUFJLHdCQUF3QixLQUFLLFNBQVMsRUFBRTtZQUMxQyxvQkFBb0IsU0FBRyxLQUFLLENBQUMsb0JBQW9CLG1DQUFJLGFBQWEsQ0FBQTtTQUNuRTtRQUVELElBQUksU0FBUyxTQUF5QixLQUFLLENBQUMsU0FBUyxtQ0FBSSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5RSxJQUFJLFNBQVMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDL0IsU0FBUyxHQUFHLFNBQVMsQ0FBQztTQUN2QjtRQUVELE1BQU0sV0FBVyxHQUFHLElBQUksbURBQXNCLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUNsRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lB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RUFBRSxjQUFjLEVBQUU7WUFDNUMsWUFBWSxFQUFFLENBQUMsV0FBVyxDQUFDO1lBQzNCLFVBQVUsRUFBRSxxQkFBcUI7WUFDakMsUUFBUSxRQUFFLEtBQUssQ0FBQyxtQkFBbUIsbUNBQUksQ0FBQztTQUN6QyxDQUFDLENBQUM7UUFFSCxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxVQUFVLEdBQUcsd0JBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDMUUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQ3JELDBCQUFZLENBQUMsU0FBUyxDQUFDLElBQUksd0NBQWtCLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pFO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztDQUNGO0FBbEdELDhFQWtHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U3RhbmRhcmRGYXJnYXRlU2VydmljZSwgU3RhbmRhcmRGYXJnYXRlU2VydmljZVByb3BzfSBmcm9tIFwiLi9zdGFuZGFyZC1mYXJnYXRlLXNlcnZpY2VcIjtcbmltcG9ydCB7Q29uc3RydWN0fSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtEdXJhdGlvbn0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1xuICBBcHBsaWNhdGlvbkxpc3RlbmVyLFxuICBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcixcbiAgQXBwbGljYXRpb25Qcm90b2NvbCxcbiAgQXBwbGljYXRpb25UYXJnZXRHcm91cCwgSUFwcGxpY2F0aW9uTGlzdGVuZXIsIElBcHBsaWNhdGlvbkxvYWRCYWxhbmNlciwgTGlzdGVuZXJDb25kaXRpb24sXG4gIFRhcmdldEdyb3VwTG9hZEJhbGFuY2luZ0FsZ29yaXRobVR5cGVcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyXCI7XG5pbXBvcnQge0FSZWNvcmQsIElIb3N0ZWRab25lLCBSZWNvcmRUYXJnZXR9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHtEb21haW5OYW1lfSBmcm9tIFwiLi4vLi4vYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7TG9hZEJhbGFuY2VyVGFyZ2V0fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTMtdGFyZ2V0c1wiO1xuaW1wb3J0IHtJVnBjfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIFN0YW5kYXJkQXBwbGljYXRpb25GYXJnYXRlU2VydmljZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YW5kYXJkQXBwbGljYXRpb25GYXJnYXRlU2VydmljZVByb3BzIGV4dGVuZHMgU3RhbmRhcmRGYXJnYXRlU2VydmljZVByb3BzIHtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgYW4gYXBwbGljYXRpb24tYmFzZWQgc3RpY2tpbmVzcyBjb29raWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbGJfYWZmaW5pdHlcbiAgICovXG4gIHJlYWRvbmx5IHN0aWNraW5lc3NDb29raWVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RpY2tpbmVzcyBjb29raWUgZXhwaXJhdGlvbiBwZXJpb2QuIFNldCB0byAwIHRvIGRpc2FibGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRHVyYXRpb24uZGF5cygxKVxuICAgKi9cbiAgcmVhZG9ubHkgc3RpY2tpbmVzc0Nvb2tpZUR1cmF0aW9uPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIHBlcmlvZCBkdXJpbmcgd2hpY2ggdGhlIGxvYWQgYmFsYW5jZXIgc2VuZHMgYSBuZXdseSByZWdpc3RlcmVkIHRhcmdldCBhXG4gICAqIGxpbmVhcmx5IGluY3JlYXNpbmcgc2hhcmUgb2YgdGhlIHRyYWZmaWMgdG8gdGhlIHRhcmdldCBncm91cC4gU2V0IHRoaXMgdG8gMFxuICAgKiB0byBkaXNhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIER1cmF0aW9uLnNlY29uZHMoMzApXG4gICAqL1xuICByZWFkb25seSBzbG93U3RhcnQ/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIHByb3RvY29sIHVzZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGluIHRoZSBjb250YWluZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQXBwbGljYXRpb25Qcm90b2NvbC5IVFRQXG4gICAqL1xuICByZWFkb25seSBhcHBsaWNhdGlvblByb3RvY29sPzogQXBwbGljYXRpb25Qcm90b2NvbDtcblxuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiB0aW1lIGZvciBFbGFzdGljIExvYWQgQmFsYW5jaW5nIHRvIHdhaXQgYmVmb3JlIGRlcmVnaXN0ZXJpbmcgYSB0YXJnZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRHVyYXRpb24uc2Vjb25kcygxMClcbiAgICovXG4gIHJlYWRvbmx5IGRlcmVnaXN0cmF0aW9uRGVsYXk/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGFwcHJveGltYXRlIG51bWJlciBvZiBzZWNvbmRzIGJldHdlZW4gaGVhbHRoIGNoZWNrcyBmb3IgYW4gaW5kaXZpZHVhbCB0YXJnZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRHVyYXRpb24uc2Vjb25kcygxMClcbiAgICovXG4gIHJlYWRvbmx5IGhlYWx0aENoZWNrSW50ZXJ2YWw/OiBEdXJhdGlvblxuXG4gIC8qKlxuICAgKiBUaGUgcGluZyBwYXRoIGRlc3RpbmF0aW9uIHdoZXJlIEVsYXN0aWMgTG9hZCBCYWxhbmNpbmcgc2VuZHMgaGVhbHRoIGNoZWNrIHJlcXVlc3RzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIC9oZWFsdGhcbiAgICovXG4gIHJlYWRvbmx5IGhlYWx0aENoZWNrUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiB0aW1lLCBpbiBzZWNvbmRzLCBkdXJpbmcgd2hpY2ggbm8gcmVzcG9uc2UgZnJvbSBhIHRhcmdldCBtZWFucyBhIGZhaWxlZCBoZWFsdGggY2hlY2tcbiAgICpcbiAgICogQGRlZmF1bHQgLSBEdXJhdGlvbi5zZWNvbmRzKDMpXG4gICAqL1xuICByZWFkb25seSBoZWFsdGhDaGVja1RpbWVvdXQ/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBjb25zZWN1dGl2ZSBoZWFsdGggY2hlY2tzIHN1Y2Nlc3NlcyByZXF1aXJlZCBiZWZvcmUgY29uc2lkZXJpbmcgYW4gdW5oZWFsdGh5IHRhcmdldCBoZWFsdGh5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIDJcbiAgICovXG4gIHJlYWRvbmx5IGhlYWx0aHlUaHJlc2hvbGRDb3VudD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBjb25zZWN1dGl2ZSBoZWFsdGggY2hlY2sgZmFpbHVyZXMgcmVxdWlyZWQgYmVmb3JlIGNvbnNpZGVyaW5nIGEgdGFyZ2V0IHVuaGVhbHRoeS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSAyXG4gICAqL1xuICByZWFkb25seSB1bmhlYWx0aHlUaHJlc2hvbGRDb3VudD86IG51bWJlcjtcblxuICAvKipcbiAgICogSFRUUCBjb2RlIHRvIHVzZSB3aGVuIGNoZWNraW5nIGZvciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIHRhcmdldFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIDIwMC0yOTlcbiAgICovXG4gIHJlYWRvbmx5IGhlYWx0aHlIdHRwQ29kZXM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2FkIGJhbGFuY2luZyBhbGdvcml0aG0gdG8gc2VsZWN0IHRhcmdldHMgZm9yIHJvdXRpbmcgcmVxdWVzdHMuXG4gICAqIFRvIHNldCB0aGlzIHRvIExFQVNUX09VVFNUQU5ESU5HX1JFUVVFU1RTLCBzdGlja2luZXNzIG11c3QgYmUgZGlzYWJsZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gUk9VTkRfUk9CSU5cbiAgICovXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNpbmdBbGdvcml0aG1UeXBlPzogVGFyZ2V0R3JvdXBMb2FkQmFsYW5jaW5nQWxnb3JpdGhtVHlwZTtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBBTEIgcmVxdWVzdHMgdG8gdGFyZ2V0IGZvciBzY2FsaW5nLlxuICAgKiBEaXNhYmxlZCBieSBkZWZhdWx0LlxuICAgKi9cbiAgcmVhZG9ubHkgc2NhbGVSZXF1ZXN0UGVyVGFyZ2V0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBEb21haW4gbmFtZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBzZXJ2aWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQYXRoIHBhdHRlcm4gdG8gbWF0Y2ggb24gdGhlIGxvYWQgYmFsYW5jZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gW1wiLypcIl1cbiAgICovXG4gIHJlYWRvbmx5IHBhdGhQYXR0ZXJuPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIExvYWQgYmFsYW5jZXIgdG8gYXR0YWNoIHRoaXMgc2VydmljZSB0by4gSWYgcGFzc2VkIGFuIEFSTiBvciBuYW1lIGEgbG9va3VwIHdpbGwgYmVcbiAgICogcGVyZm9ybWVkIHRvIGxvY2F0ZSB0aGUgbG9hZCBiYWxhbmNlci5cbiAgICovXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlcjogSUFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyIHwgc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdGVuZXIgcHJvdG9jb2wgdG8gYXR0YWNoIHRoaXMgc2VydmljZSB0by5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBcHBsaWNhdGlvblByb3RvY29sLkhUVFBTXG4gICAqL1xuICByZWFkb25seSBsaXN0ZW5lclByb3RvY29sPzogQXBwbGljYXRpb25Qcm90b2NvbDtcblxuICAvKipcbiAgICogVGhlIHByaW9yaXR5IHRvIGdpdmUgdGhlIHRhcmdldCBncm91cCBvbiB0aGUgQUxCLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIDFcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldEdyb3VwUHJpb3JpdHk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFpvbmUgb2YgdGhlIGRvbWFpbiBuYW1lLiBJZiBzZXQsIGEgcm91dGU1MyByZWNvcmQgaXMgY3JlYXRlZCBmb3IgdGhlIHNlcnZpY2UuXG4gICAqL1xuICByZWFkb25seSBkb21haW5ab25lPzogSUhvc3RlZFpvbmU7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBFQ1MgRmFyZ2F0ZSBzZXJ2aWNlIGFuZCBtYXBzIGl0IHRvIGFuIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIgKEFMQikuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFuZGFyZEFwcGxpY2F0aW9uRmFyZ2F0ZVNlcnZpY2UgZXh0ZW5kcyBTdGFuZGFyZEZhcmdhdGVTZXJ2aWNlIHtcblxuICByZWFkb25seSBsb2FkQmFsYW5jZXI6IElBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcjtcbiAgcmVhZG9ubHkgbGlzdGVuZXI6IElBcHBsaWNhdGlvbkxpc3RlbmVyO1xuICByZWFkb25seSBkb21haW5OYW1lPzogRG9tYWluTmFtZTtcbiAgcmVhZG9ubHkgcm91dGU1M1JlY29yZD86IEFSZWNvcmQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFN0YW5kYXJkQXBwbGljYXRpb25GYXJnYXRlU2VydmljZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBsZXQgc3RpY2tpbmVzc0Nvb2tpZUR1cmF0aW9uOiBEdXJhdGlvbiB8IHVuZGVmaW5lZCA9IHByb3BzLnN0aWNraW5lc3NDb29raWVEdXJhdGlvbiA/PyBEdXJhdGlvbi5kYXlzKDEpO1xuICAgIGlmIChzdGlja2luZXNzQ29va2llRHVyYXRpb24udG9TZWNvbmRzKCkgPT09IDApIHtcbiAgICAgIHN0aWNraW5lc3NDb29raWVEdXJhdGlvbiA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBsZXQgc3RpY2tpbmVzc0Nvb2tpZU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBpZiAoc3RpY2tpbmVzc0Nvb2tpZUR1cmF0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHN0aWNraW5lc3NDb29raWVOYW1lID0gcHJvcHMuc3RpY2tpbmVzc0Nvb2tpZU5hbWUgPz8gXCJsYl9hZmZpbml0eVwiXG4gICAgfVxuXG4gICAgbGV0IHNsb3dTdGFydDogRHVyYXRpb24gfCB1bmRlZmluZWQgPSBwcm9wcy5zbG93U3RhcnQgPz8gRHVyYXRpb24uc2Vjb25kcygzMCk7XG4gICAgaWYgKHNsb3dTdGFydC50b1NlY29uZHMoKSA9PT0gMCkge1xuICAgICAgc2xvd1N0YXJ0ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldEdyb3VwID0gbmV3IEFwcGxpY2F0aW9uVGFyZ2V0R3JvdXAodGhpcywgXCJUYXJnZXRHcm91cFwiLCB7XG4gICAgICB0YXJnZXRzOiBbdGhpcy5zZXJ2aWNlXSxcbiAgICAgIHZwYzogcHJvcHMuY2x1c3Rlci52cGMsXG4gICAgICBwb3J0OiB0aGlzLnBvcnQsXG4gICAgICBwcm90b2NvbDogcHJvcHMuYXBwbGljYXRpb25Qcm90b2NvbCA/PyBBcHBsaWNhdGlvblByb3RvY29sLkhUVFAsXG4gICAgICBkZXJlZ2lzdHJhdGlvbkRlbGF5OiBwcm9wcy5kZXJlZ2lzdHJhdGlvbkRlbGF5ID8/IER1cmF0aW9uLnNlY29uZHMoMTApLFxuICAgICAgc2xvd1N0YXJ0LFxuICAgICAgaGVhbHRoQ2hlY2s6IHtcbiAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgaW50ZXJ2YWw6IHByb3BzLmhlYWx0aENoZWNrSW50ZXJ2YWwgPz8gRHVyYXRpb24uc2Vjb25kcygxMCksXG4gICAgICAgIHBhdGg6IHByb3BzLmhlYWx0aENoZWNrUGF0aCA/PyBcIi9oZWFsdGhcIixcbiAgICAgICAgdGltZW91dDogcHJvcHMuaGVhbHRoQ2hlY2tUaW1lb3V0ID8/IER1cmF0aW9uLnNlY29uZHMoMyksXG4gICAgICAgIGhlYWx0aHlUaHJlc2hvbGRDb3VudDogcHJvcHMuaGVhbHRoeVRocmVzaG9sZENvdW50ID8/IDIsXG4gICAgICAgIHVuaGVhbHRoeVRocmVzaG9sZENvdW50OiBwcm9wcy51bmhlYWx0aHlUaHJlc2hvbGRDb3VudCA/PyAyLFxuICAgICAgICBoZWFsdGh5SHR0cENvZGVzOiBwcm9wcy5oZWFsdGh5SHR0cENvZGVzID8/IFwiMjAwLTI5OVwiXG4gICAgICB9LFxuICAgICAgc3RpY2tpbmVzc0Nvb2tpZU5hbWUsXG4gICAgICBzdGlja2luZXNzQ29va2llRHVyYXRpb24sXG4gICAgICBsb2FkQmFsYW5jaW5nQWxnb3JpdGhtVHlwZTogcHJvcHMubG9hZEJhbGFuY2luZ0FsZ29yaXRobVR5cGUgPz8gVGFyZ2V0R3JvdXBMb2FkQmFsYW5jaW5nQWxnb3JpdGhtVHlwZS5ST1VORF9ST0JJTlxuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLnNjYWxlUmVxdWVzdFBlclRhcmdldCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnNjYWxpbmcuc2NhbGVPblJlcXVlc3RDb3VudChcIlJlcXVlc3RDb3VudFNjYWxpbmdcIiwge1xuICAgICAgICBzY2FsZUluQ29vbGRvd246IHRoaXMuc2NhbGVJbkNvb2xkb3duLFxuICAgICAgICBzY2FsZU91dENvb2xkb3duOiB0aGlzLnNjYWxlT3V0Q29vbGRvd24sXG4gICAgICAgIHRhcmdldEdyb3VwLFxuICAgICAgICByZXF1ZXN0c1BlclRhcmdldDogcHJvcHMuc2NhbGVSZXF1ZXN0UGVyVGFyZ2V0LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgdGFyZ2V0R3JvdXBDb25kaXRpb25zOiBMaXN0ZW5lckNvbmRpdGlvbltdID0gW107XG4gICAgdGFyZ2V0R3JvdXBDb25kaXRpb25zLnB1c2goTGlzdGVuZXJDb25kaXRpb24ucGF0aFBhdHRlcm5zKHByb3BzLnBhdGhQYXR0ZXJuID8/IFtcIi8qXCJdKSk7XG4gICAgaWYgKHByb3BzLmRvbWFpbk5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGFyZ2V0R3JvdXBDb25kaXRpb25zLnB1c2goTGlzdGVuZXJDb25kaXRpb24uaG9zdEhlYWRlcnMoW3Byb3BzLmRvbWFpbk5hbWVdKSk7XG4gICAgfVxuXG4gICAgbGV0IGxvYWRCYWxhbmNlcjogSUFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyO1xuICAgIGlmICh0eXBlb2YgcHJvcHMubG9hZEJhbGFuY2VyID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBpZiAocHJvcHMubG9hZEJhbGFuY2VyLnN0YXJ0c1dpdGgoXCJhcm46XCIpKSB7XG4gICAgICAgIGxvYWRCYWxhbmNlciA9IEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyLmZyb21Mb29rdXAodGhpcywgXCJMb2FkQmFsYW5jZXJcIiwge1xuICAgICAgICAgIGxvYWRCYWxhbmNlckFybjogcHJvcHMubG9hZEJhbGFuY2VyXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9hZEJhbGFuY2VyID0gQXBwbGljYXRpb25Mb2FkQmFsYW5jZXIuZnJvbUxvb2t1cCh0aGlzLCBcIkxvYWRCYWxhbmNlclwiLCB7XG4gICAgICAgICAgbG9hZEJhbGFuY2VyVGFnczoge1xuICAgICAgICAgICAgTmFtZTogcHJvcHMubG9hZEJhbGFuY2VyXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbG9hZEJhbGFuY2VyID0gcHJvcHMubG9hZEJhbGFuY2VyO1xuICAgIH1cblxuICAgIGNvbnN0IGxpc3RlbmVyID0gQXBwbGljYXRpb25MaXN0ZW5lci5mcm9tTG9va3VwKHRoaXMsIFwiTGlzdGVuZXJcIiwge1xuICAgICAgbG9hZEJhbGFuY2VyQXJuOiBsb2FkQmFsYW5jZXIubG9hZEJhbGFuY2VyQXJuLFxuICAgICAgbGlzdGVuZXJQcm90b2NvbDogcHJvcHMubGlzdGVuZXJQcm90b2NvbCA/PyBBcHBsaWNhdGlvblByb3RvY29sLkhUVFBTXG4gICAgfSk7XG5cbiAgICBsaXN0ZW5lci5hZGRUYXJnZXRHcm91cHMoYCR7aWR9VGFyZ2V0R3JvdXBzYCwge1xuICAgICAgdGFyZ2V0R3JvdXBzOiBbdGFyZ2V0R3JvdXBdLFxuICAgICAgY29uZGl0aW9uczogdGFyZ2V0R3JvdXBDb25kaXRpb25zLFxuICAgICAgcHJpb3JpdHk6IHByb3BzLnRhcmdldEdyb3VwUHJpb3JpdHkgPz8gMVxuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLmRvbWFpblpvbmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5kb21haW5OYW1lID0gRG9tYWluTmFtZS5mcm9tRnFkbihwcm9wcy5kb21haW5OYW1lLCBwcm9wcy5kb21haW5ab25lKTtcbiAgICAgIHRoaXMucm91dGU1M1JlY29yZCA9IHRoaXMuZG9tYWluTmFtZS5jcmVhdGVBUmVjb3JkKHRoaXMsXG4gICAgICAgIFJlY29yZFRhcmdldC5mcm9tQWxpYXMobmV3IExvYWRCYWxhbmNlclRhcmdldChsb2FkQmFsYW5jZXIpKSk7XG4gICAgfVxuXG4gICAgdGhpcy5sb2FkQmFsYW5jZXIgPSBsb2FkQmFsYW5jZXI7XG4gICAgdGhpcy5saXN0ZW5lciA9IGxpc3RlbmVyO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,246 @@
1
+ import { Construct } from "constructs";
2
+ import { CapacityProviderStrategy, ContainerImage, CpuArchitecture, DeploymentControllerType, FargatePlatformVersion, FargateService, FargateTaskDefinition, ICluster, LogDriver, Protocol, ScalableTaskCount, Secret } from "aws-cdk-lib/aws-ecs";
3
+ import { LogConfiguration } from "./log-configuration";
4
+ import { SubnetSelection } from "aws-cdk-lib/aws-ec2";
5
+ import { LogGroup } from "aws-cdk-lib/aws-logs";
6
+ import { Duration } from "aws-cdk-lib";
7
+ import { BasicStepScalingPolicyProps } from "aws-cdk-lib/aws-autoscaling";
8
+ import { IMetric } from "aws-cdk-lib/aws-cloudwatch";
9
+ import { ScalingSchedule } from "aws-cdk-lib/aws-applicationautoscaling";
10
+ /**
11
+ * Properties for StandardFargateService.
12
+ */
13
+ export interface StandardFargateServiceProps {
14
+ /**
15
+ * The CPU allocated to the task.
16
+ *
17
+ * @default - 200
18
+ */
19
+ readonly cpu?: number;
20
+ /**
21
+ * The memory allocated to the task.
22
+ *
23
+ * @default - 4096
24
+ */
25
+ readonly memoryLimitMiB?: number;
26
+ /**
27
+ * Optional ephemeral storage allocated to the task.
28
+ *
29
+ * @default - 20
30
+ */
31
+ readonly ephemeralStorageGiB?: number;
32
+ /**
33
+ * CPU architecture to use for the task
34
+ *
35
+ * @default - CpuArchitecture.ARM64
36
+ */
37
+ readonly cpuArchitecture?: CpuArchitecture;
38
+ /**
39
+ * Log configuration for this service.
40
+ */
41
+ readonly logConfiguration?: LogConfiguration;
42
+ /**
43
+ * Enables X-Ray for this service.
44
+ *
45
+ * @default - true
46
+ */
47
+ readonly enableXray?: boolean;
48
+ /**
49
+ * Enables the ability to push custom metrics to CloudWatch from the service.
50
+ *
51
+ * @default - true
52
+ */
53
+ readonly enablePublishMetrics?: boolean;
54
+ /**
55
+ * The cluster to place services in.
56
+ */
57
+ readonly cluster: ICluster;
58
+ /**
59
+ * The container port.
60
+ *
61
+ * @default 8080
62
+ */
63
+ readonly port?: number;
64
+ /**
65
+ * Whether the port is TCP or UDP.
66
+ *
67
+ * @default Protocol.TCP
68
+ */
69
+ readonly protocol?: Protocol;
70
+ /**
71
+ * Container image to deploy in this service.
72
+ */
73
+ readonly image: ContainerImage;
74
+ /**
75
+ * Subnets to put the service in. If this is left empty, subnet type PRIVATE_WITH_EGRESS is used.
76
+ */
77
+ readonly vpcSubnets?: SubnetSelection;
78
+ /**
79
+ * Environment variables to pass to this service.
80
+ */
81
+ readonly environment?: Record<string, string>;
82
+ /**
83
+ * A key/value map of labels to add to the container.
84
+ */
85
+ readonly dockerLabels?: Record<string, string>;
86
+ /**
87
+ * The secret environment variables to pass to the container.
88
+ */
89
+ readonly secrets?: Record<string, Secret>;
90
+ /**
91
+ * The maximum number of tasks, specified as a percentage of the Amazon ECS
92
+ * service's DesiredCount value, that can run in a service during a
93
+ * deployment.
94
+ *
95
+ * @default - 200
96
+ */
97
+ readonly maxHealthyPercent?: number;
98
+ /**
99
+ * The minimum number of tasks, specified as a percentage of
100
+ * the Amazon ECS service's DesiredCount value, that must
101
+ * continue to run and remain healthy during a deployment.
102
+ *
103
+ * @default - 100
104
+ */
105
+ readonly minHealthyPercent?: number;
106
+ /**
107
+ * Enable rollback on deployment failure
108
+ *
109
+ * @default - true
110
+ */
111
+ readonly enableRollback?: boolean;
112
+ /**
113
+ * Specifies which deployment controller to use for the service
114
+ *
115
+ * @default - DeploymentControllerType.ECS
116
+ */
117
+ readonly deploymentControllerType?: DeploymentControllerType;
118
+ /**
119
+ * Whether to enable the ability to execute into a container
120
+ *
121
+ * @default - true
122
+ */
123
+ readonly enableExecuteCommand?: boolean;
124
+ /**
125
+ * The platform version on which to run your service.
126
+ *
127
+ * @default - FargatePlatformVersion.LATEST
128
+ */
129
+ readonly platformVersion?: FargatePlatformVersion;
130
+ /**
131
+ * Whether to assign a public IP address to the containers.
132
+ *
133
+ * @default - false
134
+ */
135
+ readonly assignPublicIp?: boolean;
136
+ /**
137
+ * Specifies whether to enable Amazon ECS managed tags for the tasks within the service
138
+ *
139
+ * @default - true
140
+ */
141
+ readonly enableECSManagedTags?: boolean;
142
+ /**
143
+ * The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started.
144
+ *
145
+ * @default - Duration.seconds(30)
146
+ */
147
+ readonly healthCheckGracePeriod?: Duration;
148
+ /**
149
+ * Desired count for this service. If not set, defaults to minCapacity.
150
+ *
151
+ * @default - minCapacity
152
+ */
153
+ readonly desiredCount?: number;
154
+ /**
155
+ * Minimum capacity to scale to.
156
+ *
157
+ * @default - 1
158
+ */
159
+ readonly minCapacity?: number;
160
+ /**
161
+ * Maximum capacity to scale to.
162
+ *
163
+ * @default - 2
164
+ */
165
+ readonly maxCapacity?: number;
166
+ /**
167
+ * Period after a scale in activity completes before another scale in activity can start.
168
+ *
169
+ * @default - Duration.seconds(10)
170
+ */
171
+ readonly scaleInCooldown?: Duration;
172
+ /**
173
+ * Period after a scale out activity completes before another scale out activity can start.
174
+ *
175
+ * @default - Duration.seconds(60)
176
+ */
177
+ readonly scaleOutCooldown?: Duration;
178
+ /**
179
+ * The target value for CPU utilization across all tasks in the service.
180
+ * Set this to 0 to disable CPU scaling.
181
+ *
182
+ * @default - 60
183
+ */
184
+ readonly scaleCpuTargetUtilizationPercent?: number;
185
+ /**
186
+ * The target value for memory utilization across all tasks in the service.
187
+ * Disabled by default.
188
+ */
189
+ readonly scaleMemoryTargetUtilizationPercent?: number;
190
+ /**
191
+ * Capacity weight for the FARGATE capacity provider. Default is to not use capacity providers.
192
+ */
193
+ readonly capacityWeight?: number;
194
+ /**
195
+ * The minimum number of tasks to run on the FARGATE capacity provider. Default is to not use capacity providers.
196
+ */
197
+ readonly capacityBase?: number;
198
+ /**
199
+ * Capacity weight for the FARGATE_SPOT capacity provider. Default is to not use capacity providers.
200
+ */
201
+ readonly spotCapacityWeight?: number;
202
+ /**
203
+ * The minimum number of tasks to run on the FARGATE_SPOT capacity provider. Default is to not use capacity providers.
204
+ */
205
+ readonly spotCapacityBase?: number;
206
+ }
207
+ /**
208
+ * Standard class for creating a FargateService. It's recommended to use the StandardApplicationFargateService or
209
+ * StandardNetworkFargateService instead of this class.
210
+ */
211
+ export declare class StandardFargateService extends Construct {
212
+ readonly taskDefinition: FargateTaskDefinition;
213
+ readonly logGroup?: LogGroup;
214
+ readonly service: FargateService;
215
+ readonly port: number;
216
+ readonly scaling: ScalableTaskCount;
217
+ readonly scaleInCooldown: Duration;
218
+ readonly scaleOutCooldown: Duration;
219
+ protected resolveLogGroup(scope: Construct, props: StandardFargateServiceProps): LogGroup | undefined;
220
+ protected resolveLogDriver(scope: Construct, props: StandardFargateServiceProps, logGroup: LogGroup | undefined): LogDriver | undefined;
221
+ protected resolveVpcSubnets(scope: Construct, props: StandardFargateServiceProps): SubnetSelection;
222
+ protected resolvedCapacityProviderStrategies(props: StandardFargateServiceProps): CapacityProviderStrategy[] | undefined;
223
+ constructor(scope: Construct, id: string, props: StandardFargateServiceProps);
224
+ /**
225
+ * Helper method to conduct scaling based on tracking custom metrics.
226
+ *
227
+ * @param id the id to give the scaling
228
+ * @param metric the metric to track
229
+ * @param targetValue the target value
230
+ */
231
+ scaleToTrackCustomMetric(id: string, metric: IMetric, targetValue: number): void;
232
+ /**
233
+ * Convenience method to scale based on a metric.
234
+ *
235
+ * @param id the id to give the scaling policy
236
+ * @param props scaling properties
237
+ */
238
+ scaleOnMetric(id: string, props: BasicStepScalingPolicyProps): void;
239
+ /**
240
+ * Convenience method to scale based on a schedule.
241
+ *
242
+ * @param id the id to give the scaling policy
243
+ * @param props scaling properties
244
+ */
245
+ scaleOnSchedule(id: string, props: ScalingSchedule): void;
246
+ }