@ludeo/cloud-common 1.0.32 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.js +2 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/tsconfig.tsbuildinfo +1 -1
  5. package/dist/v3/contexts/cloud-resource-context.d.ts +8 -0
  6. package/dist/v3/contexts/cloud-resource-context.js +40 -0
  7. package/dist/v3/contexts/cloud-resource-context.js.map +1 -0
  8. package/dist/v3/contexts/index.d.ts +1 -0
  9. package/dist/v3/contexts/index.js +18 -0
  10. package/dist/v3/contexts/index.js.map +1 -0
  11. package/dist/v3/events/allocate-game-request.d.ts +14 -0
  12. package/dist/v3/events/allocate-game-request.js +50 -0
  13. package/dist/v3/events/allocate-game-request.js.map +1 -0
  14. package/dist/v3/events/allocate-game-resource-request.d.ts +17 -0
  15. package/dist/v3/events/allocate-game-resource-request.js +62 -0
  16. package/dist/v3/events/allocate-game-resource-request.js.map +1 -0
  17. package/dist/v3/events/allocate-machine-request.d.ts +13 -0
  18. package/dist/v3/events/allocate-machine-request.js +49 -0
  19. package/dist/v3/events/allocate-machine-request.js.map +1 -0
  20. package/dist/v3/events/create-game-resource-request.d.ts +16 -0
  21. package/dist/v3/events/create-game-resource-request.js +58 -0
  22. package/dist/v3/events/create-game-resource-request.js.map +1 -0
  23. package/dist/v3/events/create-games-request.d.ts +12 -0
  24. package/dist/v3/events/create-games-request.js +45 -0
  25. package/dist/v3/events/create-games-request.js.map +1 -0
  26. package/dist/v3/events/create-machine-resource-batch-request.d.ts +15 -0
  27. package/dist/v3/events/create-machine-resource-batch-request.js +54 -0
  28. package/dist/v3/events/create-machine-resource-batch-request.js.map +1 -0
  29. package/dist/v3/events/create-machine-resource-request.d.ts +15 -0
  30. package/dist/v3/events/create-machine-resource-request.js +54 -0
  31. package/dist/v3/events/create-machine-resource-request.js.map +1 -0
  32. package/dist/v3/events/create-machines-request.d.ts +12 -0
  33. package/dist/v3/events/create-machines-request.js +45 -0
  34. package/dist/v3/events/create-machines-request.js.map +1 -0
  35. package/dist/v3/events/game-allocated-response.d.ts +14 -0
  36. package/dist/v3/events/game-allocated-response.js +50 -0
  37. package/dist/v3/events/game-allocated-response.js.map +1 -0
  38. package/dist/v3/events/game-created-response.d.ts +15 -0
  39. package/dist/v3/events/game-created-response.js +54 -0
  40. package/dist/v3/events/game-created-response.js.map +1 -0
  41. package/dist/v3/events/game-terminated-response.d.ts +12 -0
  42. package/dist/v3/events/game-terminated-response.js +45 -0
  43. package/dist/v3/events/game-terminated-response.js.map +1 -0
  44. package/dist/v3/events/index.d.ts +17 -0
  45. package/dist/v3/events/index.js +34 -0
  46. package/dist/v3/events/index.js.map +1 -0
  47. package/dist/v3/events/machine-allocated-response.d.ts +17 -0
  48. package/dist/v3/events/machine-allocated-response.js +62 -0
  49. package/dist/v3/events/machine-allocated-response.js.map +1 -0
  50. package/dist/v3/events/machine-created-response.d.ts +12 -0
  51. package/dist/v3/events/machine-created-response.js +45 -0
  52. package/dist/v3/events/machine-created-response.js.map +1 -0
  53. package/dist/v3/events/set-pool.event.d.ts +9 -0
  54. package/dist/v3/events/set-pool.event.js +34 -0
  55. package/dist/v3/events/set-pool.event.js.map +1 -0
  56. package/dist/v3/events/terminate-game-resource-request.d.ts +15 -0
  57. package/dist/v3/events/terminate-game-resource-request.js +54 -0
  58. package/dist/v3/events/terminate-game-resource-request.js.map +1 -0
  59. package/dist/v3/events/terminate-games-request.d.ts +12 -0
  60. package/dist/v3/events/terminate-games-request.js +45 -0
  61. package/dist/v3/events/terminate-games-request.js.map +1 -0
  62. package/dist/v3/events/terminate-machine-resource-batch-request.d.ts +15 -0
  63. package/dist/v3/events/terminate-machine-resource-batch-request.js +54 -0
  64. package/dist/v3/events/terminate-machine-resource-batch-request.js.map +1 -0
  65. package/dist/v3/events/terminate-machines-request.d.ts +12 -0
  66. package/dist/v3/events/terminate-machines-request.js +45 -0
  67. package/dist/v3/events/terminate-machines-request.js.map +1 -0
  68. package/dist/v3/index.d.ts +2 -0
  69. package/dist/v3/index.js +6 -0
  70. package/dist/v3/index.js.map +1 -0
  71. package/dist/v3/types/cloud.d.ts +39 -0
  72. package/dist/v3/types/cloud.js +88 -0
  73. package/dist/v3/types/cloud.js.map +1 -0
  74. package/dist/v3/types/index.d.ts +2 -0
  75. package/dist/v3/types/index.js +19 -0
  76. package/dist/v3/types/index.js.map +1 -0
  77. package/dist/v3/types/pools.d.ts +59 -0
  78. package/dist/v3/types/pools.js +88 -0
  79. package/dist/v3/types/pools.js.map +1 -0
  80. package/package.json +1 -1
  81. package/src/index.ts +1 -0
  82. package/src/v3/contexts/cloud-resource-context.ts +21 -0
  83. package/src/v3/contexts/index.ts +1 -0
  84. package/src/v3/events/allocate-game-request.ts +36 -0
  85. package/src/v3/events/allocate-game-resource-request.ts +50 -0
  86. package/src/v3/events/allocate-machine-request.ts +35 -0
  87. package/src/v3/events/create-game-resource-request.ts +46 -0
  88. package/src/v3/events/create-games-request.ts +29 -0
  89. package/src/v3/events/create-machine-resource-batch-request.ts +44 -0
  90. package/src/v3/events/create-machine-resource-request.ts +43 -0
  91. package/src/v3/events/create-machines-request.ts +29 -0
  92. package/src/v3/events/game-allocated-response.ts +36 -0
  93. package/src/v3/events/game-created-response.ts +43 -0
  94. package/src/v3/events/game-terminated-response.ts +32 -0
  95. package/src/v3/events/index.ts +17 -0
  96. package/src/v3/events/machine-allocated-response.ts +49 -0
  97. package/src/v3/events/machine-created-response.ts +32 -0
  98. package/src/v3/events/set-pool.event.ts +23 -0
  99. package/src/v3/events/terminate-game-resource-request.ts +43 -0
  100. package/src/v3/events/terminate-games-request.ts +29 -0
  101. package/src/v3/events/terminate-machine-resource-batch-request.ts +44 -0
  102. package/src/v3/events/terminate-machines-request.ts +29 -0
  103. package/src/v3/index.ts +2 -0
  104. package/src/v3/types/cloud.ts +84 -0
  105. package/src/v3/types/index.ts +2 -0
  106. package/src/v3/types/pools.ts +90 -0
@@ -0,0 +1,35 @@
1
+ import { IsUUID } from "class-validator";
2
+
3
+ import { CloudResourceContext } from "../contexts";
4
+ import { LudeoEvent } from "../../infra/ludeo-event";
5
+ import { ValidateNestedType } from "../../decorators/validate-nested-type.decorator";
6
+
7
+ export class AllocateMachineRequestPayload {
8
+ @IsUUID()
9
+ gameResourceId: string;
10
+
11
+ @IsUUID()
12
+ machinePoolId: string;
13
+
14
+ @IsUUID()
15
+ gamePoolId: string;
16
+ }
17
+
18
+ export class AllocateMachineRequest extends LudeoEvent {
19
+ static readonly EVENT_NAME = "cloud-pools.allocate-machine-request";
20
+
21
+ constructor(
22
+ payload: AllocateMachineRequestPayload,
23
+ context: CloudResourceContext
24
+ ) {
25
+ super(AllocateMachineRequest.EVENT_NAME);
26
+ this.payload = payload;
27
+ this.context = context;
28
+ }
29
+
30
+ @ValidateNestedType(() => CloudResourceContext)
31
+ context: CloudResourceContext;
32
+
33
+ @ValidateNestedType(() => AllocateMachineRequestPayload)
34
+ payload: AllocateMachineRequestPayload;
35
+ }
@@ -0,0 +1,46 @@
1
+ import { IsUUID, IsEnum } from "class-validator";
2
+
3
+ import { CloudResourceContext } from "../contexts";
4
+ import { LudeoEvent } from "../../infra/ludeo-event";
5
+ import { ValidateNestedType } from "../../decorators/validate-nested-type.decorator";
6
+ import {
7
+ AWSProviderSettings,
8
+ CloudProviderSettings,
9
+ CloudProvider,
10
+ } from "../types";
11
+
12
+ export class CreateGameResourceRequestPayload {
13
+ @IsUUID()
14
+ gameResourceId: string;
15
+
16
+ @IsUUID()
17
+ gamePoolId: string;
18
+
19
+ @ValidateNestedType(() => AWSProviderSettings)
20
+ providerSettings: CloudProviderSettings;
21
+
22
+ @IsEnum(CloudProvider)
23
+ cloudProvider: CloudProvider;
24
+
25
+ @IsUUID()
26
+ cloudToken: string;
27
+ }
28
+
29
+ export class CreateGameResourceRequest extends LudeoEvent {
30
+ static readonly EVENT_NAME = "cloud-pools.create-game-resource-request";
31
+
32
+ constructor(
33
+ payload: CreateGameResourceRequestPayload,
34
+ context: CloudResourceContext
35
+ ) {
36
+ super(CreateGameResourceRequest.EVENT_NAME);
37
+ this.payload = payload;
38
+ this.context = context;
39
+ }
40
+
41
+ @ValidateNestedType(() => CloudResourceContext)
42
+ context: CloudResourceContext;
43
+
44
+ @ValidateNestedType(() => CreateGameResourceRequestPayload)
45
+ payload: CreateGameResourceRequestPayload;
46
+ }
@@ -0,0 +1,29 @@
1
+ import { IsNumber, IsUUID } from "class-validator";
2
+
3
+ import { PoolContext } from "../../v2/contexts";
4
+ import { LudeoEvent } from "../../infra/ludeo-event";
5
+ import { ValidateNestedType } from "../../decorators/validate-nested-type.decorator";
6
+
7
+ export class CreateGamesRequestPayload {
8
+ @IsUUID()
9
+ poolId: string;
10
+
11
+ @IsNumber()
12
+ quantity: number;
13
+ }
14
+
15
+ export class CreateGamesRequest extends LudeoEvent {
16
+ static readonly EVENT_NAME = "cloud-pools.create-games-request";
17
+
18
+ constructor(payload: CreateGamesRequestPayload, context: PoolContext) {
19
+ super(CreateGamesRequest.EVENT_NAME);
20
+ this.payload = payload;
21
+ this.context = context;
22
+ }
23
+
24
+ @ValidateNestedType(() => PoolContext)
25
+ context: PoolContext;
26
+
27
+ @ValidateNestedType(() => CreateGamesRequestPayload)
28
+ payload: CreateGamesRequestPayload;
29
+ }
@@ -0,0 +1,44 @@
1
+ import { IsArray, IsEnum, IsUUID } from "class-validator";
2
+
3
+ import { CloudResourceContext } from "../contexts";
4
+ import { LudeoEvent } from "../../infra/ludeo-event";
5
+ import { ValidateNestedType } from "../../decorators/validate-nested-type.decorator";
6
+ import {
7
+ AWSProviderSettings,
8
+ CloudProvider,
9
+ CloudProviderSettings,
10
+ } from "../types";
11
+
12
+ export class CreateMachineResourceBatchRequestPayload {
13
+ @IsArray()
14
+ machineResourceIds: string[];
15
+
16
+ @IsUUID()
17
+ machinePoolId: string;
18
+
19
+ @IsEnum(CloudProvider)
20
+ cloudProvider: CloudProvider;
21
+
22
+ @ValidateNestedType(() => AWSProviderSettings)
23
+ cloudProviderSettings: CloudProviderSettings;
24
+ }
25
+
26
+ export class CreateMachineResourceBatchRequest extends LudeoEvent {
27
+ static readonly EVENT_NAME =
28
+ "cloud-pools.create-machine-resource-batch-request";
29
+
30
+ constructor(
31
+ payload: CreateMachineResourceBatchRequestPayload,
32
+ context: CloudResourceContext
33
+ ) {
34
+ super(CreateMachineResourceBatchRequest.EVENT_NAME);
35
+ this.payload = payload;
36
+ this.context = context;
37
+ }
38
+
39
+ @ValidateNestedType(() => CloudResourceContext)
40
+ context: CloudResourceContext;
41
+
42
+ @ValidateNestedType(() => CreateMachineResourceBatchRequestPayload)
43
+ payload: CreateMachineResourceBatchRequestPayload;
44
+ }
@@ -0,0 +1,43 @@
1
+ import { IsEnum, IsUUID } from "class-validator";
2
+
3
+ import { CloudResourceContext } from "../contexts";
4
+ import { LudeoEvent } from "../../infra/ludeo-event";
5
+ import { ValidateNestedType } from "../../decorators/validate-nested-type.decorator";
6
+ import {
7
+ AWSProviderSettings,
8
+ CloudProvider,
9
+ CloudProviderSettings,
10
+ } from "../types";
11
+
12
+ export class CreateMachineResourceRequestPayload {
13
+ @IsUUID()
14
+ machineResourceId: string;
15
+
16
+ @IsUUID()
17
+ machinePoolId: string;
18
+
19
+ @IsEnum(CloudProvider)
20
+ cloudProvider: CloudProvider;
21
+
22
+ @ValidateNestedType(() => AWSProviderSettings)
23
+ cloudProviderSettings: CloudProviderSettings;
24
+ }
25
+
26
+ export class CreateMachineResourceRequest extends LudeoEvent {
27
+ static readonly EVENT_NAME = "cloud-pools.create-machine-resource-request";
28
+
29
+ constructor(
30
+ payload: CreateMachineResourceRequestPayload,
31
+ context: CloudResourceContext
32
+ ) {
33
+ super(CreateMachineResourceRequest.EVENT_NAME);
34
+ this.payload = payload;
35
+ this.context = context;
36
+ }
37
+
38
+ @ValidateNestedType(() => CloudResourceContext)
39
+ context: CloudResourceContext;
40
+
41
+ @ValidateNestedType(() => CreateMachineResourceRequestPayload)
42
+ payload: CreateMachineResourceRequestPayload;
43
+ }
@@ -0,0 +1,29 @@
1
+ import { IsNumber, IsUUID } from "class-validator";
2
+
3
+ import { PoolContext } from "../../v2/contexts";
4
+ import { LudeoEvent } from "../../infra/ludeo-event";
5
+ import { ValidateNestedType } from "../../decorators/validate-nested-type.decorator";
6
+
7
+ export class CreateMachinesRequestPayload {
8
+ @IsUUID()
9
+ poolId: string;
10
+
11
+ @IsNumber()
12
+ quantity: number;
13
+ }
14
+
15
+ export class CreateMachinesRequest extends LudeoEvent {
16
+ static readonly EVENT_NAME = "cloud-pools.create-machines-request";
17
+
18
+ constructor(payload: CreateMachinesRequestPayload, context: PoolContext) {
19
+ super(CreateMachinesRequest.EVENT_NAME);
20
+ this.payload = payload;
21
+ this.context = context;
22
+ }
23
+
24
+ @ValidateNestedType(() => PoolContext)
25
+ context: PoolContext;
26
+
27
+ @ValidateNestedType(() => CreateMachinesRequestPayload)
28
+ payload: CreateMachinesRequestPayload;
29
+ }
@@ -0,0 +1,36 @@
1
+ import { IsUUID } from "class-validator";
2
+
3
+ import { CloudResourceContext } from "../contexts";
4
+ import { LudeoEvent } from "../../infra/ludeo-event";
5
+ import { ValidateNestedType } from "../../decorators/validate-nested-type.decorator";
6
+ import { AwsAllocationData, CloudProviderAllocationData } from "../types";
7
+
8
+ export class GameAllocatedResponsePayload {
9
+ @IsUUID()
10
+ gameResourceId: string;
11
+
12
+ @IsUUID()
13
+ gamePoolId: string;
14
+
15
+ @ValidateNestedType(() => AwsAllocationData)
16
+ allocationData: CloudProviderAllocationData;
17
+ }
18
+
19
+ export class GameAllocatedResponse extends LudeoEvent {
20
+ static readonly EVENT_NAME = "cloud-resources.game-allocated-response";
21
+
22
+ constructor(
23
+ payload: GameAllocatedResponsePayload,
24
+ context: CloudResourceContext
25
+ ) {
26
+ super(GameAllocatedResponse.EVENT_NAME);
27
+ this.payload = payload;
28
+ this.context = context;
29
+ }
30
+
31
+ @ValidateNestedType(() => CloudResourceContext)
32
+ context: CloudResourceContext;
33
+
34
+ @ValidateNestedType(() => GameAllocatedResponsePayload)
35
+ payload: GameAllocatedResponsePayload;
36
+ }
@@ -0,0 +1,43 @@
1
+ import { IsUUID, IsEnum } from "class-validator";
2
+
3
+ import { CloudResourceContext } from "../contexts";
4
+ import { LudeoEvent } from "../../infra/ludeo-event";
5
+ import { ValidateNestedType } from "../../decorators/validate-nested-type.decorator";
6
+ import {
7
+ AWSProviderSettings,
8
+ CloudProviderSettings,
9
+ CloudProvider,
10
+ } from "../types";
11
+
12
+ export class GameCreatedResponsePayload {
13
+ @IsUUID()
14
+ gameResourceId: string;
15
+
16
+ @IsUUID()
17
+ gamePoolId: string;
18
+
19
+ @ValidateNestedType(() => AWSProviderSettings)
20
+ providerSettings: CloudProviderSettings;
21
+
22
+ @IsEnum(CloudProvider)
23
+ cloudProvider: CloudProvider;
24
+ }
25
+
26
+ export class GameCreatedResponse extends LudeoEvent {
27
+ static readonly EVENT_NAME = "cloud-resources.game-created-response";
28
+
29
+ constructor(
30
+ payload: GameCreatedResponsePayload,
31
+ context: CloudResourceContext
32
+ ) {
33
+ super(GameCreatedResponse.EVENT_NAME);
34
+ this.payload = payload;
35
+ this.context = context;
36
+ }
37
+
38
+ @ValidateNestedType(() => CloudResourceContext)
39
+ context: CloudResourceContext;
40
+
41
+ @ValidateNestedType(() => GameCreatedResponsePayload)
42
+ payload: GameCreatedResponsePayload;
43
+ }
@@ -0,0 +1,32 @@
1
+ import { IsUUID } from "class-validator";
2
+
3
+ import { CloudResourceContext } from "../contexts";
4
+ import { LudeoEvent } from "../../infra/ludeo-event";
5
+ import { ValidateNestedType } from "../../decorators/validate-nested-type.decorator";
6
+
7
+ export class GameTerminatedResponsePayload {
8
+ @IsUUID()
9
+ gameResourceId: string;
10
+
11
+ @IsUUID()
12
+ gamePoolId: string;
13
+ }
14
+
15
+ export class GameTerminatedResponse extends LudeoEvent {
16
+ static readonly EVENT_NAME = "cloud-resources.game-terminated-response";
17
+
18
+ constructor(
19
+ payload: GameTerminatedResponsePayload,
20
+ context: CloudResourceContext
21
+ ) {
22
+ super(GameTerminatedResponse.EVENT_NAME);
23
+ this.payload = payload;
24
+ this.context = context;
25
+ }
26
+
27
+ @ValidateNestedType(() => CloudResourceContext)
28
+ context: CloudResourceContext;
29
+
30
+ @ValidateNestedType(() => GameTerminatedResponsePayload)
31
+ payload: GameTerminatedResponsePayload;
32
+ }
@@ -0,0 +1,17 @@
1
+ export * from "./allocate-game-request";
2
+ export * from "./allocate-game-resource-request";
3
+ export * from "./allocate-machine-request";
4
+ export * from "./create-game-resource-request";
5
+ export * from "./create-games-request";
6
+ export * from "./create-machine-resource-batch-request";
7
+ export * from "./create-machines-request";
8
+ export * from "./game-allocated-response";
9
+ export * from "./game-created-response";
10
+ export * from "./game-terminated-response";
11
+ export * from "./machine-allocated-response";
12
+ export * from "./machine-created-response";
13
+ export * from "./set-pool.event";
14
+ export * from "./terminate-game-resource-request";
15
+ export * from "./terminate-games-request";
16
+ export * from "./terminate-machine-resource-batch-request";
17
+ export * from "./terminate-machines-request";
@@ -0,0 +1,49 @@
1
+ import { IsUUID, IsEnum } from "class-validator";
2
+
3
+ import { CloudResourceContext } from "../contexts";
4
+ import { LudeoEvent } from "../../infra/ludeo-event";
5
+ import { ValidateNestedType } from "../../decorators/validate-nested-type.decorator";
6
+ import {
7
+ AWSProviderSettings,
8
+ CloudProviderSettings,
9
+ CloudProvider,
10
+ } from "../types";
11
+
12
+ export class MachineAllocatedResponsePayload {
13
+ @IsUUID()
14
+ machineResourceId: string;
15
+
16
+ @IsUUID()
17
+ machinePoolId: string;
18
+
19
+ @IsUUID()
20
+ gameResourceId: string;
21
+
22
+ @IsUUID()
23
+ gamePoolId: string;
24
+
25
+ @ValidateNestedType(() => AWSProviderSettings)
26
+ providerSettings: CloudProviderSettings;
27
+
28
+ @IsEnum(CloudProvider)
29
+ cloudProvider: CloudProvider;
30
+ }
31
+
32
+ export class MachineAllocatedResponse extends LudeoEvent {
33
+ static readonly EVENT_NAME = "cloud-pools.machine-allocated-response";
34
+
35
+ constructor(
36
+ payload: MachineAllocatedResponsePayload,
37
+ context: CloudResourceContext
38
+ ) {
39
+ super(MachineAllocatedResponse.EVENT_NAME);
40
+ this.payload = payload;
41
+ this.context = context;
42
+ }
43
+
44
+ @ValidateNestedType(() => CloudResourceContext)
45
+ context: CloudResourceContext;
46
+
47
+ @ValidateNestedType(() => MachineAllocatedResponsePayload)
48
+ payload: MachineAllocatedResponsePayload;
49
+ }
@@ -0,0 +1,32 @@
1
+ import { IsUUID } from "class-validator";
2
+
3
+ import { CloudResourceContext } from "../contexts";
4
+ import { LudeoEvent } from "../../infra/ludeo-event";
5
+ import { ValidateNestedType } from "../../decorators/validate-nested-type.decorator";
6
+
7
+ export class MachineCreatedResponsePayload {
8
+ @IsUUID()
9
+ machineResourceId: string;
10
+
11
+ @IsUUID()
12
+ machinePoolId: string;
13
+ }
14
+
15
+ export class MachineCreatedResponse extends LudeoEvent {
16
+ static readonly EVENT_NAME = "cloud-resources.machine-created-response";
17
+
18
+ constructor(
19
+ payload: MachineCreatedResponsePayload,
20
+ context: CloudResourceContext
21
+ ) {
22
+ super(MachineCreatedResponse.EVENT_NAME);
23
+ this.payload = payload;
24
+ this.context = context;
25
+ }
26
+
27
+ @ValidateNestedType(() => CloudResourceContext)
28
+ context: CloudResourceContext;
29
+
30
+ @ValidateNestedType(() => MachineCreatedResponsePayload)
31
+ payload: MachineCreatedResponsePayload;
32
+ }
@@ -0,0 +1,23 @@
1
+ import { PoolContext } from "../../v2/contexts/pool-context";
2
+ import { ValidateNestedType } from "../../decorators/validate-nested-type.decorator";
3
+ import { LudeoEvent } from "../../infra/ludeo-event";
4
+ import { BaseCloudPoolConfiguration } from "../types";
5
+
6
+ export class SetPoolEvent extends LudeoEvent {
7
+ static readonly EVENT_NAME = "cloud-pools.set-pool";
8
+
9
+ constructor(
10
+ payload: Partial<BaseCloudPoolConfiguration>,
11
+ context: PoolContext
12
+ ) {
13
+ super(SetPoolEvent.EVENT_NAME);
14
+ this.payload = payload;
15
+ this.context = context;
16
+ }
17
+
18
+ @ValidateNestedType(() => PoolContext)
19
+ context: PoolContext;
20
+
21
+ @ValidateNestedType(() => BaseCloudPoolConfiguration)
22
+ payload: Partial<BaseCloudPoolConfiguration>;
23
+ }
@@ -0,0 +1,43 @@
1
+ import { IsUUID, IsEnum } from "class-validator";
2
+
3
+ import { CloudResourceContext } from "../contexts";
4
+ import { LudeoEvent } from "../../infra/ludeo-event";
5
+ import { ValidateNestedType } from "../../decorators/validate-nested-type.decorator";
6
+ import {
7
+ AWSProviderSettings,
8
+ CloudProviderSettings,
9
+ CloudProvider,
10
+ } from "../types";
11
+
12
+ export class TerminateGameResourceRequestPayload {
13
+ @IsUUID()
14
+ gameResourceId: string;
15
+
16
+ @IsUUID()
17
+ gamePoolId: string;
18
+
19
+ @ValidateNestedType(() => AWSProviderSettings)
20
+ providerSettings: CloudProviderSettings;
21
+
22
+ @IsEnum(CloudProvider)
23
+ cloudProvider: CloudProvider;
24
+ }
25
+
26
+ export class TerminateGameResourceRequest extends LudeoEvent {
27
+ static readonly EVENT_NAME = "cloud-pools.terminate-game-resource-request";
28
+
29
+ constructor(
30
+ payload: TerminateGameResourceRequestPayload,
31
+ context: CloudResourceContext
32
+ ) {
33
+ super(TerminateGameResourceRequest.EVENT_NAME);
34
+ this.payload = payload;
35
+ this.context = context;
36
+ }
37
+
38
+ @ValidateNestedType(() => CloudResourceContext)
39
+ context: CloudResourceContext;
40
+
41
+ @ValidateNestedType(() => TerminateGameResourceRequestPayload)
42
+ payload: TerminateGameResourceRequestPayload;
43
+ }
@@ -0,0 +1,29 @@
1
+ import { IsNumber, IsUUID } from "class-validator";
2
+
3
+ import { PoolContext } from "../../v2/contexts";
4
+ import { LudeoEvent } from "../../infra/ludeo-event";
5
+ import { ValidateNestedType } from "../../decorators/validate-nested-type.decorator";
6
+
7
+ export class TerminateGamesRequestPayload {
8
+ @IsUUID()
9
+ poolId: string;
10
+
11
+ @IsNumber()
12
+ quantity: number;
13
+ }
14
+
15
+ export class TerminateGamesRequest extends LudeoEvent {
16
+ static readonly EVENT_NAME = "cloud-pools.terminate-games-request";
17
+
18
+ constructor(payload: TerminateGamesRequestPayload, context: PoolContext) {
19
+ super(TerminateGamesRequest.EVENT_NAME);
20
+ this.payload = payload;
21
+ this.context = context;
22
+ }
23
+
24
+ @ValidateNestedType(() => PoolContext)
25
+ context: PoolContext;
26
+
27
+ @ValidateNestedType(() => TerminateGamesRequestPayload)
28
+ payload: TerminateGamesRequestPayload;
29
+ }
@@ -0,0 +1,44 @@
1
+ import { IsArray, IsEnum, IsUUID } from "class-validator";
2
+
3
+ import { CloudResourceContext } from "../contexts";
4
+ import { LudeoEvent } from "../../infra/ludeo-event";
5
+ import { ValidateNestedType } from "../../decorators/validate-nested-type.decorator";
6
+ import {
7
+ AWSProviderSettings,
8
+ CloudProvider,
9
+ CloudProviderSettings,
10
+ } from "../types";
11
+
12
+ export class TerminateMachineResourceBatchRequestPayload {
13
+ @IsArray()
14
+ machineResourceIds: string[];
15
+
16
+ @IsUUID()
17
+ machinePoolId: string;
18
+
19
+ @IsEnum(CloudProvider)
20
+ cloudProvider: CloudProvider;
21
+
22
+ @ValidateNestedType(() => AWSProviderSettings)
23
+ cloudProviderSettings: CloudProviderSettings;
24
+ }
25
+
26
+ export class TerminateMachineResourceBatchRequest extends LudeoEvent {
27
+ static readonly EVENT_NAME =
28
+ "cloud-pools.terminate-machine-resource-batch-request";
29
+
30
+ constructor(
31
+ payload: TerminateMachineResourceBatchRequestPayload,
32
+ context: CloudResourceContext
33
+ ) {
34
+ super(TerminateMachineResourceBatchRequest.EVENT_NAME);
35
+ this.payload = payload;
36
+ this.context = context;
37
+ }
38
+
39
+ @ValidateNestedType(() => CloudResourceContext)
40
+ context: CloudResourceContext;
41
+
42
+ @ValidateNestedType(() => TerminateMachineResourceBatchRequestPayload)
43
+ payload: TerminateMachineResourceBatchRequestPayload;
44
+ }
@@ -0,0 +1,29 @@
1
+ import { IsNumber, IsUUID } from "class-validator";
2
+
3
+ import { PoolContext } from "../../v2/contexts";
4
+ import { LudeoEvent } from "../../infra/ludeo-event";
5
+ import { ValidateNestedType } from "../../decorators/validate-nested-type.decorator";
6
+
7
+ export class TerminateMachinesRequestPayload {
8
+ @IsUUID()
9
+ poolId: string;
10
+
11
+ @IsNumber()
12
+ quantity: number;
13
+ }
14
+
15
+ export class TerminateMachinesRequest extends LudeoEvent {
16
+ static readonly EVENT_NAME = "cloud-pools.terminate-machines-request";
17
+
18
+ constructor(payload: TerminateMachinesRequestPayload, context: PoolContext) {
19
+ super(TerminateMachinesRequest.EVENT_NAME);
20
+ this.payload = payload;
21
+ this.context = context;
22
+ }
23
+
24
+ @ValidateNestedType(() => PoolContext)
25
+ context: PoolContext;
26
+
27
+ @ValidateNestedType(() => TerminateMachinesRequestPayload)
28
+ payload: TerminateMachinesRequestPayload;
29
+ }
@@ -0,0 +1,2 @@
1
+ export * as Events from "./events";
2
+ export * as Types from "./types";