@ludeo/cloud-common 1.2.96 → 1.2.97

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 (36) hide show
  1. package/dist/tsconfig.tsbuildinfo +1 -1
  2. package/dist/v4/events/cloud-session-allocated.js +1 -1
  3. package/dist/v4/events/cloud-session-allocated.js.map +1 -1
  4. package/dist/v4/events/game-resource-allocated-response.js +2 -1
  5. package/dist/v4/events/game-resource-allocated-response.js.map +1 -1
  6. package/dist/v4/events/ludeo-allocated-response.js +1 -1
  7. package/dist/v4/events/ludeo-allocated-response.js.map +1 -1
  8. package/dist/v4/events/ludeo-resource-allocated-response.js +1 -1
  9. package/dist/v4/events/ludeo-resource-allocated-response.js.map +1 -1
  10. package/dist/v4/events/swap-cloud-user-gameplay-request.d.ts +2 -0
  11. package/dist/v4/events/swap-cloud-user-gameplay-request.js +6 -0
  12. package/dist/v4/events/swap-cloud-user-gameplay-request.js.map +1 -1
  13. package/dist/v4/events/swap-cloud-user-request.d.ts +2 -0
  14. package/dist/v4/events/swap-cloud-user-request.js +6 -0
  15. package/dist/v4/events/swap-cloud-user-request.js.map +1 -1
  16. package/dist/v4/types/cloud/allocation-data.d.ts +2 -0
  17. package/dist/v4/types/cloud/allocation-data.js +11 -0
  18. package/dist/v4/types/cloud/allocation-data.js.map +1 -1
  19. package/dist/v4/types/cloud/allocation-request.js +2 -2
  20. package/dist/v4/types/cloud/allocation-request.js.map +1 -1
  21. package/dist/v4/types/cloud/provider-request.d.ts +2 -0
  22. package/dist/v4/types/cloud/provider-request.js +11 -0
  23. package/dist/v4/types/cloud/provider-request.js.map +1 -1
  24. package/dist/v4/types/cloud/session.js +2 -1
  25. package/dist/v4/types/cloud/session.js.map +1 -1
  26. package/package.json +1 -1
  27. package/src/v4/events/cloud-session-allocated.ts +2 -2
  28. package/src/v4/events/game-resource-allocated-response.ts +3 -7
  29. package/src/v4/events/ludeo-allocated-response.ts +2 -2
  30. package/src/v4/events/ludeo-resource-allocated-response.ts +3 -3
  31. package/src/v4/events/swap-cloud-user-gameplay-request.ts +6 -1
  32. package/src/v4/events/swap-cloud-user-request.ts +6 -1
  33. package/src/v4/types/cloud/allocation-data.ts +14 -0
  34. package/src/v4/types/cloud/allocation-request.ts +6 -4
  35. package/src/v4/types/cloud/provider-request.ts +13 -0
  36. package/src/v4/types/cloud/session.ts +3 -7
@@ -19,7 +19,7 @@ class CloudSessionAllocatedPayload {
19
19
  }
20
20
  exports.CloudSessionAllocatedPayload = CloudSessionAllocatedPayload;
21
21
  __decorate([
22
- (0, validate_nested_type_decorator_1.ValidateNestedType)(() => types_1.AwsAllocationData),
22
+ (0, validate_nested_type_decorator_1.ValidateNestedType)(types_1.getAllocationDataType),
23
23
  __metadata("design:type", Object)
24
24
  ], CloudSessionAllocatedPayload.prototype, "allocationData", void 0);
25
25
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-session-allocated.js","sourceRoot":"","sources":["../../../src/v4/events/cloud-session-allocated.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6EAAwE;AACxE,oGAAqF;AACrF,yDAAqD;AACrD,oCAA0E;AAC1E,qDAA+D;AAE/D,MAAa,4BAA4B;CAkBxC;AAlBD,oEAkBC;AAhBC;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,yBAAiB,CAAC;;oEACC;AAI7C;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;4DACG;AAIhB;IAFC,IAAA,wBAAM,GAAE;IACR,IAAA,4BAAU,GAAE;;iEACQ;AAIrB;IAFC,IAAA,wBAAM,GAAE;IACR,IAAA,4BAAU,GAAE;;qEACY;AAGzB;IADC,IAAA,wBAAM,GAAE;;oEACc;AAGzB,MAAa,qBAAsB,SAAQ,wBAAU;IAInD,YACE,OAAqC,EACrC,OAA4B;QAE5B,KAAK,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AAXH,sDAkBC;AAjBiB,gCAAU,GACxB,iDAAiD,CAAC;AAYpD;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,4BAA4B,CAAC;8BAC9C,4BAA4B;sDAAC;AAGtC;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,2CAAmB,CAAC;8BACrC,2CAAmB;sDAAC"}
1
+ {"version":3,"file":"cloud-session-allocated.js","sourceRoot":"","sources":["../../../src/v4/events/cloud-session-allocated.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6EAAwE;AACxE,oGAAqF;AACrF,yDAAqD;AACrD,oCAA8E;AAC9E,qDAA+D;AAE/D,MAAa,4BAA4B;CAkBxC;AAlBD,oEAkBC;AAhBC;IADC,IAAA,mDAAkB,EAAC,6BAAqB,CAAC;;oEACG;AAI7C;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;4DACG;AAIhB;IAFC,IAAA,wBAAM,GAAE;IACR,IAAA,4BAAU,GAAE;;iEACQ;AAIrB;IAFC,IAAA,wBAAM,GAAE;IACR,IAAA,4BAAU,GAAE;;qEACY;AAGzB;IADC,IAAA,wBAAM,GAAE;;oEACc;AAGzB,MAAa,qBAAsB,SAAQ,wBAAU;IAInD,YACE,OAAqC,EACrC,OAA4B;QAE5B,KAAK,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AAXH,sDAkBC;AAjBiB,gCAAU,GACxB,iDAAiD,CAAC;AAYpD;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,4BAA4B,CAAC;8BAC9C,4BAA4B;sDAAC;AAGtC;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,2CAAmB,CAAC;8BACrC,2CAAmB;sDAAC"}
@@ -15,6 +15,7 @@ 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
17
  const types_1 = require("../types");
18
+ const allocation_data_1 = require("../types/cloud/allocation-data");
18
19
  class GameResourceAllocatedResponsePayload {
19
20
  }
20
21
  exports.GameResourceAllocatedResponsePayload = GameResourceAllocatedResponsePayload;
@@ -27,7 +28,7 @@ __decorate([
27
28
  __metadata("design:type", String)
28
29
  ], GameResourceAllocatedResponsePayload.prototype, "gamePoolId", void 0);
29
30
  __decorate([
30
- (0, validate_nested_type_decorator_1.ValidateNestedType)(() => types_1.AwsAllocationData),
31
+ (0, validate_nested_type_decorator_1.ValidateNestedType)(allocation_data_1.getAllocationDataType),
31
32
  __metadata("design:type", Object)
32
33
  ], GameResourceAllocatedResponsePayload.prototype, "allocationData", void 0);
33
34
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"game-resource-allocated-response.js","sourceRoot":"","sources":["../../../src/v4/events/game-resource-allocated-response.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAyC;AAEzC,0CAAkD;AAClD,yDAAqD;AACrD,oGAAqF;AACrF,oCAIkB;AAElB,MAAa,oCAAoC;CAYhD;AAZD,oFAYC;AAVC;IADC,IAAA,wBAAM,GAAE;;4EACc;AAGvB;IADC,IAAA,wBAAM,GAAE;;wEACU;AAGnB;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,yBAAiB,CAAC;;4EACA;AAG5C;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,6BAAqB,CAAC;8BACnC,6BAAqB;yEAAC;AAGrC,MAAa,6BAA8B,SAAQ,wBAAU;IAI3D,YACE,OAA6C,EAC7C,OAA4B;QAE5B,KAAK,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AAXH,sEAkBC;AAjBiB,wCAAU,GACxB,kDAAkD,CAAC;AAYrD;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,8BAAmB,CAAC;8BACrC,8BAAmB;8DAAC;AAG7B;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,oCAAoC,CAAC;8BACtD,oCAAoC;8DAAC"}
1
+ {"version":3,"file":"game-resource-allocated-response.js","sourceRoot":"","sources":["../../../src/v4/events/game-resource-allocated-response.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAyC;AAEzC,0CAAkD;AAClD,yDAAqD;AACrD,oGAAqF;AACrF,oCAA8E;AAC9E,oEAAuE;AACvE,MAAa,oCAAoC;CAYhD;AAZD,oFAYC;AAVC;IADC,IAAA,wBAAM,GAAE;;4EACc;AAGvB;IADC,IAAA,wBAAM,GAAE;;wEACU;AAGnB;IADC,IAAA,mDAAkB,EAAC,uCAAqB,CAAC;;4EACE;AAG5C;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,6BAAqB,CAAC;8BACnC,6BAAqB;yEAAC;AAGrC,MAAa,6BAA8B,SAAQ,wBAAU;IAI3D,YACE,OAA6C,EAC7C,OAA4B;QAE5B,KAAK,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AAXH,sEAkBC;AAjBiB,wCAAU,GACxB,kDAAkD,CAAC;AAYrD;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,8BAAmB,CAAC;8BACrC,8BAAmB;8DAAC;AAG7B;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,oCAAoC,CAAC;8BACtD,oCAAoC;8DAAC"}
@@ -19,7 +19,7 @@ class LudeoAllocatedResponsePayload {
19
19
  }
20
20
  exports.LudeoAllocatedResponsePayload = LudeoAllocatedResponsePayload;
21
21
  __decorate([
22
- (0, validate_nested_type_decorator_1.ValidateNestedType)(() => types_1.AwsAllocationData),
22
+ (0, validate_nested_type_decorator_1.ValidateNestedType)(types_1.getAllocationDataType),
23
23
  __metadata("design:type", Object)
24
24
  ], LudeoAllocatedResponsePayload.prototype, "allocationData", void 0);
25
25
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"ludeo-allocated-response.js","sourceRoot":"","sources":["../../../src/v4/events/ludeo-allocated-response.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAqD;AACrD,oGAAqF;AACrF,0CAAkD;AAClD,oCAA0E;AAC1E,qDAAyC;AAEzC,MAAa,6BAA6B;CASzC;AATD,sEASC;AAPC;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,yBAAiB,CAAC;;qEACA;AAG5C;IADC,IAAA,wBAAM,GAAE;;kEACW;AAGpB;IADC,IAAA,wBAAM,GAAE;;sEACe;AAG1B,MAAa,sBAAuB,SAAQ,wBAAU;IAGpD,YACE,OAAsC,EACtC,OAA4B;QAE5B,KAAK,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AAVH,wDAiBC;AAhBiB,iCAAU,GAAG,sCAAsC,CAAC;AAYpE;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,8BAAmB,CAAC;8BACrC,8BAAmB;uDAAC;AAG7B;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,6BAA6B,CAAC;8BAC/C,6BAA6B;uDAAC"}
1
+ {"version":3,"file":"ludeo-allocated-response.js","sourceRoot":"","sources":["../../../src/v4/events/ludeo-allocated-response.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAqD;AACrD,oGAAqF;AACrF,0CAAkD;AAClD,oCAA8E;AAC9E,qDAAyC;AAEzC,MAAa,6BAA6B;CASzC;AATD,sEASC;AAPC;IADC,IAAA,mDAAkB,EAAC,6BAAqB,CAAC;;qEACE;AAG5C;IADC,IAAA,wBAAM,GAAE;;kEACW;AAGpB;IADC,IAAA,wBAAM,GAAE;;sEACe;AAG1B,MAAa,sBAAuB,SAAQ,wBAAU;IAGpD,YACE,OAAsC,EACtC,OAA4B;QAE5B,KAAK,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AAVH,wDAiBC;AAhBiB,iCAAU,GAAG,sCAAsC,CAAC;AAYpE;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,8BAAmB,CAAC;8BACrC,8BAAmB;uDAAC;AAG7B;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,6BAA6B,CAAC;8BAC/C,6BAA6B;uDAAC"}
@@ -27,7 +27,7 @@ __decorate([
27
27
  __metadata("design:type", String)
28
28
  ], LudeoResourceAllocatedResponsePayload.prototype, "ludeoPoolId", void 0);
29
29
  __decorate([
30
- (0, validate_nested_type_decorator_1.ValidateNestedType)(() => types_1.AwsAllocationData),
30
+ (0, validate_nested_type_decorator_1.ValidateNestedType)(types_1.getAllocationDataType),
31
31
  __metadata("design:type", Object)
32
32
  ], LudeoResourceAllocatedResponsePayload.prototype, "allocationData", void 0);
33
33
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"ludeo-resource-allocated-response.js","sourceRoot":"","sources":["../../../src/v4/events/ludeo-resource-allocated-response.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAmD;AACnD,yDAAqD;AACrD,oGAAqF;AACrF,0CAAkD;AAClD,oCAIkB;AAElB,MAAa,qCAAqC;CAYjD;AAZD,sFAYC;AAVC;IADC,IAAA,wBAAM,GAAE;;8EACe;AAGxB;IADC,IAAA,wBAAM,GAAE;;0EACW;AAGpB;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,yBAAiB,CAAC;;6EACA;AAG5C;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,6BAAqB,CAAC;8BACnC,6BAAqB;0EAAC;AAGrC,MAAa,8BAA+B,SAAQ,wBAAU;IAI5D,YACE,OAA8C,EAC9C,OAA4B;QAE5B,KAAK,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AAXH,wEAkBC;AAjBiB,yCAAU,GACxB,mDAAmD,CAAC;AAYtD;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,8BAAmB,CAAC;8BACrC,8BAAmB;+DAAC;AAG7B;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,qCAAqC,CAAC;8BACvD,qCAAqC;+DAAC"}
1
+ {"version":3,"file":"ludeo-resource-allocated-response.js","sourceRoot":"","sources":["../../../src/v4/events/ludeo-resource-allocated-response.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAyC;AACzC,yDAAqD;AACrD,oGAAqF;AACrF,0CAAkD;AAClD,oCAIkB;AAElB,MAAa,qCAAqC;CAYjD;AAZD,sFAYC;AAVC;IADC,IAAA,wBAAM,GAAE;;8EACe;AAGxB;IADC,IAAA,wBAAM,GAAE;;0EACW;AAGpB;IADC,IAAA,mDAAkB,EAAC,6BAAqB,CAAC;;6EACE;AAG5C;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,6BAAqB,CAAC;8BACnC,6BAAqB;0EAAC;AAGrC,MAAa,8BAA+B,SAAQ,wBAAU;IAI5D,YACE,OAA8C,EAC9C,OAA4B;QAE5B,KAAK,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AAXH,wEAkBC;AAjBiB,yCAAU,GACxB,mDAAmD,CAAC;AAYtD;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,8BAAmB,CAAC;8BACrC,8BAAmB;+DAAC;AAG7B;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,qCAAqC,CAAC;8BACvD,qCAAqC;+DAAC"}
@@ -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"}
@@ -1,3 +1,5 @@
1
+ import { TypeHelpOptions } from "class-transformer";
1
2
  import { AwsAllocationData } from "./aws";
2
3
  import { MockAllocationData } from "./mock";
3
4
  export type CloudProviderAllocationData = AwsAllocationData | MockAllocationData;
5
+ export declare const getAllocationDataType: ({ object, property, }: TypeHelpOptions) => typeof AwsAllocationData | typeof MockAllocationData;
@@ -1,3 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAllocationDataType = void 0;
4
+ const aws_1 = require("./aws");
5
+ const mock_1 = require("./mock");
6
+ const getAllocationDataType = ({ object, property, }) => {
7
+ const allocationData = object[property];
8
+ if ("streamGroupId" in allocationData) {
9
+ return aws_1.AwsAllocationData;
10
+ }
11
+ return mock_1.MockAllocationData;
12
+ };
13
+ exports.getAllocationDataType = getAllocationDataType;
3
14
  //# sourceMappingURL=allocation-data.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"allocation-data.js","sourceRoot":"","sources":["../../../../src/v4/types/cloud/allocation-data.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"allocation-data.js","sourceRoot":"","sources":["../../../../src/v4/types/cloud/allocation-data.ts"],"names":[],"mappings":";;;AAEA,+BAA0C;AAC1C,iCAA4C;AAMrC,MAAM,qBAAqB,GAAG,CAAC,EACpC,MAAM,EACN,QAAQ,GACQ,EAAE,EAAE;IACpB,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,eAAe,IAAI,cAAc,EAAE,CAAC;QACtC,OAAO,uBAAiB,CAAC;IAC3B,CAAC;IAED,OAAO,yBAAkB,CAAC;AAC5B,CAAC,CAAC;AAVW,QAAA,qBAAqB,yBAUhC"}
@@ -12,12 +12,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.AllocationRequestData = void 0;
13
13
  const class_validator_1 = require("class-validator");
14
14
  const decorators_1 = require("../../../decorators");
15
- const aws_1 = require("./aws");
15
+ const provider_request_1 = require("./provider-request");
16
16
  class AllocationRequestData {
17
17
  }
18
18
  exports.AllocationRequestData = AllocationRequestData;
19
19
  __decorate([
20
- (0, decorators_1.ValidateNestedType)(() => aws_1.AWSRequestData),
20
+ (0, decorators_1.ValidateNestedType)(provider_request_1.getProviderRequestType),
21
21
  (0, class_validator_1.IsDefined)(),
22
22
  __metadata("design:type", Object)
23
23
  ], AllocationRequestData.prototype, "cloudProviderRequest", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"allocation-request.js","sourceRoot":"","sources":["../../../../src/v4/types/cloud/allocation-request.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA0E;AAC1E,oDAAyD;AACzD,+BAAuC;AAGvC,MAAa,qBAAqB;CAejC;AAfD,sDAeC;AAZC;IAFC,IAAA,+BAAkB,EAAC,GAAG,EAAE,CAAC,oBAAc,CAAC;IACxC,IAAA,2BAAS,GAAE;;mEAC+B;AAI3C;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;uDACK;AAIlB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;qDACG;AAGhB;IADC,IAAA,0BAAQ,GAAE;;2DACU"}
1
+ {"version":3,"file":"allocation-request.js","sourceRoot":"","sources":["../../../../src/v4/types/cloud/allocation-request.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAkE;AAClE,oDAAyD;AACzD,yDAG4B;AAE5B,MAAa,qBAAqB;CAejC;AAfD,sDAeC;AAZC;IAFC,IAAA,+BAAkB,EAAC,yCAAsB,CAAC;IAC1C,IAAA,2BAAS,GAAE;;mEAC+B;AAI3C;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;uDACK;AAIlB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;qDACG;AAGhB;IADC,IAAA,0BAAQ,GAAE;;2DACU"}
@@ -1,3 +1,5 @@
1
+ import { TypeHelpOptions } from "class-transformer";
1
2
  import { AWSRequestData } from "./aws";
2
3
  import { MockRequestData } from "./mock";
3
4
  export type CloudProviderRequest = AWSRequestData | MockRequestData;
5
+ export declare const getProviderRequestType: ({ object, property, }: TypeHelpOptions) => typeof AWSRequestData;
@@ -1,3 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getProviderRequestType = void 0;
4
+ const aws_1 = require("./aws");
5
+ const mock_1 = require("./mock");
6
+ const getProviderRequestType = ({ object, property, }) => {
7
+ const providerRequest = object[property];
8
+ if ("streamGroupId" in providerRequest) {
9
+ return aws_1.AWSRequestData;
10
+ }
11
+ return mock_1.MockRequestData;
12
+ };
13
+ exports.getProviderRequestType = getProviderRequestType;
3
14
  //# sourceMappingURL=provider-request.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider-request.js","sourceRoot":"","sources":["../../../../src/v4/types/cloud/provider-request.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"provider-request.js","sourceRoot":"","sources":["../../../../src/v4/types/cloud/provider-request.ts"],"names":[],"mappings":";;;AACA,+BAAuC;AACvC,iCAAyC;AAIlC,MAAM,sBAAsB,GAAG,CAAC,EACrC,MAAM,EACN,QAAQ,GACQ,EAAE,EAAE;IACpB,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,eAAe,IAAI,eAAe,EAAE,CAAC;QACvC,OAAO,oBAAc,CAAC;IACxB,CAAC;IAED,OAAO,sBAAe,CAAC;AACzB,CAAC,CAAC;AAVW,QAAA,sBAAsB,0BAUjC"}
@@ -14,6 +14,7 @@ const class_validator_1 = require("class-validator");
14
14
  const decorators_1 = require("../../../decorators");
15
15
  const cloud_1 = require("../cloud");
16
16
  const allocation_request_1 = require("./allocation-request");
17
+ const allocation_data_1 = require("./allocation-data");
17
18
  var CloudSessionStatus;
18
19
  (function (CloudSessionStatus) {
19
20
  CloudSessionStatus["Created"] = "created";
@@ -75,7 +76,7 @@ __decorate([
75
76
  ], CloudSession.prototype, "requestData", void 0);
76
77
  __decorate([
77
78
  (0, class_validator_1.IsOptional)(),
78
- (0, decorators_1.ValidateNestedType)(() => cloud_1.AwsAllocationData),
79
+ (0, decorators_1.ValidateNestedType)(allocation_data_1.getAllocationDataType),
79
80
  __metadata("design:type", Object)
80
81
  ], CloudSession.prototype, "allocationData", void 0);
81
82
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../src/v4/types/cloud/session.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAMyB;AACzB,oDAAyD;AACzD,oCAIkB;AAClB,6DAA6D;AAE7D,IAAY,kBAQX;AARD,WAAY,kBAAkB;IAC5B,yCAAmB,CAAA;IACnB,mDAA6B,CAAA;IAC7B,8DAAwC,CAAA;IACxC,6CAAuB,CAAA;IACvB,6CAAuB,CAAA;IACvB,+CAAyB,CAAA;IACzB,uCAAiB,CAAA;AACnB,CAAC,EARW,kBAAkB,kCAAlB,kBAAkB,QAQ7B;AAED,MAAa,YAAY;CAmExB;AAnED,oCAmEC;AAjEC;IADC,IAAA,wBAAM,GAAE;;wCACE;AAGX;IADC,IAAA,wBAAM,GAAE;;4CACM;AAGf;IADC,IAAA,wBAAM,GAAE;;4CACM;AAGf;IADC,IAAA,wBAAM,GAAE;;6CACO;AAGhB;IADC,IAAA,0BAAQ,GAAE;;+CACO;AAGlB;IADC,IAAA,0BAAQ,GAAE;;+CACO;AAGlB;IADC,IAAA,wBAAM,EAAC,kBAAkB,CAAC;;4CACA;AAG3B;IADC,IAAA,wBAAM,EAAC,qBAAa,CAAC;;mDACO;AAI7B;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;oDACe;AAIxB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;4CACO;AAGhB;IADC,IAAA,+BAAkB,EAAC,GAAG,EAAE,CAAC,0CAAqB,CAAC;8BACnC,0CAAqB;iDAAC;AAInC;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,+BAAkB,EAAC,GAAG,EAAE,CAAC,yBAAiB,CAAC;;oDACC;AAG7C;IADC,IAAA,wBAAM,GAAE;;qDACe;AAKxB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;gDACS;AAIpB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;gDACS;AAIpB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;iDACY;AAIrB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;qDACgB;AAIzB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;kDACa;AAItB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;mDACc"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../src/v4/types/cloud/session.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAMyB;AACzB,oDAAyD;AACzD,oCAAsE;AACtE,6DAA6D;AAC7D,uDAA0D;AAC1D,IAAY,kBAQX;AARD,WAAY,kBAAkB;IAC5B,yCAAmB,CAAA;IACnB,mDAA6B,CAAA;IAC7B,8DAAwC,CAAA;IACxC,6CAAuB,CAAA;IACvB,6CAAuB,CAAA;IACvB,+CAAyB,CAAA;IACzB,uCAAiB,CAAA;AACnB,CAAC,EARW,kBAAkB,kCAAlB,kBAAkB,QAQ7B;AAED,MAAa,YAAY;CAmExB;AAnED,oCAmEC;AAjEC;IADC,IAAA,wBAAM,GAAE;;wCACE;AAGX;IADC,IAAA,wBAAM,GAAE;;4CACM;AAGf;IADC,IAAA,wBAAM,GAAE;;4CACM;AAGf;IADC,IAAA,wBAAM,GAAE;;6CACO;AAGhB;IADC,IAAA,0BAAQ,GAAE;;+CACO;AAGlB;IADC,IAAA,0BAAQ,GAAE;;+CACO;AAGlB;IADC,IAAA,wBAAM,EAAC,kBAAkB,CAAC;;4CACA;AAG3B;IADC,IAAA,wBAAM,EAAC,qBAAa,CAAC;;mDACO;AAI7B;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;oDACe;AAIxB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;4CACO;AAGhB;IADC,IAAA,+BAAkB,EAAC,GAAG,EAAE,CAAC,0CAAqB,CAAC;8BACnC,0CAAqB;iDAAC;AAInC;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,+BAAkB,EAAC,uCAAqB,CAAC;;oDACG;AAG7C;IADC,IAAA,wBAAM,GAAE;;qDACe;AAKxB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;gDACS;AAIpB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;gDACS;AAIpB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;iDACY;AAIrB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;qDACgB;AAIzB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;kDACa;AAItB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;mDACc"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ludeo/cloud-common",
3
- "version": "1.2.96",
3
+ "version": "1.2.97",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "author": "Yahil Didi",
@@ -1,11 +1,11 @@
1
1
  import { CloudSessionContext } from "../contexts/cloud-session-context";
2
2
  import { ValidateNestedType } from "../../decorators/validate-nested-type.decorator";
3
3
  import { LudeoEvent } from "../../infra/ludeo-event";
4
- import { AwsAllocationData, CloudProviderAllocationData } from "../types";
4
+ import { CloudProviderAllocationData, getAllocationDataType } from "../types";
5
5
  import { IsOptional, IsString, IsUUID } from "class-validator";
6
6
 
7
7
  export class CloudSessionAllocatedPayload {
8
- @ValidateNestedType(() => AwsAllocationData)
8
+ @ValidateNestedType(getAllocationDataType)
9
9
  allocationData?: CloudProviderAllocationData;
10
10
 
11
11
  @IsString()
@@ -3,12 +3,8 @@ import { IsUUID } from "class-validator";
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 {
7
- AllocationRequestData,
8
- AwsAllocationData,
9
- CloudProviderAllocationData,
10
- } from "../types";
11
-
6
+ import { AllocationRequestData, CloudProviderAllocationData } from "../types";
7
+ import { getAllocationDataType } from "../types/cloud/allocation-data";
12
8
  export class GameResourceAllocatedResponsePayload {
13
9
  @IsUUID()
14
10
  gameResourceId: string;
@@ -16,7 +12,7 @@ export class GameResourceAllocatedResponsePayload {
16
12
  @IsUUID()
17
13
  gamePoolId: string;
18
14
 
19
- @ValidateNestedType(() => AwsAllocationData)
15
+ @ValidateNestedType(getAllocationDataType)
20
16
  allocationData: CloudProviderAllocationData;
21
17
 
22
18
  @ValidateNestedType(() => AllocationRequestData)
@@ -1,11 +1,11 @@
1
1
  import { LudeoEvent } from "../../infra/ludeo-event";
2
2
  import { ValidateNestedType } from "../../decorators/validate-nested-type.decorator";
3
3
  import { CloudSessionContext } from "../contexts";
4
- import { AwsAllocationData, CloudProviderAllocationData } from "../types";
4
+ import { CloudProviderAllocationData, getAllocationDataType } from "../types";
5
5
  import { IsUUID } from "class-validator";
6
6
 
7
7
  export class LudeoAllocatedResponsePayload {
8
- @ValidateNestedType(() => AwsAllocationData)
8
+ @ValidateNestedType(getAllocationDataType)
9
9
  allocationData: CloudProviderAllocationData;
10
10
 
11
11
  @IsUUID()
@@ -1,11 +1,11 @@
1
- import { IsString, IsUUID } from "class-validator";
1
+ import { IsUUID } from "class-validator";
2
2
  import { LudeoEvent } from "../../infra/ludeo-event";
3
3
  import { ValidateNestedType } from "../../decorators/validate-nested-type.decorator";
4
4
  import { CloudSessionContext } from "../contexts";
5
5
  import {
6
6
  AllocationRequestData,
7
- AwsAllocationData,
8
7
  CloudProviderAllocationData,
8
+ getAllocationDataType,
9
9
  } from "../types";
10
10
 
11
11
  export class LudeoResourceAllocatedResponsePayload {
@@ -15,7 +15,7 @@ export class LudeoResourceAllocatedResponsePayload {
15
15
  @IsUUID()
16
16
  ludeoPoolId: string;
17
17
 
18
- @ValidateNestedType(() => AwsAllocationData)
18
+ @ValidateNestedType(getAllocationDataType)
19
19
  allocationData: CloudProviderAllocationData;
20
20
 
21
21
  @ValidateNestedType(() => AllocationRequestData)
@@ -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 {
@@ -1,6 +1,20 @@
1
+ import { TypeHelpOptions } from "class-transformer";
2
+
1
3
  import { AwsAllocationData } from "./aws";
2
4
  import { MockAllocationData } from "./mock";
3
5
 
4
6
  export type CloudProviderAllocationData =
5
7
  | AwsAllocationData
6
8
  | MockAllocationData;
9
+
10
+ export const getAllocationDataType = ({
11
+ object,
12
+ property,
13
+ }: TypeHelpOptions) => {
14
+ const allocationData = object[property];
15
+ if ("streamGroupId" in allocationData) {
16
+ return AwsAllocationData;
17
+ }
18
+
19
+ return MockAllocationData;
20
+ };
@@ -1,10 +1,12 @@
1
- import { IsDefined, IsOptional, IsString, IsUUID } from "class-validator";
1
+ import { IsDefined, IsOptional, IsString } from "class-validator";
2
2
  import { ValidateNestedType } from "../../../decorators";
3
- import { AWSRequestData } from "./aws";
4
- import { CloudProviderRequest } from "./provider-request";
3
+ import {
4
+ CloudProviderRequest,
5
+ getProviderRequestType,
6
+ } from "./provider-request";
5
7
 
6
8
  export class AllocationRequestData {
7
- @ValidateNestedType(() => AWSRequestData)
9
+ @ValidateNestedType(getProviderRequestType)
8
10
  @IsDefined()
9
11
  cloudProviderRequest: CloudProviderRequest;
10
12
 
@@ -1,4 +1,17 @@
1
+ import { TypeHelpOptions } from "class-transformer";
1
2
  import { AWSRequestData } from "./aws";
2
3
  import { MockRequestData } from "./mock";
3
4
 
4
5
  export type CloudProviderRequest = AWSRequestData | MockRequestData;
6
+
7
+ export const getProviderRequestType = ({
8
+ object,
9
+ property,
10
+ }: TypeHelpOptions) => {
11
+ const providerRequest = object[property];
12
+ if ("streamGroupId" in providerRequest) {
13
+ return AWSRequestData;
14
+ }
15
+
16
+ return MockRequestData;
17
+ };
@@ -6,13 +6,9 @@ import {
6
6
  IsOptional,
7
7
  } from "class-validator";
8
8
  import { ValidateNestedType } from "../../../decorators";
9
- import {
10
- AwsAllocationData,
11
- CloudProvider,
12
- CloudProviderAllocationData,
13
- } from "../cloud";
9
+ import { CloudProvider, CloudProviderAllocationData } from "../cloud";
14
10
  import { AllocationRequestData } from "./allocation-request";
15
-
11
+ import { getAllocationDataType } from "./allocation-data";
16
12
  export enum CloudSessionStatus {
17
13
  Created = "created",
18
14
  PendingAllocation = "pending",
@@ -60,7 +56,7 @@ export class CloudSession {
60
56
  requestData: AllocationRequestData;
61
57
 
62
58
  @IsOptional()
63
- @ValidateNestedType(() => AwsAllocationData)
59
+ @ValidateNestedType(getAllocationDataType)
64
60
  allocationData?: CloudProviderAllocationData;
65
61
 
66
62
  @IsUUID()