@ludeo/cloud-common 1.2.95-dodofmine2 → 1.2.95-ygbeta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,9 @@
1
1
  import { LudeoEvent } from "../../infra/ludeo-event";
2
2
  import { CloudSessionContext } from "../contexts";
3
- import { AllocationRequestData, CloudProvider, CloudProviderSettings, CloudResourceProviderSettings, GameResourceSettings, LudeoResourceSettings } from "../types";
4
- export declare class AllocateLudeoResourceRequestPayload<T extends CloudProviderSettings = CloudProviderSettings, K extends CloudResourceProviderSettings = CloudResourceProviderSettings> {
3
+ import { AllocationRequestData, CloudProvider, CloudResourceProviderSettings, GameResourceSettings, LudeoResourceSettings } from "../types";
4
+ export declare class AllocateLudeoResourceRequestPayload<K extends CloudResourceProviderSettings = CloudResourceProviderSettings> {
5
5
  ludeoResourceId: string;
6
6
  ludeoPoolId: string;
7
- providerSettings: T;
8
7
  cloudProvider: CloudProvider;
9
8
  requestData: AllocationRequestData;
10
9
  gameResourceSettings: GameResourceSettings<K>;
@@ -27,10 +27,6 @@ __decorate([
27
27
  (0, class_validator_1.IsUUID)(),
28
28
  __metadata("design:type", String)
29
29
  ], AllocateLudeoResourceRequestPayload.prototype, "ludeoPoolId", void 0);
30
- __decorate([
31
- (0, validate_nested_type_decorator_1.ValidateNestedType)(types_1.getProviderSettingsType),
32
- __metadata("design:type", Object)
33
- ], AllocateLudeoResourceRequestPayload.prototype, "providerSettings", void 0);
34
30
  __decorate([
35
31
  (0, class_validator_1.IsEnum)(types_1.CloudProvider),
36
32
  __metadata("design:type", String)
@@ -1 +1 @@
1
- {"version":3,"file":"allocate-ludeo-resource-request.js","sourceRoot":"","sources":["../../../src/v4/events/allocate-ludeo-resource-request.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAuE;AACvE,yDAAqD;AACrD,oGAAqF;AACrF,0CAAkD;AAClD,oCAQkB;AAClB,4FAA4E;AAE5E,MAAa,mCAAmC;CAmC/C;AAnCD,kFAmCC;AA9BC;IADC,IAAA,wBAAM,GAAE;;4EACe;AAGxB;IADC,IAAA,wBAAM,GAAE;;wEACW;AAGpB;IADC,IAAA,mDAAkB,EAAC,+BAAuB,CAAC;;6EACxB;AAGpB;IADC,IAAA,wBAAM,EAAC,qBAAa,CAAC;;0EACO;AAG7B;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,6BAAqB,CAAC;8BACnC,6BAAqB;wEAAC;AAGnC;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,4BAAoB,CAAC;8BACzB,4BAAoB;iFAAI;AAG9C;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,6BAAqB,CAAC;8BACzB,6BAAqB;kFAAC;AAG7C;IADC,IAAA,wBAAM,GAAE;;6EACgB;AAIzB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0CAAa,GAAE;;6EACU;AAI1B;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;8EACgB;AAG7B,MAAa,4BAA6B,SAAQ,wBAAU;IAG1D,YACE,OAA4C,EAC5C,OAA4B;QAE5B,KAAK,CAAC,4BAA4B,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AAVH,oEAiBC;AAhBiB,uCAAU,GAAG,6CAA6C,CAAC;AAY3E;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,8BAAmB,CAAC;8BACrC,8BAAmB;6DAAC;AAG7B;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,mCAAmC,CAAC;8BACrD,mCAAmC;6DAAC"}
1
+ {"version":3,"file":"allocate-ludeo-resource-request.js","sourceRoot":"","sources":["../../../src/v4/events/allocate-ludeo-resource-request.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAuE;AACvE,yDAAqD;AACrD,oGAAqF;AACrF,0CAAkD;AAClD,oCAQkB;AAClB,4FAA4E;AAE5E,MAAa,mCAAmC;CA+B/C;AA/BD,kFA+BC;AA3BC;IADC,IAAA,wBAAM,GAAE;;4EACe;AAGxB;IADC,IAAA,wBAAM,GAAE;;wEACW;AAGpB;IADC,IAAA,wBAAM,EAAC,qBAAa,CAAC;;0EACO;AAG7B;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,6BAAqB,CAAC;8BACnC,6BAAqB;wEAAC;AAGnC;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,4BAAoB,CAAC;8BACzB,4BAAoB;iFAAI;AAG9C;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,6BAAqB,CAAC;8BACzB,6BAAqB;kFAAC;AAG7C;IADC,IAAA,wBAAM,GAAE;;6EACgB;AAIzB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0CAAa,GAAE;;6EACU;AAI1B;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;8EACgB;AAG7B,MAAa,4BAA6B,SAAQ,wBAAU;IAG1D,YACE,OAA4C,EAC5C,OAA4B;QAE5B,KAAK,CAAC,4BAA4B,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AAVH,oEAiBC;AAhBiB,uCAAU,GAAG,6CAA6C,CAAC;AAY3E;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,8BAAmB,CAAC;8BACrC,8BAAmB;6DAAC;AAG7B;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,mCAAmC,CAAC;8BACrD,mCAAmC;6DAAC"}
@@ -1,5 +1,6 @@
1
1
  import { CloudSessionContext } from "../contexts";
2
2
  import { LudeoEvent } from "../../infra/ludeo-event";
3
+ import { CloudProvider } from "../types";
3
4
  export declare class SwapCloudUserGameplayRequestPayload {
4
5
  userId: string;
5
6
  gameResourceId: string;
@@ -7,6 +8,7 @@ export declare class SwapCloudUserGameplayRequestPayload {
7
8
  ludeoResourceId: string;
8
9
  cloudSessionId: string;
9
10
  actualUserSessionToken: string;
11
+ cloudProvider?: CloudProvider;
10
12
  }
11
13
  export declare class SwapCloudUserGameplayRequest extends LudeoEvent {
12
14
  static readonly EVENT_NAME = "cloud-resources.swap-cloud-user-gameplay-request";
@@ -14,6 +14,7 @@ const class_validator_1 = require("class-validator");
14
14
  const contexts_1 = require("../contexts");
15
15
  const ludeo_event_1 = require("../../infra/ludeo-event");
16
16
  const validate_nested_type_decorator_1 = require("../../decorators/validate-nested-type.decorator");
17
+ const types_1 = require("../types");
17
18
  class SwapCloudUserGameplayRequestPayload {
18
19
  }
19
20
  exports.SwapCloudUserGameplayRequestPayload = SwapCloudUserGameplayRequestPayload;
@@ -41,6 +42,11 @@ __decorate([
41
42
  (0, class_validator_1.IsString)(),
42
43
  __metadata("design:type", String)
43
44
  ], SwapCloudUserGameplayRequestPayload.prototype, "actualUserSessionToken", void 0);
45
+ __decorate([
46
+ (0, class_validator_1.IsOptional)(),
47
+ (0, class_validator_1.IsEnum)(types_1.CloudProvider),
48
+ __metadata("design:type", String)
49
+ ], SwapCloudUserGameplayRequestPayload.prototype, "cloudProvider", void 0);
44
50
  class SwapCloudUserGameplayRequest extends ludeo_event_1.LudeoEvent {
45
51
  constructor(payload, context) {
46
52
  super(SwapCloudUserGameplayRequest.EVENT_NAME);
@@ -1 +1 @@
1
- {"version":3,"file":"swap-cloud-user-gameplay-request.js","sourceRoot":"","sources":["../../../src/v4/events/swap-cloud-user-gameplay-request.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAmD;AAEnD,0CAAkD;AAClD,yDAAqD;AACrD,oGAAqF;AAErF,MAAa,mCAAmC;CAkB/C;AAlBD,kFAkBC;AAhBC;IADC,IAAA,wBAAM,GAAE;;mEACM;AAGf;IADC,IAAA,wBAAM,GAAE;;2EACc;AAGvB;IADC,IAAA,wBAAM,GAAE;;uEACU;AAGnB;IADC,IAAA,wBAAM,GAAE;;4EACe;AAGxB;IADC,IAAA,wBAAM,GAAE;;2EACc;AAGvB;IADC,IAAA,0BAAQ,GAAE;;mFACoB;AAGjC,MAAa,4BAA6B,SAAQ,wBAAU;IAI1D,YACE,OAA4C,EAC5C,OAA4B;QAE5B,KAAK,CAAC,4BAA4B,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AAXH,oEAkBC;AAjBiB,uCAAU,GACxB,kDAAkD,CAAC;AAYrD;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,8BAAmB,CAAC;8BACrC,8BAAmB;6DAAC;AAG7B;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,mCAAmC,CAAC;8BACrD,mCAAmC;6DAAC"}
1
+ {"version":3,"file":"swap-cloud-user-gameplay-request.js","sourceRoot":"","sources":["../../../src/v4/events/swap-cloud-user-gameplay-request.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAuE;AAEvE,0CAAkD;AAClD,yDAAqD;AACrD,oGAAqF;AACrF,oCAAyC;AAEzC,MAAa,mCAAmC;CAsB/C;AAtBD,kFAsBC;AApBC;IADC,IAAA,wBAAM,GAAE;;mEACM;AAGf;IADC,IAAA,wBAAM,GAAE;;2EACc;AAGvB;IADC,IAAA,wBAAM,GAAE;;uEACU;AAGnB;IADC,IAAA,wBAAM,GAAE;;4EACe;AAGxB;IADC,IAAA,wBAAM,GAAE;;2EACc;AAGvB;IADC,IAAA,0BAAQ,GAAE;;mFACoB;AAI/B;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,EAAC,qBAAa,CAAC;;0EACQ;AAGhC,MAAa,4BAA6B,SAAQ,wBAAU;IAI1D,YACE,OAA4C,EAC5C,OAA4B;QAE5B,KAAK,CAAC,4BAA4B,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AAXH,oEAkBC;AAjBiB,uCAAU,GACxB,kDAAkD,CAAC;AAYrD;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,8BAAmB,CAAC;8BACrC,8BAAmB;6DAAC;AAG7B;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,mCAAmC,CAAC;8BACrD,mCAAmC;6DAAC"}
@@ -1,10 +1,12 @@
1
1
  import { CloudSessionContext } from "../contexts";
2
2
  import { LudeoEvent } from "../../infra/ludeo-event";
3
+ import { CloudProvider } from "../types";
3
4
  export declare class SwapCloudUserRequestPayload {
4
5
  connectionId: string;
5
6
  defaultUserSessionToken: string;
6
7
  actualUserSessionToken?: string;
7
8
  ludeoResourceId: string;
9
+ cloudProvider?: CloudProvider;
8
10
  }
9
11
  export declare class SwapCloudUserRequest extends LudeoEvent {
10
12
  static readonly EVENT_NAME = "cloud-resources.swap-cloud-user-request";
@@ -14,6 +14,7 @@ const class_validator_1 = require("class-validator");
14
14
  const contexts_1 = require("../contexts");
15
15
  const ludeo_event_1 = require("../../infra/ludeo-event");
16
16
  const validate_nested_type_decorator_1 = require("../../decorators/validate-nested-type.decorator");
17
+ const types_1 = require("../types");
17
18
  class SwapCloudUserRequestPayload {
18
19
  }
19
20
  exports.SwapCloudUserRequestPayload = SwapCloudUserRequestPayload;
@@ -34,6 +35,11 @@ __decorate([
34
35
  (0, class_validator_1.IsUUID)(),
35
36
  __metadata("design:type", String)
36
37
  ], SwapCloudUserRequestPayload.prototype, "ludeoResourceId", void 0);
38
+ __decorate([
39
+ (0, class_validator_1.IsOptional)(),
40
+ (0, class_validator_1.IsEnum)(types_1.CloudProvider),
41
+ __metadata("design:type", String)
42
+ ], SwapCloudUserRequestPayload.prototype, "cloudProvider", void 0);
37
43
  class SwapCloudUserRequest extends ludeo_event_1.LudeoEvent {
38
44
  constructor(payload, context) {
39
45
  super(SwapCloudUserRequest.EVENT_NAME);
@@ -1 +1 @@
1
- {"version":3,"file":"swap-cloud-user-request.js","sourceRoot":"","sources":["../../../src/v4/events/swap-cloud-user-request.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA+D;AAE/D,0CAAkD;AAClD,yDAAqD;AACrD,oGAAqF;AAErF,MAAa,2BAA2B;CAavC;AAbD,kEAaC;AAXC;IADC,IAAA,wBAAM,GAAE;;iEACY;AAGrB;IADC,IAAA,0BAAQ,GAAE;;4EACqB;AAIhC;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;2EACqB;AAGhC;IADC,IAAA,wBAAM,GAAE;;oEACe;AAG1B,MAAa,oBAAqB,SAAQ,wBAAU;IAGlD,YACE,OAAoC,EACpC,OAA4B;QAE5B,KAAK,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AAVH,oDAiBC;AAhBiB,+BAAU,GAAG,yCAAyC,CAAC;AAYvE;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,8BAAmB,CAAC;8BACrC,8BAAmB;qDAAC;AAG7B;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,2BAA2B,CAAC;8BAC7C,2BAA2B;qDAAC"}
1
+ {"version":3,"file":"swap-cloud-user-request.js","sourceRoot":"","sources":["../../../src/v4/events/swap-cloud-user-request.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAuE;AAEvE,0CAAkD;AAClD,yDAAqD;AACrD,oGAAqF;AACrF,oCAAyC;AAEzC,MAAa,2BAA2B;CAiBvC;AAjBD,kEAiBC;AAfC;IADC,IAAA,wBAAM,GAAE;;iEACY;AAGrB;IADC,IAAA,0BAAQ,GAAE;;4EACqB;AAIhC;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;2EACqB;AAGhC;IADC,IAAA,wBAAM,GAAE;;oEACe;AAIxB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,EAAC,qBAAa,CAAC;;kEACQ;AAGhC,MAAa,oBAAqB,SAAQ,wBAAU;IAGlD,YACE,OAAoC,EACpC,OAA4B;QAE5B,KAAK,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AAVH,oDAiBC;AAhBiB,+BAAU,GAAG,yCAAyC,CAAC;AAYvE;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,8BAAmB,CAAC;8BACrC,8BAAmB;qDAAC;AAG7B;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,2BAA2B,CAAC;8BAC7C,2BAA2B;qDAAC"}
@@ -2,8 +2,10 @@ import { CloudPoolType } from "./type";
2
2
  import { CloudPoolStatus } from "./status";
3
3
  import { CloudPoolConfigurationType } from "./configuration";
4
4
  import { BaseCloudResource } from "./resource";
5
- import { CloudProviderSettings } from "../cloud";
5
+ import { AWSProviderSettings, CloudProviderSettings, MockProviderSettings } from "../cloud";
6
6
  export type CloudResourcesMap<T extends BaseCloudResource> = Record<string, T>;
7
+ export declare const isAWSPool: <T extends CloudPoolType | undefined = undefined>(pool: CloudPool<T, CloudProviderSettings>) => pool is CloudPool<T, AWSProviderSettings>;
8
+ export declare const isMockPool: <T extends CloudPoolType | undefined = undefined>(pool: CloudPool<T, CloudProviderSettings>) => pool is CloudPool<T, MockProviderSettings>;
7
9
  export declare class CloudPool<T extends CloudPoolType | undefined = undefined, C extends CloudProviderSettings = CloudProviderSettings> {
8
10
  id: string;
9
11
  status: CloudPoolStatus;
@@ -1,6 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CloudPool = void 0;
3
+ exports.CloudPool = exports.isMockPool = exports.isAWSPool = void 0;
4
+ const cloud_1 = require("../cloud");
5
+ const isAWSPool = (pool) => {
6
+ return pool.config.cloudProvider === cloud_1.CloudProvider.AWS;
7
+ };
8
+ exports.isAWSPool = isAWSPool;
9
+ const isMockPool = (pool) => {
10
+ return pool.config.cloudProvider === cloud_1.CloudProvider.MOCK;
11
+ };
12
+ exports.isMockPool = isMockPool;
4
13
  class CloudPool {
5
14
  }
6
15
  exports.CloudPool = CloudPool;
@@ -1 +1 @@
1
- {"version":3,"file":"pool.js","sourceRoot":"","sources":["../../../../src/v4/types/pools/pool.ts"],"names":[],"mappings":";;;AAQA,MAAa,SAAS;CASrB;AATD,8BASC"}
1
+ {"version":3,"file":"pool.js","sourceRoot":"","sources":["../../../../src/v4/types/pools/pool.ts"],"names":[],"mappings":";;;AAIA,oCAKkB;AAIX,MAAM,SAAS,GAAG,CACvB,IAAyC,EACE,EAAE;IAC7C,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,KAAK,qBAAa,CAAC,GAAG,CAAC;AACzD,CAAC,CAAC;AAJW,QAAA,SAAS,aAIpB;AAEK,MAAM,UAAU,GAAG,CACxB,IAAyC,EACG,EAAE;IAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,KAAK,qBAAa,CAAC,IAAI,CAAC;AAC1D,CAAC,CAAC;AAJW,QAAA,UAAU,cAIrB;AAEF,MAAa,SAAS;CASrB;AATD,8BASC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ludeo/cloud-common",
3
- "version": "1.2.95-dodofmine2",
3
+ "version": "1.2.95-ygbeta1",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "author": "Yahil Didi",
@@ -14,8 +14,7 @@ import {
14
14
  import { IsUUIDOrEmpty } from "../../decorators/is-uuid-or-empty.decorator";
15
15
 
16
16
  export class AllocateLudeoResourceRequestPayload<
17
- T extends CloudProviderSettings = CloudProviderSettings,
18
- K extends CloudResourceProviderSettings = CloudResourceProviderSettings
17
+ K extends CloudResourceProviderSettings = CloudResourceProviderSettings,
19
18
  > {
20
19
  @IsUUID()
21
20
  ludeoResourceId: string;
@@ -23,9 +22,6 @@ export class AllocateLudeoResourceRequestPayload<
23
22
  @IsUUID()
24
23
  ludeoPoolId: string;
25
24
 
26
- @ValidateNestedType(getProviderSettingsType)
27
- providerSettings: T;
28
-
29
25
  @IsEnum(CloudProvider)
30
26
  cloudProvider: CloudProvider;
31
27
 
@@ -1,8 +1,9 @@
1
- import { IsString, IsUUID } from "class-validator";
1
+ import { IsEnum, IsOptional, IsString, IsUUID } from "class-validator";
2
2
 
3
3
  import { CloudSessionContext } from "../contexts";
4
4
  import { LudeoEvent } from "../../infra/ludeo-event";
5
5
  import { ValidateNestedType } from "../../decorators/validate-nested-type.decorator";
6
+ import { CloudProvider } from "../types";
6
7
 
7
8
  export class SwapCloudUserGameplayRequestPayload {
8
9
  @IsUUID()
@@ -22,6 +23,10 @@ export class SwapCloudUserGameplayRequestPayload {
22
23
 
23
24
  @IsString()
24
25
  actualUserSessionToken: string;
26
+
27
+ @IsOptional()
28
+ @IsEnum(CloudProvider)
29
+ cloudProvider?: CloudProvider;
25
30
  }
26
31
 
27
32
  export class SwapCloudUserGameplayRequest extends LudeoEvent {
@@ -1,8 +1,9 @@
1
- import { IsOptional, IsString, IsUUID } from "class-validator";
1
+ import { IsEnum, IsOptional, IsString, IsUUID } from "class-validator";
2
2
 
3
3
  import { CloudSessionContext } from "../contexts";
4
4
  import { LudeoEvent } from "../../infra/ludeo-event";
5
5
  import { ValidateNestedType } from "../../decorators/validate-nested-type.decorator";
6
+ import { CloudProvider } from "../types";
6
7
 
7
8
  export class SwapCloudUserRequestPayload {
8
9
  @IsUUID()
@@ -17,6 +18,10 @@ export class SwapCloudUserRequestPayload {
17
18
 
18
19
  @IsUUID()
19
20
  ludeoResourceId: string;
21
+
22
+ @IsOptional()
23
+ @IsEnum(CloudProvider)
24
+ cloudProvider?: CloudProvider;
20
25
  }
21
26
 
22
27
  export class SwapCloudUserRequest extends LudeoEvent {
@@ -2,10 +2,27 @@ import { CloudPoolType } from "./type";
2
2
  import { CloudPoolStatus } from "./status";
3
3
  import { CloudPoolConfigurationType } from "./configuration";
4
4
  import { BaseCloudResource } from "./resource";
5
- import { CloudProviderSettings } from "../cloud";
5
+ import {
6
+ AWSProviderSettings,
7
+ CloudProvider,
8
+ CloudProviderSettings,
9
+ MockProviderSettings,
10
+ } from "../cloud";
6
11
 
7
12
  export type CloudResourcesMap<T extends BaseCloudResource> = Record<string, T>;
8
13
 
14
+ export const isAWSPool = <T extends CloudPoolType | undefined = undefined>(
15
+ pool: CloudPool<T, CloudProviderSettings>
16
+ ): pool is CloudPool<T, AWSProviderSettings> => {
17
+ return pool.config.cloudProvider === CloudProvider.AWS;
18
+ };
19
+
20
+ export const isMockPool = <T extends CloudPoolType | undefined = undefined>(
21
+ pool: CloudPool<T, CloudProviderSettings>
22
+ ): pool is CloudPool<T, MockProviderSettings> => {
23
+ return pool.config.cloudProvider === CloudProvider.MOCK;
24
+ };
25
+
9
26
  export class CloudPool<
10
27
  T extends CloudPoolType | undefined = undefined,
11
28
  C extends CloudProviderSettings = CloudProviderSettings,