cdk-nextjs 0.0.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.
Files changed (125) hide show
  1. package/.jsii +13811 -0
  2. package/.prettierrc +0 -0
  3. package/API.md +9694 -0
  4. package/LICENSE +202 -0
  5. package/README.md +137 -0
  6. package/THIRD-PARTY-LICENSES.md +31 -0
  7. package/assets/lambdas/assets-deployment/assets-deployment.lambda/assets-deployment.Dockerfile +18 -0
  8. package/assets/lambdas/assets-deployment/assets-deployment.lambda/index.js +8831 -0
  9. package/assets/lambdas/revalidate/revalidate.lambda/index.js +67 -0
  10. package/assets/lambdas/sign-fn-url/sign-fn-url.lambda/index.js +2002 -0
  11. package/examples/README.md +14 -0
  12. package/lib/common.d.ts +23 -0
  13. package/lib/common.js +28 -0
  14. package/lib/generated-structs/OptionalApplicationLoadBalancedTaskImageOptions.d.ts +106 -0
  15. package/lib/generated-structs/OptionalApplicationLoadBalancedTaskImageOptions.js +3 -0
  16. package/lib/generated-structs/OptionalCloudFrontFunctionProps.d.ts +43 -0
  17. package/lib/generated-structs/OptionalCloudFrontFunctionProps.js +3 -0
  18. package/lib/generated-structs/OptionalClusterProps.d.ts +49 -0
  19. package/lib/generated-structs/OptionalClusterProps.js +3 -0
  20. package/lib/generated-structs/OptionalDistributionProps.d.ts +155 -0
  21. package/lib/generated-structs/OptionalDistributionProps.js +3 -0
  22. package/lib/generated-structs/OptionalDockerImageAssetProps.d.ts +124 -0
  23. package/lib/generated-structs/OptionalDockerImageAssetProps.js +3 -0
  24. package/lib/generated-structs/OptionalDockerImageFunctionProps.d.ts +399 -0
  25. package/lib/generated-structs/OptionalDockerImageFunctionProps.js +3 -0
  26. package/lib/generated-structs/OptionalEdgeFunctionProps.d.ts +428 -0
  27. package/lib/generated-structs/OptionalEdgeFunctionProps.js +3 -0
  28. package/lib/generated-structs/OptionalFunctionProps.d.ts +422 -0
  29. package/lib/generated-structs/OptionalFunctionProps.js +3 -0
  30. package/lib/generated-structs/OptionalFunctionUrlProps.d.ts +30 -0
  31. package/lib/generated-structs/OptionalFunctionUrlProps.js +3 -0
  32. package/lib/generated-structs/OptionalNextjsAssetsDeploymentProps.d.ts +45 -0
  33. package/lib/generated-structs/OptionalNextjsAssetsDeploymentProps.js +3 -0
  34. package/lib/generated-structs/OptionalNextjsBuildProps.d.ts +30 -0
  35. package/lib/generated-structs/OptionalNextjsBuildProps.js +3 -0
  36. package/lib/generated-structs/OptionalNextjsContainersProps.d.ts +43 -0
  37. package/lib/generated-structs/OptionalNextjsContainersProps.js +3 -0
  38. package/lib/generated-structs/OptionalNextjsDistributionProps.d.ts +50 -0
  39. package/lib/generated-structs/OptionalNextjsDistributionProps.js +3 -0
  40. package/lib/generated-structs/OptionalNextjsFileSystemProps.d.ts +15 -0
  41. package/lib/generated-structs/OptionalNextjsFileSystemProps.js +3 -0
  42. package/lib/generated-structs/OptionalNextjsInvalidationProps.d.ts +17 -0
  43. package/lib/generated-structs/OptionalNextjsInvalidationProps.js +3 -0
  44. package/lib/generated-structs/OptionalNextjsVpcProps.d.ts +21 -0
  45. package/lib/generated-structs/OptionalNextjsVpcProps.js +3 -0
  46. package/lib/generated-structs/OptionalS3OriginProps.d.ts +64 -0
  47. package/lib/generated-structs/OptionalS3OriginProps.js +3 -0
  48. package/lib/generated-structs/OptionalVpcProps.d.ts +224 -0
  49. package/lib/generated-structs/OptionalVpcProps.js +3 -0
  50. package/lib/index.d.ts +35 -0
  51. package/lib/index.js +32 -0
  52. package/lib/lambdas/assets-deployment/assets-deployment-function.d.ts +13 -0
  53. package/lib/lambdas/assets-deployment/assets-deployment-function.js +23 -0
  54. package/lib/lambdas/assets-deployment/assets-deployment.lambda.d.ts +2 -0
  55. package/lib/lambdas/assets-deployment/assets-deployment.lambda.js +62 -0
  56. package/lib/lambdas/assets-deployment/common.d.ts +8 -0
  57. package/lib/lambdas/assets-deployment/common.js +32 -0
  58. package/lib/lambdas/assets-deployment/fs-to-fs.d.ts +2 -0
  59. package/lib/lambdas/assets-deployment/fs-to-fs.js +9 -0
  60. package/lib/lambdas/assets-deployment/fs-to-s3.d.ts +2 -0
  61. package/lib/lambdas/assets-deployment/fs-to-s3.js +45 -0
  62. package/lib/lambdas/assets-deployment/prune-s3.d.ts +15 -0
  63. package/lib/lambdas/assets-deployment/prune-s3.js +42 -0
  64. package/lib/lambdas/assets-deployment/s3.d.ts +2 -0
  65. package/lib/lambdas/assets-deployment/s3.js +7 -0
  66. package/lib/lambdas/assets-deployment/utils.d.ts +18 -0
  67. package/lib/lambdas/assets-deployment/utils.js +35 -0
  68. package/lib/lambdas/revalidate/revalidate-function.d.ts +13 -0
  69. package/lib/lambdas/revalidate/revalidate-function.js +23 -0
  70. package/lib/lambdas/revalidate/revalidate.lambda.d.ts +2 -0
  71. package/lib/lambdas/revalidate/revalidate.lambda.js +53 -0
  72. package/lib/lambdas/sign-fn-url/sign-fn-url-function.d.ts +13 -0
  73. package/lib/lambdas/sign-fn-url/sign-fn-url-function.js +23 -0
  74. package/lib/lambdas/sign-fn-url/sign-fn-url.lambda.d.ts +9 -0
  75. package/lib/lambdas/sign-fn-url/sign-fn-url.lambda.js +35 -0
  76. package/lib/lambdas/sign-fn-url/sign-request.d.ts +28 -0
  77. package/lib/lambdas/sign-fn-url/sign-request.js +119 -0
  78. package/lib/lambdas/sign-fn-url/sign-request.test.d.ts +1 -0
  79. package/lib/lambdas/sign-fn-url/sign-request.test.js +129 -0
  80. package/lib/nextjs-assets-deployment.d.ts +116 -0
  81. package/lib/nextjs-assets-deployment.js +93 -0
  82. package/lib/nextjs-build/add-cache-handler.d.ts +1 -0
  83. package/lib/nextjs-build/add-cache-handler.js +23 -0
  84. package/lib/nextjs-build/add-cache-handler.mjs +18 -0
  85. package/lib/nextjs-build/builder.Dockerfile +29 -0
  86. package/lib/nextjs-build/cache-handler.cjs +21513 -0
  87. package/lib/nextjs-build/cache-handler.d.ts +6 -0
  88. package/lib/nextjs-build/cache-handler.js +22 -0
  89. package/lib/nextjs-build/global-containers.Dockerfile +45 -0
  90. package/lib/nextjs-build/global-functions.Dockerfile +46 -0
  91. package/lib/nextjs-build/nextjs-build.d.ts +150 -0
  92. package/lib/nextjs-build/nextjs-build.js +220 -0
  93. package/lib/nextjs-build/regional-containers.Dockerfile +45 -0
  94. package/lib/nextjs-build/symlink-full-route-cache.d.ts +1 -0
  95. package/lib/nextjs-build/symlink-full-route-cache.js +37 -0
  96. package/lib/nextjs-build/symlink-full-route-cache.mjs +23 -0
  97. package/lib/nextjs-compute/nextjs-compute-base-props.d.ts +8 -0
  98. package/lib/nextjs-compute/nextjs-compute-base-props.js +3 -0
  99. package/lib/nextjs-compute/nextjs-containers.d.ts +43 -0
  100. package/lib/nextjs-compute/nextjs-containers.js +149 -0
  101. package/lib/nextjs-compute/nextjs-functions.d.ts +23 -0
  102. package/lib/nextjs-compute/nextjs-functions.js +57 -0
  103. package/lib/nextjs-distribution.d.ts +120 -0
  104. package/lib/nextjs-distribution.js +362 -0
  105. package/lib/nextjs-file-system.d.ts +42 -0
  106. package/lib/nextjs-file-system.js +74 -0
  107. package/lib/nextjs-invalidation.d.ts +19 -0
  108. package/lib/nextjs-invalidation.js +52 -0
  109. package/lib/nextjs-revalidation.d.ts +30 -0
  110. package/lib/nextjs-revalidation.js +65 -0
  111. package/lib/nextjs-static-assets.d.ts +21 -0
  112. package/lib/nextjs-static-assets.js +32 -0
  113. package/lib/nextjs-vpc.d.ts +42 -0
  114. package/lib/nextjs-vpc.js +64 -0
  115. package/lib/root-constructs/nextjs-base-overrides.d.ts +26 -0
  116. package/lib/root-constructs/nextjs-base-overrides.js +3 -0
  117. package/lib/root-constructs/nextjs-base-props.d.ts +56 -0
  118. package/lib/root-constructs/nextjs-base-props.js +3 -0
  119. package/lib/root-constructs/nextjs-global-containers.d.ts +74 -0
  120. package/lib/root-constructs/nextjs-global-containers.js +125 -0
  121. package/lib/root-constructs/nextjs-global-functions.d.ts +76 -0
  122. package/lib/root-constructs/nextjs-global-functions.js +131 -0
  123. package/lib/root-constructs/nextjs-regional-containers.d.ts +43 -0
  124. package/lib/root-constructs/nextjs-regional-containers.js +92 -0
  125. package/package.json +165 -0
@@ -0,0 +1,14 @@
1
+ # cdk-nextjs Example App
2
+
3
+ Example Next.js app based on [App Playground](https://app-router.vercel.app/) with various configurations to showcase features of cdk-nextjs.
4
+
5
+ ## Setup
6
+
7
+ 1. Follow setup steps in parent README [Contributing](../README.md#contributing) section
8
+ 1. Install dependencies: `cd examples && pnpm i`
9
+ 1. `cd cloudfront-lambda` for example. Tryout any of the other examples as well.
10
+ 1. `cdk deploy --require-approval never`
11
+
12
+ # Notes on app-playground
13
+
14
+ The app-playground app comes from https://github.com/vercel/app-playground. In order to incorporate upstream changes, follow instructions [here](https://stackoverflow.com/a/24816134/9658768). Don't want to use git submodule because we need to make some modifications to code like add `output: 'standalone'` and including in pnpm monorepo.
@@ -0,0 +1,23 @@
1
+ export declare enum NextjsType {
2
+ GLOBAL_CONTAINERS = "GLOBAL_CONTAINERS",
3
+ GLOBAL_FUNCTIONS = "GLOBAL_FUNCTIONS",
4
+ REGIONAL_CONTAINERS = "REGIONAL_CONTAINERS"
5
+ }
6
+ /**
7
+ * Directory of Next.js Data Cache in EFS
8
+ *
9
+ * /mnt/cdk-nextjs-cache/data-cache
10
+ */
11
+ export declare const DATA_CACHE_DIR = "data-cache";
12
+ /**
13
+ * Directory of Next.js Image Cache in EFS
14
+ *
15
+ * /mnt/cdk-nextjs-cache/image-cache
16
+ */
17
+ export declare const IMAGE_CACHE_DIR = "image-cache";
18
+ /**
19
+ * Directory of Next.js Full Route Cache in EFS
20
+ *
21
+ * /mnt/cdk-nextjs-cache/full-route-cache
22
+ */
23
+ export declare const FULL_ROUTE_CACHE_DIR = "full-route-cache";
package/lib/common.js ADDED
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FULL_ROUTE_CACHE_DIR = exports.IMAGE_CACHE_DIR = exports.DATA_CACHE_DIR = exports.NextjsType = void 0;
4
+ var NextjsType;
5
+ (function (NextjsType) {
6
+ NextjsType["GLOBAL_CONTAINERS"] = "GLOBAL_CONTAINERS";
7
+ NextjsType["GLOBAL_FUNCTIONS"] = "GLOBAL_FUNCTIONS";
8
+ NextjsType["REGIONAL_CONTAINERS"] = "REGIONAL_CONTAINERS";
9
+ })(NextjsType || (exports.NextjsType = NextjsType = {}));
10
+ /**
11
+ * Directory of Next.js Data Cache in EFS
12
+ *
13
+ * /mnt/cdk-nextjs-cache/data-cache
14
+ */
15
+ exports.DATA_CACHE_DIR = "data-cache";
16
+ /**
17
+ * Directory of Next.js Image Cache in EFS
18
+ *
19
+ * /mnt/cdk-nextjs-cache/image-cache
20
+ */
21
+ exports.IMAGE_CACHE_DIR = "image-cache";
22
+ /**
23
+ * Directory of Next.js Full Route Cache in EFS
24
+ *
25
+ * /mnt/cdk-nextjs-cache/full-route-cache
26
+ */
27
+ exports.FULL_ROUTE_CACHE_DIR = "full-route-cache";
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFZLFVBSVg7QUFKRCxXQUFZLFVBQVU7SUFDcEIscURBQXVDLENBQUE7SUFDdkMsbURBQXFDLENBQUE7SUFDckMseURBQTJDLENBQUE7QUFDN0MsQ0FBQyxFQUpXLFVBQVUsMEJBQVYsVUFBVSxRQUlyQjtBQUVEOzs7O0dBSUc7QUFDVSxRQUFBLGNBQWMsR0FBRyxZQUFZLENBQUM7QUFDM0M7Ozs7R0FJRztBQUNVLFFBQUEsZUFBZSxHQUFHLGFBQWEsQ0FBQztBQUM3Qzs7OztHQUlHO0FBQ1UsUUFBQSxvQkFBb0IsR0FBRyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIE5leHRqc1R5cGUge1xuICBHTE9CQUxfQ09OVEFJTkVSUyA9IFwiR0xPQkFMX0NPTlRBSU5FUlNcIixcbiAgR0xPQkFMX0ZVTkNUSU9OUyA9IFwiR0xPQkFMX0ZVTkNUSU9OU1wiLFxuICBSRUdJT05BTF9DT05UQUlORVJTID0gXCJSRUdJT05BTF9DT05UQUlORVJTXCIsXG59XG5cbi8qKlxuICogRGlyZWN0b3J5IG9mIE5leHQuanMgRGF0YSBDYWNoZSBpbiBFRlNcbiAqXG4gKiAvbW50L2Nkay1uZXh0anMtY2FjaGUvZGF0YS1jYWNoZVxuICovXG5leHBvcnQgY29uc3QgREFUQV9DQUNIRV9ESVIgPSBcImRhdGEtY2FjaGVcIjtcbi8qKlxuICogRGlyZWN0b3J5IG9mIE5leHQuanMgSW1hZ2UgQ2FjaGUgaW4gRUZTXG4gKlxuICogL21udC9jZGstbmV4dGpzLWNhY2hlL2ltYWdlLWNhY2hlXG4gKi9cbmV4cG9ydCBjb25zdCBJTUFHRV9DQUNIRV9ESVIgPSBcImltYWdlLWNhY2hlXCI7XG4vKipcbiAqIERpcmVjdG9yeSBvZiBOZXh0LmpzIEZ1bGwgUm91dGUgQ2FjaGUgaW4gRUZTXG4gKlxuICogL21udC9jZGstbmV4dGpzLWNhY2hlL2Z1bGwtcm91dGUtY2FjaGVcbiAqL1xuZXhwb3J0IGNvbnN0IEZVTExfUk9VVEVfQ0FDSEVfRElSID0gXCJmdWxsLXJvdXRlLWNhY2hlXCI7XG4iXX0=
@@ -0,0 +1,106 @@
1
+ import type { aws_ecs, aws_iam } from 'aws-cdk-lib';
2
+ /**
3
+ * OptionalApplicationLoadBalancedTaskImageOptions
4
+ */
5
+ export interface OptionalApplicationLoadBalancedTaskImageOptions {
6
+ /**
7
+ * The name of the task IAM role that grants containers in the task permission to call AWS APIs on your behalf.
8
+ * @default - A task role is automatically created for you.
9
+ * @stability stable
10
+ */
11
+ readonly taskRole?: aws_iam.IRole;
12
+ /**
13
+ * The secret to expose to the container as an environment variable.
14
+ * @default - No secret environment variables.
15
+ * @stability stable
16
+ */
17
+ readonly secrets?: Record<string, aws_ecs.Secret>;
18
+ /**
19
+ * The log driver to use.
20
+ * @default - AwsLogDriver if enableLogging is true
21
+ * @stability stable
22
+ */
23
+ readonly logDriver?: aws_ecs.LogDriver;
24
+ /**
25
+ * The name of a family that this task definition is registered to.
26
+ * A family groups multiple versions of a task definition.
27
+ * @default - Automatically generated name.
28
+ * @stability stable
29
+ */
30
+ readonly family?: string;
31
+ /**
32
+ * The name of the task execution IAM role that grants the Amazon ECS container agent permission to call AWS APIs on your behalf.
33
+ * @default - No value
34
+ * @stability stable
35
+ */
36
+ readonly executionRole?: aws_iam.IRole;
37
+ /**
38
+ * The environment variables to pass to the container.
39
+ * @default - No environment variables.
40
+ * @stability stable
41
+ */
42
+ readonly environment?: Record<string, string>;
43
+ /**
44
+ * The entry point that's passed to the container.
45
+ * This parameter maps to `Entrypoint` in the [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) section
46
+ * of the [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) and the `--entrypoint` option to
47
+ * [docker run](https://docs.docker.com/engine/reference/commandline/run/).
48
+ *
49
+ * For more information about the Docker `ENTRYPOINT` parameter, see https://docs.docker.com/engine/reference/builder/#entrypoint.
50
+ * @default none
51
+ * @stability stable
52
+ */
53
+ readonly entryPoint?: Array<string>;
54
+ /**
55
+ * Flag to indicate whether to enable logging.
56
+ * @default true
57
+ * @stability stable
58
+ */
59
+ readonly enableLogging?: boolean;
60
+ /**
61
+ * A key/value map of labels to add to the container.
62
+ * @default - No labels.
63
+ * @stability stable
64
+ */
65
+ readonly dockerLabels?: Record<string, string>;
66
+ /**
67
+ * The port number on the container that is bound to the user-specified or automatically assigned host port.
68
+ * If you are using containers in a task with the awsvpc or host network mode, exposed ports should be specified using containerPort.
69
+ * If you are using containers in a task with the bridge network mode and you specify a container port and not a host port,
70
+ * your container automatically receives a host port in the ephemeral port range.
71
+ *
72
+ * Port mappings that are automatically assigned in this way do not count toward the 100 reserved ports limit of a container instance.
73
+ *
74
+ * For more information, see
75
+ * [hostPort](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PortMapping.html#ECS-Type-PortMapping-hostPort).
76
+ * @default 80
77
+ * @stability stable
78
+ */
79
+ readonly containerPort?: number;
80
+ /**
81
+ * The container name value to be specified in the task definition.
82
+ * @default - none
83
+ * @stability stable
84
+ */
85
+ readonly containerName?: string;
86
+ /**
87
+ * The command that's passed to the container.
88
+ * If there are multiple arguments, make sure that each argument is a separated string in the array.
89
+ *
90
+ * This parameter maps to `Cmd` in the [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) section
91
+ * of the [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) and the `COMMAND` parameter to
92
+ * [docker run](https://docs.docker.com/engine/reference/commandline/run/).
93
+ *
94
+ * For more information about the Docker `CMD` parameter, see https://docs.docker.com/engine/reference/builder/#cmd.
95
+ * @default none
96
+ * @stability stable
97
+ */
98
+ readonly command?: Array<string>;
99
+ /**
100
+ * The image used to start a container.
101
+ * Image or taskDefinition must be specified, not both.
102
+ * @default - none
103
+ * @stability stable
104
+ */
105
+ readonly image?: aws_ecs.ContainerImage;
106
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0aW9uYWxBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZFRhc2tJbWFnZU9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZFRhc2tJbWFnZU9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIH5+IEdlbmVyYXRlZCBieSBwcm9qZW4uIFRvIG1vZGlmeSwgZWRpdCAucHJvamVucmMudHMgYW5kIHJ1biBcInBucG0gZGx4IHByb2plblwiLlxuaW1wb3J0IHR5cGUgeyBhd3NfZWNzLCBhd3NfaWFtIH0gZnJvbSAnYXdzLWNkay1saWInO1xuXG4vKipcbiAqIE9wdGlvbmFsQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRUYXNrSW1hZ2VPcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9uYWxBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZFRhc2tJbWFnZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHRhc2sgSUFNIHJvbGUgdGhhdCBncmFudHMgY29udGFpbmVycyBpbiB0aGUgdGFzayBwZXJtaXNzaW9uIHRvIGNhbGwgQVdTIEFQSXMgb24geW91ciBiZWhhbGYuXG4gICAqIEBkZWZhdWx0IC0gQSB0YXNrIHJvbGUgaXMgYXV0b21hdGljYWxseSBjcmVhdGVkIGZvciB5b3UuXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSB0YXNrUm9sZT86IGF3c19pYW0uSVJvbGU7XG4gIC8qKlxuICAgKiBUaGUgc2VjcmV0IHRvIGV4cG9zZSB0byB0aGUgY29udGFpbmVyIGFzIGFuIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKiBAZGVmYXVsdCAtIE5vIHNlY3JldCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRzPzogUmVjb3JkPHN0cmluZywgYXdzX2Vjcy5TZWNyZXQ+O1xuICAvKipcbiAgICogVGhlIGxvZyBkcml2ZXIgdG8gdXNlLlxuICAgKiBAZGVmYXVsdCAtIEF3c0xvZ0RyaXZlciBpZiBlbmFibGVMb2dnaW5nIGlzIHRydWVcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGxvZ0RyaXZlcj86IGF3c19lY3MuTG9nRHJpdmVyO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgYSBmYW1pbHkgdGhhdCB0aGlzIHRhc2sgZGVmaW5pdGlvbiBpcyByZWdpc3RlcmVkIHRvLlxuICAgKiBBIGZhbWlseSBncm91cHMgbXVsdGlwbGUgdmVyc2lvbnMgb2YgYSB0YXNrIGRlZmluaXRpb24uXG4gICAqIEBkZWZhdWx0IC0gQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbmFtZS5cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGZhbWlseT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB0YXNrIGV4ZWN1dGlvbiBJQU0gcm9sZSB0aGF0IGdyYW50cyB0aGUgQW1hem9uIEVDUyBjb250YWluZXIgYWdlbnQgcGVybWlzc2lvbiB0byBjYWxsIEFXUyBBUElzIG9uIHlvdXIgYmVoYWxmLlxuICAgKiBAZGVmYXVsdCAtIE5vIHZhbHVlXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBleGVjdXRpb25Sb2xlPzogYXdzX2lhbS5JUm9sZTtcbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gcGFzcyB0byB0aGUgY29udGFpbmVyLlxuICAgKiBAZGVmYXVsdCAtIE5vIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqXG4gICAqIFRoZSBlbnRyeSBwb2ludCB0aGF0J3MgcGFzc2VkIHRvIHRoZSBjb250YWluZXIuXG4gICAqIFRoaXMgcGFyYW1ldGVyIG1hcHMgdG8gYEVudHJ5cG9pbnRgIGluIHRoZSBbQ3JlYXRlIGEgY29udGFpbmVyXShodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvYXBpL3YxLjM4LyNvcGVyYXRpb24vQ29udGFpbmVyQ3JlYXRlKSBzZWN0aW9uXG4gICAqIG9mIHRoZSBbRG9ja2VyIFJlbW90ZSBBUEldKGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9hcGkvdjEuMzgvKSBhbmQgdGhlIGAtLWVudHJ5cG9pbnRgIG9wdGlvbiB0b1xuICAgKiBbZG9ja2VyIHJ1bl0oaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ydW4vKS5cbiAgICpcbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIERvY2tlciBgRU5UUllQT0lOVGAgcGFyYW1ldGVyLCBzZWUgaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9idWlsZGVyLyNlbnRyeXBvaW50LlxuICAgKiBAZGVmYXVsdCBub25lXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBlbnRyeVBvaW50PzogQXJyYXk8c3RyaW5nPjtcbiAgLyoqXG4gICAqIEZsYWcgdG8gaW5kaWNhdGUgd2hldGhlciB0byBlbmFibGUgbG9nZ2luZy5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlTG9nZ2luZz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBIGtleS92YWx1ZSBtYXAgb2YgbGFiZWxzIHRvIGFkZCB0byB0aGUgY29udGFpbmVyLlxuICAgKiBAZGVmYXVsdCAtIE5vIGxhYmVscy5cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlckxhYmVscz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKlxuICAgKiBUaGUgcG9ydCBudW1iZXIgb24gdGhlIGNvbnRhaW5lciB0aGF0IGlzIGJvdW5kIHRvIHRoZSB1c2VyLXNwZWNpZmllZCBvciBhdXRvbWF0aWNhbGx5IGFzc2lnbmVkIGhvc3QgcG9ydC5cbiAgICogSWYgeW91IGFyZSB1c2luZyBjb250YWluZXJzIGluIGEgdGFzayB3aXRoIHRoZSBhd3N2cGMgb3IgaG9zdCBuZXR3b3JrIG1vZGUsIGV4cG9zZWQgcG9ydHMgc2hvdWxkIGJlIHNwZWNpZmllZCB1c2luZyBjb250YWluZXJQb3J0LlxuICAgKiBJZiB5b3UgYXJlIHVzaW5nIGNvbnRhaW5lcnMgaW4gYSB0YXNrIHdpdGggdGhlIGJyaWRnZSBuZXR3b3JrIG1vZGUgYW5kIHlvdSBzcGVjaWZ5IGEgY29udGFpbmVyIHBvcnQgYW5kIG5vdCBhIGhvc3QgcG9ydCxcbiAgICogeW91ciBjb250YWluZXIgYXV0b21hdGljYWxseSByZWNlaXZlcyBhIGhvc3QgcG9ydCBpbiB0aGUgZXBoZW1lcmFsIHBvcnQgcmFuZ2UuXG4gICAqXG4gICAqIFBvcnQgbWFwcGluZ3MgdGhhdCBhcmUgYXV0b21hdGljYWxseSBhc3NpZ25lZCBpbiB0aGlzIHdheSBkbyBub3QgY291bnQgdG93YXJkIHRoZSAxMDAgcmVzZXJ2ZWQgcG9ydHMgbGltaXQgb2YgYSBjb250YWluZXIgaW5zdGFuY2UuXG4gICAqXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbiAgICogW2hvc3RQb3J0XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uRUNTL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1BvcnRNYXBwaW5nLmh0bWwjRUNTLVR5cGUtUG9ydE1hcHBpbmctaG9zdFBvcnQpLlxuICAgKiBAZGVmYXVsdCA4MFxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgY29udGFpbmVyUG9ydD86IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBjb250YWluZXIgbmFtZSB2YWx1ZSB0byBiZSBzcGVjaWZpZWQgaW4gdGhlIHRhc2sgZGVmaW5pdGlvbi5cbiAgICogQGRlZmF1bHQgLSBub25lXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBjb250YWluZXJOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGNvbW1hbmQgdGhhdCdzIHBhc3NlZCB0byB0aGUgY29udGFpbmVyLlxuICAgKiBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgYXJndW1lbnRzLCBtYWtlIHN1cmUgdGhhdCBlYWNoIGFyZ3VtZW50IGlzIGEgc2VwYXJhdGVkIHN0cmluZyBpbiB0aGUgYXJyYXkuXG4gICAqXG4gICAqIFRoaXMgcGFyYW1ldGVyIG1hcHMgdG8gYENtZGAgaW4gdGhlIFtDcmVhdGUgYSBjb250YWluZXJdKGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9hcGkvdjEuMzgvI29wZXJhdGlvbi9Db250YWluZXJDcmVhdGUpIHNlY3Rpb25cbiAgICogb2YgdGhlIFtEb2NrZXIgUmVtb3RlIEFQSV0oaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL2FwaS92MS4zOC8pIGFuZCB0aGUgYENPTU1BTkRgIHBhcmFtZXRlciB0b1xuICAgKiBbZG9ja2VyIHJ1bl0oaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ydW4vKS5cbiAgICpcbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIERvY2tlciBgQ01EYCBwYXJhbWV0ZXIsIHNlZSBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvI2NtZC5cbiAgICogQGRlZmF1bHQgbm9uZVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWFuZD86IEFycmF5PHN0cmluZz47XG4gIC8qKlxuICAgKiBUaGUgaW1hZ2UgdXNlZCB0byBzdGFydCBhIGNvbnRhaW5lci5cbiAgICogSW1hZ2Ugb3IgdGFza0RlZmluaXRpb24gbXVzdCBiZSBzcGVjaWZpZWQsIG5vdCBib3RoLlxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlPzogYXdzX2Vjcy5Db250YWluZXJJbWFnZTtcbn1cbiJdfQ==
@@ -0,0 +1,43 @@
1
+ import type { aws_cloudfront } from 'aws-cdk-lib';
2
+ /**
3
+ * OptionalCloudFrontFunctionProps
4
+ */
5
+ export interface OptionalCloudFrontFunctionProps {
6
+ /**
7
+ * The runtime environment for the function.
8
+ * @default FunctionRuntime.JS_1_0 (unless `keyValueStore` is specified, then `FunctionRuntime.JS_2_0`)
9
+ * @stability stable
10
+ */
11
+ readonly runtime?: aws_cloudfront.FunctionRuntime;
12
+ /**
13
+ * The Key Value Store to associate with this function.
14
+ * In order to associate a Key Value Store, the `runtime` must be
15
+ * `cloudfront-js-2.0` or newer.
16
+ * @default - no key value store is associated
17
+ * @stability stable
18
+ */
19
+ readonly keyValueStore?: aws_cloudfront.IKeyValueStore;
20
+ /**
21
+ * A name to identify the function.
22
+ * @default - generated from the `id`
23
+ * @stability stable
24
+ */
25
+ readonly functionName?: string;
26
+ /**
27
+ * A comment to describe the function.
28
+ * @default - same as `functionName`
29
+ * @stability stable
30
+ */
31
+ readonly comment?: string;
32
+ /**
33
+ * A flag that determines whether to automatically publish the function to the LIVE stage when it’s created.
34
+ * @default - true
35
+ * @stability stable
36
+ */
37
+ readonly autoPublish?: boolean;
38
+ /**
39
+ * The source code of the function.
40
+ * @stability stable
41
+ */
42
+ readonly code?: aws_cloudfront.FunctionCode;
43
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0aW9uYWxDbG91ZEZyb250RnVuY3Rpb25Qcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbENsb3VkRnJvbnRGdW5jdGlvblByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB+fiBHZW5lcmF0ZWQgYnkgcHJvamVuLiBUbyBtb2RpZnksIGVkaXQgLnByb2plbnJjLnRzIGFuZCBydW4gXCJwbnBtIGRseCBwcm9qZW5cIi5cbmltcG9ydCB0eXBlIHsgYXdzX2Nsb3VkZnJvbnQgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5cbi8qKlxuICogT3B0aW9uYWxDbG91ZEZyb250RnVuY3Rpb25Qcm9wc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvbmFsQ2xvdWRGcm9udEZ1bmN0aW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIHJ1bnRpbWUgZW52aXJvbm1lbnQgZm9yIHRoZSBmdW5jdGlvbi5cbiAgICogQGRlZmF1bHQgRnVuY3Rpb25SdW50aW1lLkpTXzFfMCAodW5sZXNzIGBrZXlWYWx1ZVN0b3JlYCBpcyBzcGVjaWZpZWQsIHRoZW4gYEZ1bmN0aW9uUnVudGltZS5KU18yXzBgKVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgcnVudGltZT86IGF3c19jbG91ZGZyb250LkZ1bmN0aW9uUnVudGltZTtcbiAgLyoqXG4gICAqIFRoZSBLZXkgVmFsdWUgU3RvcmUgdG8gYXNzb2NpYXRlIHdpdGggdGhpcyBmdW5jdGlvbi5cbiAgICogSW4gb3JkZXIgdG8gYXNzb2NpYXRlIGEgS2V5IFZhbHVlIFN0b3JlLCB0aGUgYHJ1bnRpbWVgIG11c3QgYmVcbiAgICogYGNsb3VkZnJvbnQtanMtMi4wYCBvciBuZXdlci5cbiAgICogQGRlZmF1bHQgLSBubyBrZXkgdmFsdWUgc3RvcmUgaXMgYXNzb2NpYXRlZFxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkga2V5VmFsdWVTdG9yZT86IGF3c19jbG91ZGZyb250LklLZXlWYWx1ZVN0b3JlO1xuICAvKipcbiAgICogQSBuYW1lIHRvIGlkZW50aWZ5IHRoZSBmdW5jdGlvbi5cbiAgICogQGRlZmF1bHQgLSBnZW5lcmF0ZWQgZnJvbSB0aGUgYGlkYFxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb25OYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogQSBjb21tZW50IHRvIGRlc2NyaWJlIHRoZSBmdW5jdGlvbi5cbiAgICogQGRlZmF1bHQgLSBzYW1lIGFzIGBmdW5jdGlvbk5hbWVgXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBjb21tZW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogQSBmbGFnIHRoYXQgZGV0ZXJtaW5lcyB3aGV0aGVyIHRvIGF1dG9tYXRpY2FsbHkgcHVibGlzaCB0aGUgZnVuY3Rpb24gdG8gdGhlIExJVkUgc3RhZ2Ugd2hlbiBpdOKAmXMgY3JlYXRlZC5cbiAgICogQGRlZmF1bHQgLSB0cnVlXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBhdXRvUHVibGlzaD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgc291cmNlIGNvZGUgb2YgdGhlIGZ1bmN0aW9uLlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgY29kZT86IGF3c19jbG91ZGZyb250LkZ1bmN0aW9uQ29kZTtcbn1cbiJdfQ==
@@ -0,0 +1,49 @@
1
+ import type { aws_ec2, aws_ecs } from 'aws-cdk-lib';
2
+ /**
3
+ * OptionalClusterProps
4
+ */
5
+ export interface OptionalClusterProps {
6
+ /**
7
+ * The VPC where your ECS instances will be running or your ENIs will be deployed.
8
+ * @default - creates a new VPC with two AZs
9
+ * @stability stable
10
+ */
11
+ readonly vpc?: aws_ec2.IVpc;
12
+ /**
13
+ * The execute command configuration for the cluster.
14
+ * @default - no configuration will be provided.
15
+ * @stability stable
16
+ */
17
+ readonly executeCommandConfiguration?: aws_ecs.ExecuteCommandConfiguration;
18
+ /**
19
+ * Whether to enable Fargate Capacity Providers.
20
+ * @default false
21
+ * @stability stable
22
+ */
23
+ readonly enableFargateCapacityProviders?: boolean;
24
+ /**
25
+ * The service discovery namespace created in this cluster.
26
+ * @default - no service discovery namespace created, you can use `addDefaultCloudMapNamespace` to add a
27
+ default service discovery namespace later.
28
+ * @stability stable
29
+ */
30
+ readonly defaultCloudMapNamespace?: aws_ecs.CloudMapNamespaceOptions;
31
+ /**
32
+ * If true CloudWatch Container Insights will be enabled for the cluster.
33
+ * @default - Container Insights will be disabled for this cluster.
34
+ * @stability stable
35
+ */
36
+ readonly containerInsights?: boolean;
37
+ /**
38
+ * The name for the cluster.
39
+ * @default CloudFormation-generated name
40
+ * @stability stable
41
+ */
42
+ readonly clusterName?: string;
43
+ /**
44
+ * The ec2 capacity to add to the cluster.
45
+ * @default - no EC2 capacity will be added, you can use `addCapacity` to add capacity later.
46
+ * @stability stable
47
+ */
48
+ readonly capacity?: aws_ecs.AddCapacityOptions;
49
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0aW9uYWxDbHVzdGVyUHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxDbHVzdGVyUHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIH5+IEdlbmVyYXRlZCBieSBwcm9qZW4uIFRvIG1vZGlmeSwgZWRpdCAucHJvamVucmMudHMgYW5kIHJ1biBcInBucG0gZGx4IHByb2plblwiLlxuaW1wb3J0IHR5cGUgeyBhd3NfZWMyLCBhd3NfZWNzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuXG4vKipcbiAqIE9wdGlvbmFsQ2x1c3RlclByb3BzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9uYWxDbHVzdGVyUHJvcHMge1xuICAvKipcbiAgICogVGhlIFZQQyB3aGVyZSB5b3VyIEVDUyBpbnN0YW5jZXMgd2lsbCBiZSBydW5uaW5nIG9yIHlvdXIgRU5JcyB3aWxsIGJlIGRlcGxveWVkLlxuICAgKiBAZGVmYXVsdCAtIGNyZWF0ZXMgYSBuZXcgVlBDIHdpdGggdHdvIEFac1xuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdnBjPzogYXdzX2VjMi5JVnBjO1xuICAvKipcbiAgICogVGhlIGV4ZWN1dGUgY29tbWFuZCBjb25maWd1cmF0aW9uIGZvciB0aGUgY2x1c3Rlci5cbiAgICogQGRlZmF1bHQgLSBubyBjb25maWd1cmF0aW9uIHdpbGwgYmUgcHJvdmlkZWQuXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBleGVjdXRlQ29tbWFuZENvbmZpZ3VyYXRpb24/OiBhd3NfZWNzLkV4ZWN1dGVDb21tYW5kQ29uZmlndXJhdGlvbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIEZhcmdhdGUgQ2FwYWNpdHkgUHJvdmlkZXJzLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlRmFyZ2F0ZUNhcGFjaXR5UHJvdmlkZXJzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlIGRpc2NvdmVyeSBuYW1lc3BhY2UgY3JlYXRlZCBpbiB0aGlzIGNsdXN0ZXIuXG4gICAqIEBkZWZhdWx0IC0gbm8gc2VydmljZSBkaXNjb3ZlcnkgbmFtZXNwYWNlIGNyZWF0ZWQsIHlvdSBjYW4gdXNlIGBhZGREZWZhdWx0Q2xvdWRNYXBOYW1lc3BhY2VgIHRvIGFkZCBhXG5kZWZhdWx0IHNlcnZpY2UgZGlzY292ZXJ5IG5hbWVzcGFjZSBsYXRlci5cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRDbG91ZE1hcE5hbWVzcGFjZT86IGF3c19lY3MuQ2xvdWRNYXBOYW1lc3BhY2VPcHRpb25zO1xuICAvKipcbiAgICogSWYgdHJ1ZSBDbG91ZFdhdGNoIENvbnRhaW5lciBJbnNpZ2h0cyB3aWxsIGJlIGVuYWJsZWQgZm9yIHRoZSBjbHVzdGVyLlxuICAgKiBAZGVmYXVsdCAtIENvbnRhaW5lciBJbnNpZ2h0cyB3aWxsIGJlIGRpc2FibGVkIGZvciB0aGlzIGNsdXN0ZXIuXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBjb250YWluZXJJbnNpZ2h0cz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBmb3IgdGhlIGNsdXN0ZXIuXG4gICAqIEBkZWZhdWx0IENsb3VkRm9ybWF0aW9uLWdlbmVyYXRlZCBuYW1lXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBjbHVzdGVyTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBlYzIgY2FwYWNpdHkgdG8gYWRkIHRvIHRoZSBjbHVzdGVyLlxuICAgKiBAZGVmYXVsdCAtIG5vIEVDMiBjYXBhY2l0eSB3aWxsIGJlIGFkZGVkLCB5b3UgY2FuIHVzZSBgYWRkQ2FwYWNpdHlgIHRvIGFkZCBjYXBhY2l0eSBsYXRlci5cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGNhcGFjaXR5PzogYXdzX2Vjcy5BZGRDYXBhY2l0eU9wdGlvbnM7XG59XG4iXX0=
@@ -0,0 +1,155 @@
1
+ import type { aws_certificatemanager, aws_cloudfront, aws_s3 } from 'aws-cdk-lib';
2
+ /**
3
+ * OptionalDistributionProps
4
+ */
5
+ export interface OptionalDistributionProps {
6
+ /**
7
+ * Unique identifier that specifies the AWS WAF web ACL to associate with this CloudFront distribution.
8
+ * To specify a web ACL created using the latest version of AWS WAF, use the ACL ARN, for example
9
+ * `arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a`.
10
+ * To specify a web ACL created using AWS WAF Classic, use the ACL ID, for example `473e64fd-f30b-4765-81a0-62ad96dd167a`.
11
+ * @default - No AWS Web Application Firewall web access control list (web ACL).
12
+ * @stability stable
13
+ */
14
+ readonly webAclId?: string;
15
+ /**
16
+ * The SSL method CloudFront will use for your distribution.
17
+ * Server Name Indication (SNI) - is an extension to the TLS computer networking protocol by which a client indicates
18
+ * which hostname it is attempting to connect to at the start of the handshaking process. This allows a server to present
19
+ * multiple certificates on the same IP address and TCP port number and hence allows multiple secure (HTTPS) websites
20
+ * (or any other service over TLS) to be served by the same IP address without requiring all those sites to use the same certificate.
21
+ *
22
+ * CloudFront can use SNI to host multiple distributions on the same IP - which a large majority of clients will support.
23
+ *
24
+ * If your clients cannot support SNI however - CloudFront can use dedicated IPs for your distribution - but there is a prorated monthly charge for
25
+ * using this feature. By default, we use SNI - but you can optionally enable dedicated IPs (VIP).
26
+ *
27
+ * See the CloudFront SSL for more details about pricing : https://aws.amazon.com/cloudfront/custom-ssl-domains/
28
+ * @default SSLMethod.SNI
29
+ * @stability stable
30
+ */
31
+ readonly sslSupportMethod?: aws_cloudfront.SSLMethod;
32
+ /**
33
+ * Whether to enable additional CloudWatch metrics.
34
+ * @default false
35
+ * @stability stable
36
+ */
37
+ readonly publishAdditionalMetrics?: boolean;
38
+ /**
39
+ * The price class that corresponds with the maximum price that you want to pay for CloudFront service.
40
+ * If you specify PriceClass_All, CloudFront responds to requests for your objects from all CloudFront edge locations.
41
+ * If you specify a price class other than PriceClass_All, CloudFront serves your objects from the CloudFront edge location
42
+ * that has the lowest latency among the edge locations in your price class.
43
+ * @default PriceClass.PRICE_CLASS_ALL
44
+ * @stability stable
45
+ */
46
+ readonly priceClass?: aws_cloudfront.PriceClass;
47
+ /**
48
+ * The minimum version of the SSL protocol that you want CloudFront to use for HTTPS connections.
49
+ * CloudFront serves your objects only to browsers or devices that support at
50
+ * least the SSL version that you specify.
51
+ * @default - SecurityPolicyProtocol.TLS_V1_2_2021 if the '@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021' feature flag is set; otherwise, SecurityPolicyProtocol.TLS_V1_2_2019.
52
+ * @stability stable
53
+ */
54
+ readonly minimumProtocolVersion?: aws_cloudfront.SecurityPolicyProtocol;
55
+ /**
56
+ * Specifies whether you want CloudFront to include cookies in access logs.
57
+ * @default false
58
+ * @stability stable
59
+ */
60
+ readonly logIncludesCookies?: boolean;
61
+ /**
62
+ * An optional string that you want CloudFront to prefix to the access log filenames for this distribution.
63
+ * @default - no prefix
64
+ * @stability stable
65
+ */
66
+ readonly logFilePrefix?: string;
67
+ /**
68
+ * The Amazon S3 bucket to store the access logs in.
69
+ * Make sure to set `objectOwnership` to `s3.ObjectOwnership.OBJECT_WRITER` in your custom bucket.
70
+ * @default - A bucket is created if `enableLogging` is true
71
+ * @stability stable
72
+ */
73
+ readonly logBucket?: aws_s3.IBucket;
74
+ /**
75
+ * Specify the maximum HTTP version that you want viewers to use to communicate with CloudFront.
76
+ * For viewers and CloudFront to use HTTP/2, viewers must support TLS 1.2 or later, and must support server name identification (SNI).
77
+ * @default HttpVersion.HTTP2
78
+ * @stability stable
79
+ */
80
+ readonly httpVersion?: aws_cloudfront.HttpVersion;
81
+ /**
82
+ * Controls the countries in which your content is distributed.
83
+ * @default - No geographic restrictions
84
+ * @stability stable
85
+ */
86
+ readonly geoRestriction?: aws_cloudfront.GeoRestriction;
87
+ /**
88
+ * How CloudFront should handle requests that are not successful (e.g., PageNotFound).
89
+ * @default - No custom error responses.
90
+ * @stability stable
91
+ */
92
+ readonly errorResponses?: Array<aws_cloudfront.ErrorResponse>;
93
+ /**
94
+ * Enable access logging for the distribution.
95
+ * @default - false, unless `logBucket` is specified.
96
+ * @stability stable
97
+ */
98
+ readonly enableLogging?: boolean;
99
+ /**
100
+ * Whether CloudFront will respond to IPv6 DNS requests with an IPv6 address.
101
+ * If you specify false, CloudFront responds to IPv6 DNS requests with the DNS response code NOERROR and with no IP addresses.
102
+ * This allows viewers to submit a second request, for an IPv4 address for your distribution.
103
+ * @default true
104
+ * @stability stable
105
+ */
106
+ readonly enableIpv6?: boolean;
107
+ /**
108
+ * Enable or disable the distribution.
109
+ * @default true
110
+ * @stability stable
111
+ */
112
+ readonly enabled?: boolean;
113
+ /**
114
+ * Alternative domain names for this distribution.
115
+ * If you want to use your own domain name, such as www.example.com, instead of the cloudfront.net domain name,
116
+ * you can add an alternate domain name to your distribution. If you attach a certificate to the distribution,
117
+ * you should add (at least one of) the domain names of the certificate to this list.
118
+ *
119
+ * When you want to move a domain name between distributions, you can associate a certificate without specifying any domain names.
120
+ * For more information, see the _Moving an alternate domain name to a different distribution_ section in the README.
121
+ * @default - The distribution will only support the default generated name (e.g., d111111abcdef8.cloudfront.net)
122
+ * @stability stable
123
+ */
124
+ readonly domainNames?: Array<string>;
125
+ /**
126
+ * The object that you want CloudFront to request from your origin (for example, index.html) when a viewer requests the root URL for your distribution. If no default object is set, the request goes to the origin's root (e.g., example.com/).
127
+ * @default - no default root object
128
+ * @stability stable
129
+ */
130
+ readonly defaultRootObject?: string;
131
+ /**
132
+ * Any comments you want to include about the distribution.
133
+ * @default - no comment
134
+ * @stability stable
135
+ */
136
+ readonly comment?: string;
137
+ /**
138
+ * A certificate to associate with the distribution.
139
+ * The certificate must be located in N. Virginia (us-east-1).
140
+ * @default - the CloudFront wildcard certificate (*.cloudfront.net) will be used.
141
+ * @stability stable
142
+ */
143
+ readonly certificate?: aws_certificatemanager.ICertificate;
144
+ /**
145
+ * Additional behaviors for the distribution, mapped by the pathPattern that specifies which requests to apply the behavior to.
146
+ * @default - no additional behaviors are added.
147
+ * @stability stable
148
+ */
149
+ readonly additionalBehaviors?: Record<string, aws_cloudfront.BehaviorOptions>;
150
+ /**
151
+ * The default behavior for the distribution.
152
+ * @stability stable
153
+ */
154
+ readonly defaultBehavior?: aws_cloudfront.BehaviorOptions;
155
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0aW9uYWxEaXN0cmlidXRpb25Qcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbERpc3RyaWJ1dGlvblByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB+fiBHZW5lcmF0ZWQgYnkgcHJvamVuLiBUbyBtb2RpZnksIGVkaXQgLnByb2plbnJjLnRzIGFuZCBydW4gXCJwbnBtIGRseCBwcm9qZW5cIi5cbmltcG9ydCB0eXBlIHsgYXdzX2NlcnRpZmljYXRlbWFuYWdlciwgYXdzX2Nsb3VkZnJvbnQsIGF3c19zMyB9IGZyb20gJ2F3cy1jZGstbGliJztcblxuLyoqXG4gKiBPcHRpb25hbERpc3RyaWJ1dGlvblByb3BzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9uYWxEaXN0cmlidXRpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBVbmlxdWUgaWRlbnRpZmllciB0aGF0IHNwZWNpZmllcyB0aGUgQVdTIFdBRiB3ZWIgQUNMIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24uXG4gICAqIFRvIHNwZWNpZnkgYSB3ZWIgQUNMIGNyZWF0ZWQgdXNpbmcgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIEFXUyBXQUYsIHVzZSB0aGUgQUNMIEFSTiwgZm9yIGV4YW1wbGVcbiAgICogYGFybjphd3M6d2FmdjI6dXMtZWFzdC0xOjEyMzQ1Njc4OTAxMjpnbG9iYWwvd2ViYWNsL0V4YW1wbGVXZWJBQ0wvNDczZTY0ZmQtZjMwYi00NzY1LTgxYTAtNjJhZDk2ZGQxNjdhYC5cbiAgICogVG8gc3BlY2lmeSBhIHdlYiBBQ0wgY3JlYXRlZCB1c2luZyBBV1MgV0FGIENsYXNzaWMsIHVzZSB0aGUgQUNMIElELCBmb3IgZXhhbXBsZSBgNDczZTY0ZmQtZjMwYi00NzY1LTgxYTAtNjJhZDk2ZGQxNjdhYC5cbiAgICogQGRlZmF1bHQgLSBObyBBV1MgV2ViIEFwcGxpY2F0aW9uIEZpcmV3YWxsIHdlYiBhY2Nlc3MgY29udHJvbCBsaXN0ICh3ZWIgQUNMKS5cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHdlYkFjbElkPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIFNTTCBtZXRob2QgQ2xvdWRGcm9udCB3aWxsIHVzZSBmb3IgeW91ciBkaXN0cmlidXRpb24uXG4gICAqIFNlcnZlciBOYW1lIEluZGljYXRpb24gKFNOSSkgLSBpcyBhbiBleHRlbnNpb24gdG8gdGhlIFRMUyBjb21wdXRlciBuZXR3b3JraW5nIHByb3RvY29sIGJ5IHdoaWNoIGEgY2xpZW50IGluZGljYXRlc1xuICAgKiB3aGljaCBob3N0bmFtZSBpdCBpcyBhdHRlbXB0aW5nIHRvIGNvbm5lY3QgdG8gYXQgdGhlIHN0YXJ0IG9mIHRoZSBoYW5kc2hha2luZyBwcm9jZXNzLiBUaGlzIGFsbG93cyBhIHNlcnZlciB0byBwcmVzZW50XG4gICAqIG11bHRpcGxlIGNlcnRpZmljYXRlcyBvbiB0aGUgc2FtZSBJUCBhZGRyZXNzIGFuZCBUQ1AgcG9ydCBudW1iZXIgYW5kIGhlbmNlIGFsbG93cyBtdWx0aXBsZSBzZWN1cmUgKEhUVFBTKSB3ZWJzaXRlc1xuICAgKiAob3IgYW55IG90aGVyIHNlcnZpY2Ugb3ZlciBUTFMpIHRvIGJlIHNlcnZlZCBieSB0aGUgc2FtZSBJUCBhZGRyZXNzIHdpdGhvdXQgcmVxdWlyaW5nIGFsbCB0aG9zZSBzaXRlcyB0byB1c2UgdGhlIHNhbWUgY2VydGlmaWNhdGUuXG4gICAqXG4gICAqIENsb3VkRnJvbnQgY2FuIHVzZSBTTkkgdG8gaG9zdCBtdWx0aXBsZSBkaXN0cmlidXRpb25zIG9uIHRoZSBzYW1lIElQIC0gd2hpY2ggYSBsYXJnZSBtYWpvcml0eSBvZiBjbGllbnRzIHdpbGwgc3VwcG9ydC5cbiAgICpcbiAgICogSWYgeW91ciBjbGllbnRzIGNhbm5vdCBzdXBwb3J0IFNOSSBob3dldmVyIC0gQ2xvdWRGcm9udCBjYW4gdXNlIGRlZGljYXRlZCBJUHMgZm9yIHlvdXIgZGlzdHJpYnV0aW9uIC0gYnV0IHRoZXJlIGlzIGEgcHJvcmF0ZWQgbW9udGhseSBjaGFyZ2UgZm9yXG4gICAqIHVzaW5nIHRoaXMgZmVhdHVyZS4gQnkgZGVmYXVsdCwgd2UgdXNlIFNOSSAtIGJ1dCB5b3UgY2FuIG9wdGlvbmFsbHkgZW5hYmxlIGRlZGljYXRlZCBJUHMgKFZJUCkuXG4gICAqXG4gICAqIFNlZSB0aGUgQ2xvdWRGcm9udCBTU0wgZm9yIG1vcmUgZGV0YWlscyBhYm91dCBwcmljaW5nIDogaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9jbG91ZGZyb250L2N1c3RvbS1zc2wtZG9tYWlucy9cbiAgICogQGRlZmF1bHQgU1NMTWV0aG9kLlNOSVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgc3NsU3VwcG9ydE1ldGhvZD86IGF3c19jbG91ZGZyb250LlNTTE1ldGhvZDtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIGFkZGl0aW9uYWwgQ2xvdWRXYXRjaCBtZXRyaWNzLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGlzaEFkZGl0aW9uYWxNZXRyaWNzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBwcmljZSBjbGFzcyB0aGF0IGNvcnJlc3BvbmRzIHdpdGggdGhlIG1heGltdW0gcHJpY2UgdGhhdCB5b3Ugd2FudCB0byBwYXkgZm9yIENsb3VkRnJvbnQgc2VydmljZS5cbiAgICogSWYgeW91IHNwZWNpZnkgUHJpY2VDbGFzc19BbGwsIENsb3VkRnJvbnQgcmVzcG9uZHMgdG8gcmVxdWVzdHMgZm9yIHlvdXIgb2JqZWN0cyBmcm9tIGFsbCBDbG91ZEZyb250IGVkZ2UgbG9jYXRpb25zLlxuICAgKiBJZiB5b3Ugc3BlY2lmeSBhIHByaWNlIGNsYXNzIG90aGVyIHRoYW4gUHJpY2VDbGFzc19BbGwsIENsb3VkRnJvbnQgc2VydmVzIHlvdXIgb2JqZWN0cyBmcm9tIHRoZSBDbG91ZEZyb250IGVkZ2UgbG9jYXRpb25cbiAgICogdGhhdCBoYXMgdGhlIGxvd2VzdCBsYXRlbmN5IGFtb25nIHRoZSBlZGdlIGxvY2F0aW9ucyBpbiB5b3VyIHByaWNlIGNsYXNzLlxuICAgKiBAZGVmYXVsdCBQcmljZUNsYXNzLlBSSUNFX0NMQVNTX0FMTFxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJpY2VDbGFzcz86IGF3c19jbG91ZGZyb250LlByaWNlQ2xhc3M7XG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSB2ZXJzaW9uIG9mIHRoZSBTU0wgcHJvdG9jb2wgdGhhdCB5b3Ugd2FudCBDbG91ZEZyb250IHRvIHVzZSBmb3IgSFRUUFMgY29ubmVjdGlvbnMuXG4gICAqIENsb3VkRnJvbnQgc2VydmVzIHlvdXIgb2JqZWN0cyBvbmx5IHRvIGJyb3dzZXJzIG9yIGRldmljZXMgdGhhdCBzdXBwb3J0IGF0XG4gICAqIGxlYXN0IHRoZSBTU0wgdmVyc2lvbiB0aGF0IHlvdSBzcGVjaWZ5LlxuICAgKiBAZGVmYXVsdCAtIFNlY3VyaXR5UG9saWN5UHJvdG9jb2wuVExTX1YxXzJfMjAyMSBpZiB0aGUgJ0Bhd3MtY2RrL2F3cy1jbG91ZGZyb250OmRlZmF1bHRTZWN1cml0eVBvbGljeVRMU3YxLjJfMjAyMScgZmVhdHVyZSBmbGFnIGlzIHNldDsgb3RoZXJ3aXNlLCBTZWN1cml0eVBvbGljeVByb3RvY29sLlRMU19WMV8yXzIwMTkuXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBtaW5pbXVtUHJvdG9jb2xWZXJzaW9uPzogYXdzX2Nsb3VkZnJvbnQuU2VjdXJpdHlQb2xpY3lQcm90b2NvbDtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB3aGV0aGVyIHlvdSB3YW50IENsb3VkRnJvbnQgdG8gaW5jbHVkZSBjb29raWVzIGluIGFjY2VzcyBsb2dzLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9nSW5jbHVkZXNDb29raWVzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIHN0cmluZyB0aGF0IHlvdSB3YW50IENsb3VkRnJvbnQgdG8gcHJlZml4IHRvIHRoZSBhY2Nlc3MgbG9nIGZpbGVuYW1lcyBmb3IgdGhpcyBkaXN0cmlidXRpb24uXG4gICAqIEBkZWZhdWx0IC0gbm8gcHJlZml4XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBsb2dGaWxlUHJlZml4Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEFtYXpvbiBTMyBidWNrZXQgdG8gc3RvcmUgdGhlIGFjY2VzcyBsb2dzIGluLlxuICAgKiBNYWtlIHN1cmUgdG8gc2V0IGBvYmplY3RPd25lcnNoaXBgIHRvIGBzMy5PYmplY3RPd25lcnNoaXAuT0JKRUNUX1dSSVRFUmAgaW4geW91ciBjdXN0b20gYnVja2V0LlxuICAgKiBAZGVmYXVsdCAtIEEgYnVja2V0IGlzIGNyZWF0ZWQgaWYgYGVuYWJsZUxvZ2dpbmdgIGlzIHRydWVcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGxvZ0J1Y2tldD86IGF3c19zMy5JQnVja2V0O1xuICAvKipcbiAgICogU3BlY2lmeSB0aGUgbWF4aW11bSBIVFRQIHZlcnNpb24gdGhhdCB5b3Ugd2FudCB2aWV3ZXJzIHRvIHVzZSB0byBjb21tdW5pY2F0ZSB3aXRoIENsb3VkRnJvbnQuXG4gICAqIEZvciB2aWV3ZXJzIGFuZCBDbG91ZEZyb250IHRvIHVzZSBIVFRQLzIsIHZpZXdlcnMgbXVzdCBzdXBwb3J0IFRMUyAxLjIgb3IgbGF0ZXIsIGFuZCBtdXN0IHN1cHBvcnQgc2VydmVyIG5hbWUgaWRlbnRpZmljYXRpb24gKFNOSSkuXG4gICAqIEBkZWZhdWx0IEh0dHBWZXJzaW9uLkhUVFAyXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBodHRwVmVyc2lvbj86IGF3c19jbG91ZGZyb250Lkh0dHBWZXJzaW9uO1xuICAvKipcbiAgICogQ29udHJvbHMgdGhlIGNvdW50cmllcyBpbiB3aGljaCB5b3VyIGNvbnRlbnQgaXMgZGlzdHJpYnV0ZWQuXG4gICAqIEBkZWZhdWx0IC0gTm8gZ2VvZ3JhcGhpYyByZXN0cmljdGlvbnNcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGdlb1Jlc3RyaWN0aW9uPzogYXdzX2Nsb3VkZnJvbnQuR2VvUmVzdHJpY3Rpb247XG4gIC8qKlxuICAgKiBIb3cgQ2xvdWRGcm9udCBzaG91bGQgaGFuZGxlIHJlcXVlc3RzIHRoYXQgYXJlIG5vdCBzdWNjZXNzZnVsIChlLmcuLCBQYWdlTm90Rm91bmQpLlxuICAgKiBAZGVmYXVsdCAtIE5vIGN1c3RvbSBlcnJvciByZXNwb25zZXMuXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBlcnJvclJlc3BvbnNlcz86IEFycmF5PGF3c19jbG91ZGZyb250LkVycm9yUmVzcG9uc2U+O1xuICAvKipcbiAgICogRW5hYmxlIGFjY2VzcyBsb2dnaW5nIGZvciB0aGUgZGlzdHJpYnV0aW9uLlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlLCB1bmxlc3MgYGxvZ0J1Y2tldGAgaXMgc3BlY2lmaWVkLlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlTG9nZ2luZz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIENsb3VkRnJvbnQgd2lsbCByZXNwb25kIHRvIElQdjYgRE5TIHJlcXVlc3RzIHdpdGggYW4gSVB2NiBhZGRyZXNzLlxuICAgKiBJZiB5b3Ugc3BlY2lmeSBmYWxzZSwgQ2xvdWRGcm9udCByZXNwb25kcyB0byBJUHY2IEROUyByZXF1ZXN0cyB3aXRoIHRoZSBETlMgcmVzcG9uc2UgY29kZSBOT0VSUk9SIGFuZCB3aXRoIG5vIElQIGFkZHJlc3Nlcy5cbiAgICogVGhpcyBhbGxvd3Mgdmlld2VycyB0byBzdWJtaXQgYSBzZWNvbmQgcmVxdWVzdCwgZm9yIGFuIElQdjQgYWRkcmVzcyBmb3IgeW91ciBkaXN0cmlidXRpb24uXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZUlwdjY/OiBib29sZWFuO1xuICAvKipcbiAgICogRW5hYmxlIG9yIGRpc2FibGUgdGhlIGRpc3RyaWJ1dGlvbi5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBbHRlcm5hdGl2ZSBkb21haW4gbmFtZXMgZm9yIHRoaXMgZGlzdHJpYnV0aW9uLlxuICAgKiBJZiB5b3Ugd2FudCB0byB1c2UgeW91ciBvd24gZG9tYWluIG5hbWUsIHN1Y2ggYXMgd3d3LmV4YW1wbGUuY29tLCBpbnN0ZWFkIG9mIHRoZSBjbG91ZGZyb250Lm5ldCBkb21haW4gbmFtZSxcbiAgICogeW91IGNhbiBhZGQgYW4gYWx0ZXJuYXRlIGRvbWFpbiBuYW1lIHRvIHlvdXIgZGlzdHJpYnV0aW9uLiBJZiB5b3UgYXR0YWNoIGEgY2VydGlmaWNhdGUgdG8gdGhlIGRpc3RyaWJ1dGlvbixcbiAgICogeW91IHNob3VsZCBhZGQgKGF0IGxlYXN0IG9uZSBvZikgdGhlIGRvbWFpbiBuYW1lcyBvZiB0aGUgY2VydGlmaWNhdGUgdG8gdGhpcyBsaXN0LlxuICAgKlxuICAgKiBXaGVuIHlvdSB3YW50IHRvIG1vdmUgYSBkb21haW4gbmFtZSBiZXR3ZWVuIGRpc3RyaWJ1dGlvbnMsIHlvdSBjYW4gYXNzb2NpYXRlIGEgY2VydGlmaWNhdGUgd2l0aG91dCBzcGVjaWZ5aW5nIGFueSBkb21haW4gbmFtZXMuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIF9Nb3ZpbmcgYW4gYWx0ZXJuYXRlIGRvbWFpbiBuYW1lIHRvIGEgZGlmZmVyZW50IGRpc3RyaWJ1dGlvbl8gc2VjdGlvbiBpbiB0aGUgUkVBRE1FLlxuICAgKiBAZGVmYXVsdCAtIFRoZSBkaXN0cmlidXRpb24gd2lsbCBvbmx5IHN1cHBvcnQgdGhlIGRlZmF1bHQgZ2VuZXJhdGVkIG5hbWUgKGUuZy4sIGQxMTExMTFhYmNkZWY4LmNsb3VkZnJvbnQubmV0KVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluTmFtZXM/OiBBcnJheTxzdHJpbmc+O1xuICAvKipcbiAgICogVGhlIG9iamVjdCB0aGF0IHlvdSB3YW50IENsb3VkRnJvbnQgdG8gcmVxdWVzdCBmcm9tIHlvdXIgb3JpZ2luIChmb3IgZXhhbXBsZSwgaW5kZXguaHRtbCkgd2hlbiBhIHZpZXdlciByZXF1ZXN0cyB0aGUgcm9vdCBVUkwgZm9yIHlvdXIgZGlzdHJpYnV0aW9uLiBJZiBubyBkZWZhdWx0IG9iamVjdCBpcyBzZXQsIHRoZSByZXF1ZXN0IGdvZXMgdG8gdGhlIG9yaWdpbidzIHJvb3QgKGUuZy4sIGV4YW1wbGUuY29tLykuXG4gICAqIEBkZWZhdWx0IC0gbm8gZGVmYXVsdCByb290IG9iamVjdFxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdFJvb3RPYmplY3Q/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbnkgY29tbWVudHMgeW91IHdhbnQgdG8gaW5jbHVkZSBhYm91dCB0aGUgZGlzdHJpYnV0aW9uLlxuICAgKiBAZGVmYXVsdCAtIG5vIGNvbW1lbnRcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGNvbW1lbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIGNlcnRpZmljYXRlIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBkaXN0cmlidXRpb24uXG4gICAqIFRoZSBjZXJ0aWZpY2F0ZSBtdXN0IGJlIGxvY2F0ZWQgaW4gTi4gVmlyZ2luaWEgKHVzLWVhc3QtMSkuXG4gICAqIEBkZWZhdWx0IC0gdGhlIENsb3VkRnJvbnQgd2lsZGNhcmQgY2VydGlmaWNhdGUgKCouY2xvdWRmcm9udC5uZXQpIHdpbGwgYmUgdXNlZC5cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGNlcnRpZmljYXRlPzogYXdzX2NlcnRpZmljYXRlbWFuYWdlci5JQ2VydGlmaWNhdGU7XG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGJlaGF2aW9ycyBmb3IgdGhlIGRpc3RyaWJ1dGlvbiwgbWFwcGVkIGJ5IHRoZSBwYXRoUGF0dGVybiB0aGF0IHNwZWNpZmllcyB3aGljaCByZXF1ZXN0cyB0byBhcHBseSB0aGUgYmVoYXZpb3IgdG8uXG4gICAqIEBkZWZhdWx0IC0gbm8gYWRkaXRpb25hbCBiZWhhdmlvcnMgYXJlIGFkZGVkLlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbEJlaGF2aW9ycz86IFJlY29yZDxzdHJpbmcsIGF3c19jbG91ZGZyb250LkJlaGF2aW9yT3B0aW9ucz47XG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBiZWhhdmlvciBmb3IgdGhlIGRpc3RyaWJ1dGlvbi5cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRCZWhhdmlvcj86IGF3c19jbG91ZGZyb250LkJlaGF2aW9yT3B0aW9ucztcbn1cbiJdfQ==
@@ -0,0 +1,124 @@
1
+ import type { aws_ecr_assets, IgnoreMode, SymlinkFollowMode } from 'aws-cdk-lib';
2
+ /**
3
+ * OptionalDockerImageAssetProps
4
+ */
5
+ export interface OptionalDockerImageAssetProps {
6
+ /**
7
+ * The directory where the Dockerfile is stored.
8
+ * Any directory inside with a name that matches the CDK output folder (cdk.out by default) will be excluded from the asset
9
+ * @stability stable
10
+ */
11
+ readonly directory?: string;
12
+ /**
13
+ * Docker target to build to.
14
+ * @default - no target
15
+ * @stability stable
16
+ */
17
+ readonly target?: string;
18
+ /**
19
+ * Platform to build for.
20
+ * _Requires Docker Buildx_.
21
+ * @default - no platform specified (the current machine architecture will be used)
22
+ * @stability stable
23
+ */
24
+ readonly platform?: aws_ecr_assets.Platform;
25
+ /**
26
+ * Outputs to pass to the `docker build` command.
27
+ * @default - no outputs are passed to the build command (default outputs are used)
28
+ * @stability stable
29
+ */
30
+ readonly outputs?: Array<string>;
31
+ /**
32
+ * Networking mode for the RUN commands during build.
33
+ * Support docker API 1.25+.
34
+ * @default - no networking mode specified (the default networking mode `NetworkMode.DEFAULT` will be used)
35
+ * @stability stable
36
+ */
37
+ readonly networkMode?: aws_ecr_assets.NetworkMode;
38
+ /**
39
+ * Options to control which parameters are used to invalidate the asset hash.
40
+ * @default - hash all parameters
41
+ * @stability stable
42
+ */
43
+ readonly invalidation?: aws_ecr_assets.DockerImageAssetInvalidationOptions;
44
+ /**
45
+ * Path to the Dockerfile (relative to the directory).
46
+ * @default 'Dockerfile'
47
+ * @stability stable
48
+ */
49
+ readonly file?: string;
50
+ /**
51
+ * Cache to options to pass to the `docker build` command.
52
+ * @default - no cache to options are passed to the build command
53
+ * @stability stable
54
+ */
55
+ readonly cacheTo?: aws_ecr_assets.DockerCacheOption;
56
+ /**
57
+ * Cache from options to pass to the `docker build` command.
58
+ * @default - no cache from options are passed to the build command
59
+ * @stability stable
60
+ */
61
+ readonly cacheFrom?: Array<aws_ecr_assets.DockerCacheOption>;
62
+ /**
63
+ * Disable the cache and pass `--no-cache` to the `docker build` command.
64
+ * @default - cache is used
65
+ * @stability stable
66
+ */
67
+ readonly cacheDisabled?: boolean;
68
+ /**
69
+ * SSH agent socket or keys to pass to the `docker build` command.
70
+ * Docker BuildKit must be enabled to use the ssh flag
71
+ * @default - no --ssh flag
72
+ * @stability stable
73
+ */
74
+ readonly buildSsh?: string;
75
+ /**
76
+ * Build secrets.
77
+ * Docker BuildKit must be enabled to use build secrets.
78
+ * @default - no build secrets
79
+ * @stability stable
80
+ */
81
+ readonly buildSecrets?: Record<string, string>;
82
+ /**
83
+ * Build args to pass to the `docker build` command.
84
+ * Since Docker build arguments are resolved before deployment, keys and
85
+ * values cannot refer to unresolved tokens (such as `lambda.functionArn` or
86
+ * `queue.queueUrl`).
87
+ * @default - no build args are passed
88
+ * @stability stable
89
+ */
90
+ readonly buildArgs?: Record<string, string>;
91
+ /**
92
+ * Unique identifier of the docker image asset and its potential revisions.
93
+ * Required if using AppScopedStagingSynthesizer.
94
+ * @default - no asset name
95
+ * @stability stable
96
+ */
97
+ readonly assetName?: string;
98
+ /**
99
+ * Extra information to encode into the fingerprint (e.g. build instructions and other inputs).
100
+ * @default - hash is only based on source content
101
+ * @stability stable
102
+ */
103
+ readonly extraHash?: string;
104
+ /**
105
+ * The ignore behavior to use for `exclude` patterns.
106
+ * @default IgnoreMode.GLOB
107
+ * @stability stable
108
+ */
109
+ readonly ignoreMode?: IgnoreMode;
110
+ /**
111
+ * A strategy for how to handle symlinks.
112
+ * @default SymlinkFollowMode.NEVER
113
+ * @stability stable
114
+ */
115
+ readonly followSymlinks?: SymlinkFollowMode;
116
+ /**
117
+ * File paths matching the patterns will be excluded.
118
+ * See `ignoreMode` to set the matching behavior.
119
+ * Has no effect on Assets bundled using the `bundling` property.
120
+ * @default - nothing is excluded
121
+ * @stability stable
122
+ */
123
+ readonly exclude?: Array<string>;
124
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0aW9uYWxEb2NrZXJJbWFnZUFzc2V0UHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxEb2NrZXJJbWFnZUFzc2V0UHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIH5+IEdlbmVyYXRlZCBieSBwcm9qZW4uIFRvIG1vZGlmeSwgZWRpdCAucHJvamVucmMudHMgYW5kIHJ1biBcInBucG0gZGx4IHByb2plblwiLlxuaW1wb3J0IHR5cGUgeyBhd3NfZWNyX2Fzc2V0cywgSWdub3JlTW9kZSwgU3ltbGlua0ZvbGxvd01vZGUgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5cbi8qKlxuICogT3B0aW9uYWxEb2NrZXJJbWFnZUFzc2V0UHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcHRpb25hbERvY2tlckltYWdlQXNzZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBEb2NrZXJmaWxlIGlzIHN0b3JlZC5cbiAgICogQW55IGRpcmVjdG9yeSBpbnNpZGUgd2l0aCBhIG5hbWUgdGhhdCBtYXRjaGVzIHRoZSBDREsgb3V0cHV0IGZvbGRlciAoY2RrLm91dCBieSBkZWZhdWx0KSB3aWxsIGJlIGV4Y2x1ZGVkIGZyb20gdGhlIGFzc2V0XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBkaXJlY3Rvcnk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEb2NrZXIgdGFyZ2V0IHRvIGJ1aWxkIHRvLlxuICAgKiBAZGVmYXVsdCAtIG5vIHRhcmdldFxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0Pzogc3RyaW5nO1xuICAvKipcbiAgICogUGxhdGZvcm0gdG8gYnVpbGQgZm9yLlxuICAgKiBfUmVxdWlyZXMgRG9ja2VyIEJ1aWxkeF8uXG4gICAqIEBkZWZhdWx0IC0gbm8gcGxhdGZvcm0gc3BlY2lmaWVkICh0aGUgY3VycmVudCBtYWNoaW5lIGFyY2hpdGVjdHVyZSB3aWxsIGJlIHVzZWQpXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBwbGF0Zm9ybT86IGF3c19lY3JfYXNzZXRzLlBsYXRmb3JtO1xuICAvKipcbiAgICogT3V0cHV0cyB0byBwYXNzIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKiBAZGVmYXVsdCAtIG5vIG91dHB1dHMgYXJlIHBhc3NlZCB0byB0aGUgYnVpbGQgY29tbWFuZCAoZGVmYXVsdCBvdXRwdXRzIGFyZSB1c2VkKVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0cz86IEFycmF5PHN0cmluZz47XG4gIC8qKlxuICAgKiBOZXR3b3JraW5nIG1vZGUgZm9yIHRoZSBSVU4gY29tbWFuZHMgZHVyaW5nIGJ1aWxkLlxuICAgKiBTdXBwb3J0IGRvY2tlciBBUEkgMS4yNSsuXG4gICAqIEBkZWZhdWx0IC0gbm8gbmV0d29ya2luZyBtb2RlIHNwZWNpZmllZCAodGhlIGRlZmF1bHQgbmV0d29ya2luZyBtb2RlIGBOZXR3b3JrTW9kZS5ERUZBVUxUYCB3aWxsIGJlIHVzZWQpXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrTW9kZT86IGF3c19lY3JfYXNzZXRzLk5ldHdvcmtNb2RlO1xuICAvKipcbiAgICogT3B0aW9ucyB0byBjb250cm9sIHdoaWNoIHBhcmFtZXRlcnMgYXJlIHVzZWQgdG8gaW52YWxpZGF0ZSB0aGUgYXNzZXQgaGFzaC5cbiAgICogQGRlZmF1bHQgLSBoYXNoIGFsbCBwYXJhbWV0ZXJzXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBpbnZhbGlkYXRpb24/OiBhd3NfZWNyX2Fzc2V0cy5Eb2NrZXJJbWFnZUFzc2V0SW52YWxpZGF0aW9uT3B0aW9ucztcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIERvY2tlcmZpbGUgKHJlbGF0aXZlIHRvIHRoZSBkaXJlY3RvcnkpLlxuICAgKiBAZGVmYXVsdCAnRG9ja2VyZmlsZSdcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGZpbGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDYWNoZSB0byBvcHRpb25zIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqIEBkZWZhdWx0IC0gbm8gY2FjaGUgdG8gb3B0aW9ucyBhcmUgcGFzc2VkIHRvIHRoZSBidWlsZCBjb21tYW5kXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBjYWNoZVRvPzogYXdzX2Vjcl9hc3NldHMuRG9ja2VyQ2FjaGVPcHRpb247XG4gIC8qKlxuICAgKiBDYWNoZSBmcm9tIG9wdGlvbnMgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICogQGRlZmF1bHQgLSBubyBjYWNoZSBmcm9tIG9wdGlvbnMgYXJlIHBhc3NlZCB0byB0aGUgYnVpbGQgY29tbWFuZFxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgY2FjaGVGcm9tPzogQXJyYXk8YXdzX2Vjcl9hc3NldHMuRG9ja2VyQ2FjaGVPcHRpb24+O1xuICAvKipcbiAgICogRGlzYWJsZSB0aGUgY2FjaGUgYW5kIHBhc3MgYC0tbm8tY2FjaGVgIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKiBAZGVmYXVsdCAtIGNhY2hlIGlzIHVzZWRcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGNhY2hlRGlzYWJsZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogU1NIIGFnZW50IHNvY2tldCBvciBrZXlzIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqIERvY2tlciBCdWlsZEtpdCBtdXN0IGJlIGVuYWJsZWQgdG8gdXNlIHRoZSBzc2ggZmxhZ1xuICAgKiBAZGVmYXVsdCAtIG5vIC0tc3NoIGZsYWdcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkU3NoPzogc3RyaW5nO1xuICAvKipcbiAgICogQnVpbGQgc2VjcmV0cy5cbiAgICogRG9ja2VyIEJ1aWxkS2l0IG11c3QgYmUgZW5hYmxlZCB0byB1c2UgYnVpbGQgc2VjcmV0cy5cbiAgICogQGRlZmF1bHQgLSBubyBidWlsZCBzZWNyZXRzXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBidWlsZFNlY3JldHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKipcbiAgICogQnVpbGQgYXJncyB0byBwYXNzIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKiBTaW5jZSBEb2NrZXIgYnVpbGQgYXJndW1lbnRzIGFyZSByZXNvbHZlZCBiZWZvcmUgZGVwbG95bWVudCwga2V5cyBhbmRcbiAgICogdmFsdWVzIGNhbm5vdCByZWZlciB0byB1bnJlc29sdmVkIHRva2VucyAoc3VjaCBhcyBgbGFtYmRhLmZ1bmN0aW9uQXJuYCBvclxuICAgKiBgcXVldWUucXVldWVVcmxgKS5cbiAgICogQGRlZmF1bHQgLSBubyBidWlsZCBhcmdzIGFyZSBwYXNzZWRcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQXJncz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKlxuICAgKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgZG9ja2VyIGltYWdlIGFzc2V0IGFuZCBpdHMgcG90ZW50aWFsIHJldmlzaW9ucy5cbiAgICogUmVxdWlyZWQgaWYgdXNpbmcgQXBwU2NvcGVkU3RhZ2luZ1N5bnRoZXNpemVyLlxuICAgKiBAZGVmYXVsdCAtIG5vIGFzc2V0IG5hbWVcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0TmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEV4dHJhIGluZm9ybWF0aW9uIHRvIGVuY29kZSBpbnRvIHRoZSBmaW5nZXJwcmludCAoZS5nLiBidWlsZCBpbnN0cnVjdGlvbnMgYW5kIG90aGVyIGlucHV0cykuXG4gICAqIEBkZWZhdWx0IC0gaGFzaCBpcyBvbmx5IGJhc2VkIG9uIHNvdXJjZSBjb250ZW50XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBleHRyYUhhc2g/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgaWdub3JlIGJlaGF2aW9yIHRvIHVzZSBmb3IgYGV4Y2x1ZGVgIHBhdHRlcm5zLlxuICAgKiBAZGVmYXVsdCBJZ25vcmVNb2RlLkdMT0JcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGlnbm9yZU1vZGU/OiBJZ25vcmVNb2RlO1xuICAvKipcbiAgICogQSBzdHJhdGVneSBmb3IgaG93IHRvIGhhbmRsZSBzeW1saW5rcy5cbiAgICogQGRlZmF1bHQgU3ltbGlua0ZvbGxvd01vZGUuTkVWRVJcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGZvbGxvd1N5bWxpbmtzPzogU3ltbGlua0ZvbGxvd01vZGU7XG4gIC8qKlxuICAgKiBGaWxlIHBhdGhzIG1hdGNoaW5nIHRoZSBwYXR0ZXJucyB3aWxsIGJlIGV4Y2x1ZGVkLlxuICAgKiBTZWUgYGlnbm9yZU1vZGVgIHRvIHNldCB0aGUgbWF0Y2hpbmcgYmVoYXZpb3IuXG4gICAqIEhhcyBubyBlZmZlY3Qgb24gQXNzZXRzIGJ1bmRsZWQgdXNpbmcgdGhlIGBidW5kbGluZ2AgcHJvcGVydHkuXG4gICAqIEBkZWZhdWx0IC0gbm90aGluZyBpcyBleGNsdWRlZFxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhjbHVkZT86IEFycmF5PHN0cmluZz47XG59XG4iXX0=