@quadnix/octo 0.0.19 → 0.0.21

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 (181) hide show
  1. package/dist/app.type.d.ts +5 -0
  2. package/dist/app.type.js +6 -0
  3. package/dist/app.type.js.map +1 -1
  4. package/dist/decorators/action.decorator.d.ts +17 -0
  5. package/dist/decorators/action.decorator.js +26 -1
  6. package/dist/decorators/action.decorator.js.map +1 -1
  7. package/dist/decorators/anchor.decorator.d.ts +13 -0
  8. package/dist/decorators/anchor.decorator.js +16 -1
  9. package/dist/decorators/anchor.decorator.js.map +1 -1
  10. package/dist/decorators/container.d.ts +61 -0
  11. package/dist/decorators/container.js +68 -3
  12. package/dist/decorators/container.js.map +1 -1
  13. package/dist/decorators/enable-hook.decorator.d.ts +14 -0
  14. package/dist/decorators/enable-hook.decorator.js +14 -0
  15. package/dist/decorators/enable-hook.decorator.js.map +1 -1
  16. package/dist/decorators/event-source.decorator.d.ts +18 -0
  17. package/dist/decorators/event-source.decorator.js +22 -0
  18. package/dist/decorators/event-source.decorator.js.map +1 -0
  19. package/dist/decorators/factory.decorator.d.ts +30 -0
  20. package/dist/decorators/factory.decorator.js +30 -0
  21. package/dist/decorators/factory.decorator.js.map +1 -1
  22. package/dist/decorators/model.decorator.d.ts +13 -0
  23. package/dist/decorators/model.decorator.js +16 -1
  24. package/dist/decorators/model.decorator.js.map +1 -1
  25. package/dist/decorators/module.decorator.d.ts +52 -0
  26. package/dist/decorators/module.decorator.js +60 -1
  27. package/dist/decorators/module.decorator.js.map +1 -1
  28. package/dist/decorators/on-event.decorator.d.ts +20 -0
  29. package/dist/decorators/on-event.decorator.js +24 -0
  30. package/dist/decorators/on-event.decorator.js.map +1 -0
  31. package/dist/decorators/overlay.decorator.d.ts +13 -0
  32. package/dist/decorators/overlay.decorator.js +16 -1
  33. package/dist/decorators/overlay.decorator.js.map +1 -1
  34. package/dist/decorators/resource.decorator.d.ts +13 -0
  35. package/dist/decorators/resource.decorator.js +16 -1
  36. package/dist/decorators/resource.decorator.js.map +1 -1
  37. package/dist/decorators/test-container.d.ts +52 -0
  38. package/dist/decorators/test-container.js +54 -2
  39. package/dist/decorators/test-container.js.map +1 -1
  40. package/dist/decorators/validate.decorator.d.ts +9 -0
  41. package/dist/decorators/validate.decorator.js +23 -0
  42. package/dist/decorators/validate.decorator.js.map +1 -0
  43. package/dist/events/error.event.d.ts +35 -0
  44. package/dist/events/error.event.js +36 -0
  45. package/dist/events/error.event.js.map +1 -0
  46. package/dist/events/event.model.d.ts +37 -0
  47. package/dist/events/event.model.js +43 -0
  48. package/dist/events/event.model.js.map +1 -0
  49. package/dist/events/hook.event.d.ts +194 -0
  50. package/dist/events/hook.event.js +195 -0
  51. package/dist/events/hook.event.js.map +1 -0
  52. package/dist/events/module.event.d.ts +15 -0
  53. package/dist/events/module.event.js +16 -0
  54. package/dist/events/module.event.js.map +1 -0
  55. package/dist/events/registration.event.d.ts +112 -0
  56. package/dist/events/registration.event.js +170 -0
  57. package/dist/events/registration.event.js.map +1 -0
  58. package/dist/events/serialization.event.d.ts +72 -0
  59. package/dist/events/serialization.event.js +73 -0
  60. package/dist/events/serialization.event.js.map +1 -0
  61. package/dist/events/transaction.event.d.ts +48 -0
  62. package/dist/events/transaction.event.js +49 -0
  63. package/dist/events/transaction.event.js.map +1 -0
  64. package/dist/functions/dependency/dependency.js +1 -8
  65. package/dist/functions/dependency/dependency.js.map +1 -1
  66. package/dist/functions/diff/diff-metadata.d.ts +3 -0
  67. package/dist/functions/diff/diff-metadata.js +5 -10
  68. package/dist/functions/diff/diff-metadata.js.map +1 -1
  69. package/dist/functions/diff/diff.d.ts +3 -0
  70. package/dist/functions/diff/diff.js +3 -4
  71. package/dist/functions/diff/diff.js.map +1 -1
  72. package/dist/functions/diff/diff.utility.d.ts +32 -0
  73. package/dist/functions/diff/diff.utility.js +49 -0
  74. package/dist/functions/diff/diff.utility.js.map +1 -1
  75. package/dist/functions/hook/commit.hook.js +11 -3
  76. package/dist/functions/hook/commit.hook.js.map +1 -1
  77. package/dist/functions/hook/model-action.hook.js +11 -3
  78. package/dist/functions/hook/model-action.hook.js.map +1 -1
  79. package/dist/functions/hook/resource-action.hook.js +11 -3
  80. package/dist/functions/hook/resource-action.hook.js.map +1 -1
  81. package/dist/index.d.ts +9 -0
  82. package/dist/index.js +9 -0
  83. package/dist/index.js.map +1 -1
  84. package/dist/main.d.ts +11 -2
  85. package/dist/main.js +34 -16
  86. package/dist/main.js.map +1 -1
  87. package/dist/models/app/app.interface.d.ts +5 -0
  88. package/dist/models/app/app.model.d.ts +29 -0
  89. package/dist/models/app/app.model.js +40 -3
  90. package/dist/models/app/app.model.js.map +1 -1
  91. package/dist/models/deployment/deployment.interface.d.ts +5 -0
  92. package/dist/models/deployment/deployment.model.d.ts +15 -0
  93. package/dist/models/deployment/deployment.model.js +20 -3
  94. package/dist/models/deployment/deployment.model.js.map +1 -1
  95. package/dist/models/environment/environment.interface.d.ts +5 -0
  96. package/dist/models/environment/environment.model.d.ts +18 -0
  97. package/dist/models/environment/environment.model.js +33 -4
  98. package/dist/models/environment/environment.model.js.map +1 -1
  99. package/dist/models/execution/execution.interface.d.ts +5 -0
  100. package/dist/models/execution/execution.model.d.ts +23 -0
  101. package/dist/models/execution/execution.model.js +39 -2
  102. package/dist/models/execution/execution.model.js.map +1 -1
  103. package/dist/models/image/image.interface.d.ts +5 -0
  104. package/dist/models/image/image.model.d.ts +35 -0
  105. package/dist/models/image/image.model.js +25 -6
  106. package/dist/models/image/image.model.js.map +1 -1
  107. package/dist/models/model-action.interface.d.ts +21 -0
  108. package/dist/models/model.abstract.d.ts +265 -0
  109. package/dist/models/model.abstract.js +274 -5
  110. package/dist/models/model.abstract.js.map +1 -1
  111. package/dist/models/model.interface.d.ts +25 -0
  112. package/dist/models/pipeline/pipeline.interface.d.ts +5 -0
  113. package/dist/models/pipeline/pipeline.model.d.ts +15 -0
  114. package/dist/models/pipeline/pipeline.model.js +25 -4
  115. package/dist/models/pipeline/pipeline.model.js.map +1 -1
  116. package/dist/models/region/region.interface.d.ts +5 -0
  117. package/dist/models/region/region.model.d.ts +18 -0
  118. package/dist/models/region/region.model.js +29 -3
  119. package/dist/models/region/region.model.js.map +1 -1
  120. package/dist/models/server/server.interface.d.ts +5 -0
  121. package/dist/models/server/server.model.d.ts +17 -0
  122. package/dist/models/server/server.model.js +24 -3
  123. package/dist/models/server/server.model.js.map +1 -1
  124. package/dist/models/service/service.interface.d.ts +5 -0
  125. package/dist/models/service/service.model.d.ts +15 -0
  126. package/dist/models/service/service.model.js +19 -2
  127. package/dist/models/service/service.model.js.map +1 -1
  128. package/dist/models/subnet/subnet.interface.d.ts +5 -0
  129. package/dist/models/subnet/subnet.model.d.ts +48 -0
  130. package/dist/models/subnet/subnet.model.js +52 -7
  131. package/dist/models/subnet/subnet.model.js.map +1 -1
  132. package/dist/modules/module.container.d.ts +2 -0
  133. package/dist/modules/module.container.js +22 -10
  134. package/dist/modules/module.container.js.map +1 -1
  135. package/dist/modules/test-module.container.d.ts +4 -3
  136. package/dist/modules/test-module.container.js +13 -10
  137. package/dist/modules/test-module.container.js.map +1 -1
  138. package/dist/overlays/anchor.abstract.js +0 -3
  139. package/dist/overlays/anchor.abstract.js.map +1 -1
  140. package/dist/overlays/overlay-data.repository.js +0 -3
  141. package/dist/overlays/overlay-data.repository.js.map +1 -1
  142. package/dist/overlays/overlay.abstract.js +3 -3
  143. package/dist/overlays/overlay.abstract.js.map +1 -1
  144. package/dist/overlays/overlay.service.js +0 -2
  145. package/dist/overlays/overlay.service.js.map +1 -1
  146. package/dist/resources/resource-data.repository.js +6 -3
  147. package/dist/resources/resource-data.repository.js.map +1 -1
  148. package/dist/resources/resource.abstract.js +4 -4
  149. package/dist/resources/resource.abstract.js.map +1 -1
  150. package/dist/resources/shared-resource.abstract.js +4 -1
  151. package/dist/resources/shared-resource.abstract.js.map +1 -1
  152. package/dist/services/capture/capture.service.js +3 -2
  153. package/dist/services/capture/capture.service.js.map +1 -1
  154. package/dist/services/event/event.service.d.ts +17 -0
  155. package/dist/services/event/event.service.js +92 -0
  156. package/dist/services/event/event.service.js.map +1 -0
  157. package/dist/services/input/input.service.js +1 -3
  158. package/dist/services/input/input.service.js.map +1 -1
  159. package/dist/services/serialization/model/model-serialization.service.d.ts +1 -1
  160. package/dist/services/serialization/model/model-serialization.service.js +28 -5
  161. package/dist/services/serialization/model/model-serialization.service.js.map +1 -1
  162. package/dist/services/serialization/resource/resource-serialization.service.js +32 -4
  163. package/dist/services/serialization/resource/resource-serialization.service.js.map +1 -1
  164. package/dist/services/state-management/local.state-provider.js +0 -1
  165. package/dist/services/state-management/local.state-provider.js.map +1 -1
  166. package/dist/services/state-management/state-management.service.js +0 -2
  167. package/dist/services/state-management/state-management.service.js.map +1 -1
  168. package/dist/services/state-management/test.state-provider.js +3 -1
  169. package/dist/services/state-management/test.state-provider.js.map +1 -1
  170. package/dist/services/transaction/transaction.service.d.ts +4 -0
  171. package/dist/services/transaction/transaction.service.js +69 -9
  172. package/dist/services/transaction/transaction.service.js.map +1 -1
  173. package/dist/services/validation/validation.service.d.ts +19 -0
  174. package/dist/services/validation/validation.service.js +66 -0
  175. package/dist/services/validation/validation.service.js.map +1 -0
  176. package/dist/utilities/object/object.utility.js +1 -0
  177. package/dist/utilities/object/object.utility.js.map +1 -1
  178. package/dist/utilities/validation/validation.utility.d.ts +5 -0
  179. package/dist/utilities/validation/validation.utility.js +12 -0
  180. package/dist/utilities/validation/validation.utility.js.map +1 -0
  181. package/package.json +1 -1
@@ -9,14 +9,29 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  var Pipeline_1;
11
11
  import { Model } from '../../decorators/model.decorator.js';
12
+ import { Validate } from '../../decorators/validate.decorator.js';
12
13
  import { DiffUtility } from '../../functions/diff/diff.utility.js';
13
14
  import { AModel } from '../model.abstract.js';
15
+ /**
16
+ * A Pipeline model is a CI/CD pipeline capable of various automations,
17
+ * including building and deploying code, running Octo projects, and more.
18
+ *
19
+ * :::danger Danger
20
+ * `Pipeline` is not yet supported in Octo!
21
+ * :::
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * const pipeline = new Pipeline('MyPipeline');
26
+ * ```
27
+ * @group Models
28
+ * @see Definition of [Default Models](/docs/fundamentals/models#default-models).
29
+ */
14
30
  let Pipeline = Pipeline_1 = class Pipeline extends AModel {
15
- MODEL_NAME = 'pipeline';
16
- instructionSet = [];
17
- pipelineName;
18
31
  constructor(pipelineName) {
19
32
  super();
33
+ this.MODEL_NAME = 'pipeline';
34
+ this.instructionSet = [];
20
35
  this.pipelineName = pipelineName;
21
36
  }
22
37
  async diffProperties(previous) {
@@ -33,12 +48,18 @@ let Pipeline = Pipeline_1 = class Pipeline extends AModel {
33
48
  pipelineName: this.pipelineName,
34
49
  };
35
50
  }
36
- static async unSynth(pipeline, deReferenceContext) {
51
+ static async unSynth(pipeline,
52
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
53
+ deReferenceContext) {
37
54
  const newPipeline = new Pipeline_1(pipeline.pipelineName);
38
55
  newPipeline.instructionSet.push(...pipeline.instructionSet);
39
56
  return newPipeline;
40
57
  }
41
58
  };
59
+ __decorate([
60
+ Validate({ options: { maxLength: 64, minLength: 2, regex: /^[a-zA-Z][\w-]*[a-zA-Z0-9]$/ } }),
61
+ __metadata("design:type", String)
62
+ ], Pipeline.prototype, "pipelineName", void 0);
42
63
  Pipeline = Pipeline_1 = __decorate([
43
64
  Model(),
44
65
  __metadata("design:paramtypes", [String])
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.model.js","sourceRoot":"","sources":["../../../src/models/pipeline/pipeline.model.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAKvC,IAAM,QAAQ,gBAAd,MAAM,QAAS,SAAQ,MAA2B;IAC9C,UAAU,GAAW,UAAU,CAAC;IAEhC,cAAc,GAAa,EAAE,CAAC;IAE9B,YAAY,CAAS;IAE9B,YAAY,YAAoB;QAC9B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAEQ,KAAK,CAAC,cAAc,CAAC,QAAkB;QAC9C,OAAO,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACjE,CAAC;IAEQ,UAAU;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjF,CAAC;IAEQ,KAAK;QACZ,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC/D,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,OAAO,CAC3B,QAAmB,EAEnB,kBAA8D;QAE9D,MAAM,WAAW,GAAG,IAAI,UAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACxD,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC5D,OAAO,WAAW,CAAC;IACrB,CAAC;CACF,CAAA;AAtCY,QAAQ;IADpB,KAAK,EAAE;;GACK,QAAQ,CAsCpB"}
1
+ {"version":3,"file":"pipeline.model.js","sourceRoot":"","sources":["../../../src/models/pipeline/pipeline.model.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAI9C;;;;;;;;;;;;;;GAcG;AAEI,IAAM,QAAQ,gBAAd,MAAM,QAAS,SAAQ,MAA2B;IAQvD,YAAY,YAAoB;QAC9B,KAAK,EAAE,CAAC;QARD,eAAU,GAAW,UAAU,CAAC;QAEhC,mBAAc,GAAa,EAAE,CAAC;QAOrC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAEQ,KAAK,CAAC,cAAc,CAAC,QAAkB;QAC9C,OAAO,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACjE,CAAC;IAEQ,UAAU;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjF,CAAC;IAEQ,KAAK;QACZ,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC/D,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,OAAO,CAC3B,QAAmB;IACnB,6DAA6D;IAC7D,kBAA8D;QAE9D,MAAM,WAAW,GAAG,IAAI,UAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACxD,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC5D,OAAO,WAAW,CAAC;IACrB,CAAC;CACF,CAAA;AAjCU;IADR,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,6BAA6B,EAAE,EAAE,CAAC;;8CAC/D;AANnB,QAAQ;IADpB,KAAK,EAAE;;GACK,QAAQ,CAuCpB"}
@@ -1,4 +1,9 @@
1
1
  import type { Region } from './region.model.js';
2
+ /**
3
+ * {@link Region} model interface.
4
+ *
5
+ * @group Model Interfaces
6
+ */
2
7
  export interface IRegion {
3
8
  regionId: Region['regionId'];
4
9
  }
@@ -4,11 +4,29 @@ import { Environment } from '../environment/environment.model.js';
4
4
  import { AModel } from '../model.abstract.js';
5
5
  import { Subnet } from '../subnet/subnet.model.js';
6
6
  import type { IRegion } from './region.interface.js';
7
+ /**
8
+ * A Region model is a physical geographical area where the app can be deployed.
9
+ * Typically, for redundancy and low latency, an app is deployed in multiple regions.
10
+ * Therefore, it's common to have multiple region nodes under the app.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const region = new Region('us-east-1');
15
+ * ```
16
+ * @group Models
17
+ * @see Definition of [Default Models](/docs/fundamentals/models#default-models).
18
+ */
7
19
  export declare class Region extends AModel<IRegion, Region> {
8
20
  readonly MODEL_NAME: string;
9
21
  readonly regionId: string;
10
22
  constructor(regionId: string);
23
+ /**
24
+ * To add an {@link Environment}.
25
+ */
11
26
  addEnvironment(environment: Environment): void;
27
+ /**
28
+ * To add a {@link Subnet}.
29
+ */
12
30
  addSubnet(subnet: Subnet): void;
13
31
  diffProperties(): Promise<Diff[]>;
14
32
  setContext(): string;
@@ -9,28 +9,48 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  var Region_1;
11
11
  import { Model } from '../../decorators/model.decorator.js';
12
+ import { Validate } from '../../decorators/validate.decorator.js';
12
13
  import { AModel } from '../model.abstract.js';
14
+ /**
15
+ * A Region model is a physical geographical area where the app can be deployed.
16
+ * Typically, for redundancy and low latency, an app is deployed in multiple regions.
17
+ * Therefore, it's common to have multiple region nodes under the app.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * const region = new Region('us-east-1');
22
+ * ```
23
+ * @group Models
24
+ * @see Definition of [Default Models](/docs/fundamentals/models#default-models).
25
+ */
13
26
  let Region = Region_1 = class Region extends AModel {
14
- MODEL_NAME = 'region';
15
- regionId;
16
27
  constructor(regionId) {
17
28
  super();
29
+ this.MODEL_NAME = 'region';
18
30
  this.regionId = regionId;
19
31
  }
32
+ /**
33
+ * To add an {@link Environment}.
34
+ */
20
35
  addEnvironment(environment) {
21
36
  const childrenDependencies = this.getChildren('environment');
22
37
  if (!childrenDependencies['environment'])
23
38
  childrenDependencies['environment'] = [];
39
+ // Check for duplicates.
24
40
  const environments = childrenDependencies['environment'].map((d) => d.to);
25
41
  if (environments.find((e) => e.environmentName === environment.environmentName)) {
26
42
  throw new Error('Environment already exists!');
27
43
  }
28
44
  this.addChild('regionId', environment, 'environmentName');
29
45
  }
46
+ /**
47
+ * To add a {@link Subnet}.
48
+ */
30
49
  addSubnet(subnet) {
31
50
  const childrenDependencies = this.getChildren('subnet');
32
51
  if (!childrenDependencies['subnet'])
33
52
  childrenDependencies['subnet'] = [];
53
+ // Check for duplicates.
34
54
  const subnets = childrenDependencies['subnet'].map((d) => d.to);
35
55
  if (subnets.find((z) => z.subnetId === subnet.subnetId)) {
36
56
  throw new Error('Subnet already exists!');
@@ -50,10 +70,16 @@ let Region = Region_1 = class Region extends AModel {
50
70
  regionId: this.regionId,
51
71
  };
52
72
  }
53
- static async unSynth(region, deReferenceContext) {
73
+ static async unSynth(region,
74
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
75
+ deReferenceContext) {
54
76
  return new Region_1(region.regionId);
55
77
  }
56
78
  };
79
+ __decorate([
80
+ Validate({ options: { maxLength: 32, minLength: 2, regex: /^[a-zA-Z][\w-]*[a-zA-Z0-9]$/ } }),
81
+ __metadata("design:type", String)
82
+ ], Region.prototype, "regionId", void 0);
57
83
  Region = Region_1 = __decorate([
58
84
  Model(),
59
85
  __metadata("design:paramtypes", [String])
@@ -1 +1 @@
1
- {"version":3,"file":"region.model.js","sourceRoot":"","sources":["../../../src/models/region/region.model.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAG5D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAKvC,IAAM,MAAM,cAAZ,MAAM,MAAO,SAAQ,MAAuB;IACxC,UAAU,GAAW,QAAQ,CAAC;IAE9B,QAAQ,CAAS;IAE1B,YAAY,QAAgB;QAC1B,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,cAAc,CAAC,WAAwB;QACrC,MAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAC7D,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;YAAE,oBAAoB,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;QAGnF,MAAM,YAAY,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1E,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC;YAC7F,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAC5D,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,MAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;YAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAGzE,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;IAEQ,KAAK,CAAC,cAAc;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAEQ,UAAU;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7E,CAAC;IAEQ,KAAK;QACZ,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,OAAO,CAC3B,MAAe,EAEf,kBAA8D;QAE9D,OAAO,IAAI,QAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;CACF,CAAA;AA1DY,MAAM;IADlB,KAAK,EAAE;;GACK,MAAM,CA0DlB"}
1
+ {"version":3,"file":"region.model.js","sourceRoot":"","sources":["../../../src/models/region/region.model.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,9 @@
1
1
  import type { Server } from './server.model.js';
2
+ /**
3
+ * {@link Server} model interface.
4
+ *
5
+ * @group Model Interfaces
6
+ */
2
7
  export interface IServer {
3
8
  serverKey: Server['serverKey'];
4
9
  }
@@ -3,10 +3,27 @@ import type { Diff } from '../../functions/diff/diff.js';
3
3
  import { Deployment } from '../deployment/deployment.model.js';
4
4
  import { AModel } from '../model.abstract.js';
5
5
  import type { IServer } from './server.interface.js';
6
+ /**
7
+ * A Server model is a representation of the logical microservice.
8
+ * E.g. frontend, backend, database, payment-service, etc.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * const server = new Server('backend');
13
+ * ```
14
+ * @group Models
15
+ * @see Definition of [Default Models](/docs/fundamentals/models#default-models).
16
+ */
6
17
  export declare class Server extends AModel<IServer, Server> {
7
18
  readonly MODEL_NAME: string;
19
+ /**
20
+ * The name of the server.
21
+ */
8
22
  readonly serverKey: string;
9
23
  constructor(serverKey: string);
24
+ /**
25
+ * To add a {@link Deployment}.
26
+ */
10
27
  addDeployment(deployment: Deployment): void;
11
28
  diffProperties(): Promise<Diff[]>;
12
29
  setContext(): string;
@@ -9,18 +9,33 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  var Server_1;
11
11
  import { Model } from '../../decorators/model.decorator.js';
12
+ import { Validate } from '../../decorators/validate.decorator.js';
12
13
  import { AModel } from '../model.abstract.js';
14
+ /**
15
+ * A Server model is a representation of the logical microservice.
16
+ * E.g. frontend, backend, database, payment-service, etc.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * const server = new Server('backend');
21
+ * ```
22
+ * @group Models
23
+ * @see Definition of [Default Models](/docs/fundamentals/models#default-models).
24
+ */
13
25
  let Server = Server_1 = class Server extends AModel {
14
- MODEL_NAME = 'server';
15
- serverKey;
16
26
  constructor(serverKey) {
17
27
  super();
28
+ this.MODEL_NAME = 'server';
18
29
  this.serverKey = serverKey;
19
30
  }
31
+ /**
32
+ * To add a {@link Deployment}.
33
+ */
20
34
  addDeployment(deployment) {
21
35
  const childrenDependencies = this.getChildren('deployment');
22
36
  if (!childrenDependencies['deployment'])
23
37
  childrenDependencies['deployment'] = [];
38
+ // Check for duplicates.
24
39
  const deployments = childrenDependencies['deployment'].map((d) => d.to);
25
40
  if (deployments.find((d) => d.deploymentTag === deployment.deploymentTag)) {
26
41
  throw new Error('Deployment already exists!');
@@ -40,10 +55,16 @@ let Server = Server_1 = class Server extends AModel {
40
55
  serverKey: this.serverKey,
41
56
  };
42
57
  }
43
- static async unSynth(server, deReferenceContext) {
58
+ static async unSynth(server,
59
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
60
+ deReferenceContext) {
44
61
  return new Server_1(server.serverKey);
45
62
  }
46
63
  };
64
+ __decorate([
65
+ Validate({ options: { maxLength: 64, minLength: 2, regex: /^[a-zA-Z][\w-]*[a-zA-Z0-9]$/ } }),
66
+ __metadata("design:type", String)
67
+ ], Server.prototype, "serverKey", void 0);
47
68
  Server = Server_1 = __decorate([
48
69
  Model(),
49
70
  __metadata("design:paramtypes", [String])
@@ -1 +1 @@
1
- {"version":3,"file":"server.model.js","sourceRoot":"","sources":["../../../src/models/server/server.model.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAG5D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAIvC,IAAM,MAAM,cAAZ,MAAM,MAAO,SAAQ,MAAuB;IACxC,UAAU,GAAW,QAAQ,CAAC;IAE9B,SAAS,CAAS;IAE3B,YAAY,SAAiB;QAC3B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,aAAa,CAAC,UAAsB;QAClC,MAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC;YAAE,oBAAoB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QAGjF,MAAM,WAAW,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxE,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACtF,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IAC1D,CAAC;IAEQ,KAAK,CAAC,cAAc;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAEQ,UAAU;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9E,CAAC;IAEQ,KAAK;QACZ,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,OAAO,CAC3B,MAAe,EAEf,kBAA8D;QAE9D,OAAO,IAAI,QAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;CACF,CAAA;AA7CY,MAAM;IADlB,KAAK,EAAE;;GACK,MAAM,CA6ClB"}
1
+ {"version":3,"file":"server.model.js","sourceRoot":"","sources":["../../../src/models/server/server.model.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAGlE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C;;;;;;;;;;GAUG;AAEI,IAAM,MAAM,cAAZ,MAAM,MAAO,SAAQ,MAAuB;IASjD,YAAY,SAAiB;QAC3B,KAAK,EAAE,CAAC;QATD,eAAU,GAAW,QAAQ,CAAC;QAUrC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,UAAsB;QAClC,MAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC;YAAE,oBAAoB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QAEjF,wBAAwB;QACxB,MAAM,WAAW,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxE,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACtF,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IAC1D,CAAC;IAEQ,KAAK,CAAC,cAAc;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAEQ,UAAU;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9E,CAAC;IAEQ,KAAK;QACZ,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,OAAO,CAC3B,MAAe;IACf,6DAA6D;IAC7D,kBAA8D;QAE9D,OAAO,IAAI,QAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;CACF,CAAA;AA7CU;IADR,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,6BAA6B,EAAE,EAAE,CAAC;;yCAClE;AAPhB,MAAM;IADlB,KAAK,EAAE;;GACK,MAAM,CAoDlB"}
@@ -1,4 +1,9 @@
1
1
  import type { Service } from './service.model.js';
2
+ /**
3
+ * {@link Service} model interface.
4
+ *
5
+ * @group Model Interfaces
6
+ */
2
7
  export interface IService {
3
8
  serviceId: Service['serviceId'];
4
9
  }
@@ -1,8 +1,23 @@
1
1
  import type { Diff } from '../../functions/diff/diff.js';
2
2
  import { AModel } from '../model.abstract.js';
3
3
  import type { IService } from './service.interface.js';
4
+ /**
5
+ * A Service model can be any third-party service that your application relies on.
6
+ * What separates them from Server is that Services are hosted and managed outside of your infrastructure.
7
+ * An external Redis server on the cloud, or a managed Kafka queue from AWS, are a few examples.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * const service = new Service('MyService');
12
+ * ```
13
+ * @group Models
14
+ * @see Definition of [Default Models](/docs/fundamentals/models#default-models).
15
+ */
4
16
  export declare class Service extends AModel<IService, Service> {
5
17
  readonly MODEL_NAME: string;
18
+ /**
19
+ * The ID of the service.
20
+ */
6
21
  readonly serviceId: string;
7
22
  constructor(serviceId: string);
8
23
  diffProperties(previous: Service): Promise<Diff[]>;
@@ -8,14 +8,27 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { Model } from '../../decorators/model.decorator.js';
11
+ import { Validate } from '../../decorators/validate.decorator.js';
11
12
  import { AModel } from '../model.abstract.js';
13
+ /**
14
+ * A Service model can be any third-party service that your application relies on.
15
+ * What separates them from Server is that Services are hosted and managed outside of your infrastructure.
16
+ * An external Redis server on the cloud, or a managed Kafka queue from AWS, are a few examples.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * const service = new Service('MyService');
21
+ * ```
22
+ * @group Models
23
+ * @see Definition of [Default Models](/docs/fundamentals/models#default-models).
24
+ */
12
25
  let Service = class Service extends AModel {
13
- MODEL_NAME = 'service';
14
- serviceId;
15
26
  constructor(serviceId) {
16
27
  super();
28
+ this.MODEL_NAME = 'service';
17
29
  this.serviceId = serviceId;
18
30
  }
31
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
19
32
  async diffProperties(previous) {
20
33
  return [];
21
34
  }
@@ -28,6 +41,10 @@ let Service = class Service extends AModel {
28
41
  throw new Error('Method not implemented! Use subclass');
29
42
  }
30
43
  };
44
+ __decorate([
45
+ Validate({ options: { maxLength: 64, minLength: 2, regex: /^[a-zA-Z][\w-]*[a-zA-Z0-9]$/ } }),
46
+ __metadata("design:type", String)
47
+ ], Service.prototype, "serviceId", void 0);
31
48
  Service = __decorate([
32
49
  Model(),
33
50
  __metadata("design:paramtypes", [String])
@@ -1 +1 @@
1
- {"version":3,"file":"service.model.js","sourceRoot":"","sources":["../../../src/models/service/service.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAIvC,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,MAAyB;IAC3C,UAAU,GAAW,SAAS,CAAC;IAE/B,SAAS,CAAS;IAE3B,YAAY,SAAiB;QAC3B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAGQ,KAAK,CAAC,cAAc,CAAC,QAAiB;QAC7C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEQ,UAAU;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9E,CAAC;IAEQ,KAAK;QACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;CACF,CAAA;AAxBY,OAAO;IADnB,KAAK,EAAE;;GACK,OAAO,CAwBnB"}
1
+ {"version":3,"file":"service.model.js","sourceRoot":"","sources":["../../../src/models/service/service.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAElE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C;;;;;;;;;;;GAWG;AAEI,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,MAAyB;IASpD,YAAY,SAAiB;QAC3B,KAAK,EAAE,CAAC;QATD,eAAU,GAAW,SAAS,CAAC;QAUtC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,6DAA6D;IACpD,KAAK,CAAC,cAAc,CAAC,QAAiB;QAC7C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEQ,UAAU;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9E,CAAC;IAEQ,KAAK;QACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;CACF,CAAA;AArBU;IADR,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,6BAA6B,EAAE,EAAE,CAAC;;0CAClE;AAPhB,OAAO;IADnB,KAAK,EAAE;;GACK,OAAO,CA4BnB"}
@@ -1,5 +1,10 @@
1
1
  import type { IModelReference } from '../model.interface.js';
2
2
  import type { Subnet } from './subnet.model.js';
3
+ /**
4
+ * {@link Subnet} model interface.
5
+ *
6
+ * @group Model Interfaces
7
+ */
3
8
  export interface ISubnet {
4
9
  options: Subnet['options'];
5
10
  region: IModelReference;
@@ -3,16 +3,55 @@ import { Diff } from '../../functions/diff/diff.js';
3
3
  import { AModel } from '../model.abstract.js';
4
4
  import { Region } from '../region/region.model.js';
5
5
  import type { ISubnet } from './subnet.interface.js';
6
+ /**
7
+ * The type of subnet.
8
+ */
6
9
  export declare enum SubnetType {
10
+ /**
11
+ * A public subnet is open to the internet,
12
+ * i.e. an {@link Execution} within this subnet can be accessed from the internet.
13
+ * Other than access from the internet, any other access needs to be explicitly allowed.
14
+ */
7
15
  PUBLIC = "public",
16
+ /**
17
+ * A private subnet has limited access to anything outside of this subnet, including access from the internet.
18
+ * Access to this subnet needs to be explicitly allowed.
19
+ */
8
20
  PRIVATE = "private"
9
21
  }
22
+ /**
23
+ * A Subnet model is the logical sub-division of the region, e.g. a public and a private subnet.
24
+ * A subnet is often used to isolate parts of your infrastructure with access gates in the front.
25
+ * - A subnet can only belong to one region, but a region can have multiple subnets.
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * const subnet = new Subnet(region, SubnetType.PRIVATE);
30
+ * ```
31
+ * @group Models
32
+ * @see Definition of [Default Models](/docs/fundamentals/models#default-models).
33
+ */
10
34
  export declare class Subnet extends AModel<ISubnet, Subnet> {
11
35
  readonly MODEL_NAME: string;
12
36
  private options;
37
+ /**
38
+ * The ID of the subnet.
39
+ * - Format is `{regionId}-{subnetName}`
40
+ */
13
41
  readonly subnetId: string;
42
+ /**
43
+ * The name of the subnet.
44
+ */
14
45
  readonly subnetName: string;
15
46
  constructor(region: Region, name: string);
47
+ /**
48
+ * To block/disable intra-network communication within self.
49
+ * When this is set to `true`,
50
+ * any execution within this subnet will not be able to communicate with other executions within the same subnet.
51
+ *
52
+ * @defaultValue `false`
53
+ * @experimental
54
+ */
16
55
  get disableSubnetIntraNetwork(): boolean;
17
56
  set disableSubnetIntraNetwork(disableSubnetIntraNetwork: boolean);
18
57
  get subnetType(): SubnetType;
@@ -21,5 +60,14 @@ export declare class Subnet extends AModel<ISubnet, Subnet> {
21
60
  setContext(): string;
22
61
  synth(): ISubnet;
23
62
  static unSynth(subnet: ISubnet, deReferenceContext: (context: string) => Promise<UnknownModel>): Promise<Subnet>;
63
+ /**
64
+ * To update the networking rules of this subnet to allow or deny connectivity from another subnet.
65
+ * The networking rules are bi-directional,
66
+ * i.e. if subnet A can connect to subnet B, then subnet B can also connect to subnet A.
67
+ *
68
+ * @param subnet The other subnet.
69
+ * @param allowConnections Set to `true` to allow this and the other subnet to connect.
70
+ * Set to `false` to block this and the other subnet from connecting.
71
+ */
24
72
  updateNetworkingRules(subnet: Subnet, allowConnections: boolean): void;
25
73
  }
@@ -9,27 +9,58 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  var Subnet_1;
11
11
  import { Model } from '../../decorators/model.decorator.js';
12
+ import { Validate } from '../../decorators/validate.decorator.js';
12
13
  import { Diff, DiffAction } from '../../functions/diff/diff.js';
13
14
  import { AModel } from '../model.abstract.js';
14
15
  import { Region } from '../region/region.model.js';
16
+ /**
17
+ * The type of subnet.
18
+ */
15
19
  export var SubnetType;
16
20
  (function (SubnetType) {
21
+ /**
22
+ * A public subnet is open to the internet,
23
+ * i.e. an {@link Execution} within this subnet can be accessed from the internet.
24
+ * Other than access from the internet, any other access needs to be explicitly allowed.
25
+ */
17
26
  SubnetType["PUBLIC"] = "public";
27
+ /**
28
+ * A private subnet has limited access to anything outside of this subnet, including access from the internet.
29
+ * Access to this subnet needs to be explicitly allowed.
30
+ */
18
31
  SubnetType["PRIVATE"] = "private";
19
32
  })(SubnetType || (SubnetType = {}));
33
+ /**
34
+ * A Subnet model is the logical sub-division of the region, e.g. a public and a private subnet.
35
+ * A subnet is often used to isolate parts of your infrastructure with access gates in the front.
36
+ * - A subnet can only belong to one region, but a region can have multiple subnets.
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * const subnet = new Subnet(region, SubnetType.PRIVATE);
41
+ * ```
42
+ * @group Models
43
+ * @see Definition of [Default Models](/docs/fundamentals/models#default-models).
44
+ */
20
45
  let Subnet = Subnet_1 = class Subnet extends AModel {
21
- MODEL_NAME = 'subnet';
22
- options = {
23
- disableSubnetIntraNetwork: false,
24
- subnetType: SubnetType.PRIVATE,
25
- };
26
- subnetId;
27
- subnetName;
28
46
  constructor(region, name) {
29
47
  super();
48
+ this.MODEL_NAME = 'subnet';
49
+ this.options = {
50
+ disableSubnetIntraNetwork: false,
51
+ subnetType: SubnetType.PRIVATE,
52
+ };
30
53
  this.subnetId = region.regionId + '-' + name;
31
54
  this.subnetName = name;
32
55
  }
56
+ /**
57
+ * To block/disable intra-network communication within self.
58
+ * When this is set to `true`,
59
+ * any execution within this subnet will not be able to communicate with other executions within the same subnet.
60
+ *
61
+ * @defaultValue `false`
62
+ * @experimental
63
+ */
33
64
  get disableSubnetIntraNetwork() {
34
65
  return this.options.disableSubnetIntraNetwork;
35
66
  }
@@ -44,6 +75,7 @@ let Subnet = Subnet_1 = class Subnet extends AModel {
44
75
  }
45
76
  async diffProperties(previous) {
46
77
  const diffs = [];
78
+ // Generate diff of options.
47
79
  if (previous.disableSubnetIntraNetwork !== this.disableSubnetIntraNetwork) {
48
80
  diffs.push(new Diff(this, DiffAction.UPDATE, 'disableSubnetIntraNetwork', this.disableSubnetIntraNetwork));
49
81
  }
@@ -74,6 +106,15 @@ let Subnet = Subnet_1 = class Subnet extends AModel {
74
106
  newSubnet.subnetType = subnet.options.subnetType;
75
107
  return newSubnet;
76
108
  }
109
+ /**
110
+ * To update the networking rules of this subnet to allow or deny connectivity from another subnet.
111
+ * The networking rules are bi-directional,
112
+ * i.e. if subnet A can connect to subnet B, then subnet B can also connect to subnet A.
113
+ *
114
+ * @param subnet The other subnet.
115
+ * @param allowConnections Set to `true` to allow this and the other subnet to connect.
116
+ * Set to `false` to block this and the other subnet from connecting.
117
+ */
77
118
  updateNetworkingRules(subnet, allowConnections) {
78
119
  const siblingDependencies = this.getSiblings('subnet');
79
120
  if (!siblingDependencies['subnet'])
@@ -90,6 +131,10 @@ let Subnet = Subnet_1 = class Subnet extends AModel {
90
131
  }
91
132
  }
92
133
  };
134
+ __decorate([
135
+ Validate({ options: { maxLength: 32, minLength: 2, regex: /^[a-zA-Z][\w-]*[a-zA-Z0-9]$/ } }),
136
+ __metadata("design:type", String)
137
+ ], Subnet.prototype, "subnetName", void 0);
93
138
  Subnet = Subnet_1 = __decorate([
94
139
  Model(),
95
140
  __metadata("design:paramtypes", [Region, String])
@@ -1 +1 @@
1
- {"version":3,"file":"subnet.model.js","sourceRoot":"","sources":["../../../src/models/subnet/subnet.model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subnet.model.js","sourceRoot":"","sources":["../../../src/models/subnet/subnet.model.ts"],"names":[],"mappings":"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"}
@@ -15,9 +15,11 @@ export declare class ModuleContainer {
15
15
  getModuleMetadata(module: Constructable<IModule<unknown>> | string): ModuleContainer['modules'][0] | undefined;
16
16
  getModuleMetadataIndex(module: Constructable<IModule<unknown>> | string): number;
17
17
  getOutput<T>(module: Constructable<IModule<T>> | string): T | undefined;
18
+ load(module: Constructable<IModule<unknown>>): void;
18
19
  register(module: Constructable<IModule<unknown>>, properties: Parameters<typeof Module>[0]): void;
19
20
  reset(): void;
20
21
  private setApplyOrder;
22
+ unload(module: Constructable<IModule<unknown>>): void;
21
23
  }
22
24
  export declare class ModuleContainerFactory {
23
25
  private static instance;