@ludeo/cloud-common 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/contexts/cloud-resource-context.d.ts +6 -0
- package/dist/contexts/cloud-resource-context.js +33 -0
- package/dist/contexts/cloud-resource-context.js.map +1 -0
- package/dist/contexts/cloud-session-context.d.ts +12 -0
- package/dist/contexts/cloud-session-context.js +61 -0
- package/dist/contexts/cloud-session-context.js.map +1 -0
- package/dist/contexts/create-cloud-resource-request-context.d.ts +5 -0
- package/dist/contexts/create-cloud-resource-request-context.js +30 -0
- package/dist/contexts/create-cloud-resource-request-context.js.map +1 -0
- package/dist/contexts/index.d.ts +4 -0
- package/dist/contexts/index.js +21 -0
- package/dist/contexts/index.js.map +1 -0
- package/dist/contexts/pool-context.d.ts +5 -0
- package/dist/contexts/pool-context.js +26 -0
- package/dist/contexts/pool-context.js.map +1 -0
- package/dist/decorators/validate-nested-type.decorator.d.ts +1 -0
- package/dist/decorators/validate-nested-type.decorator.js +10 -0
- package/dist/decorators/validate-nested-type.decorator.js.map +1 -0
- package/dist/events/allocate-cloud-resource-request.event.d.ts +13 -0
- package/dist/events/allocate-cloud-resource-request.event.js +45 -0
- package/dist/events/allocate-cloud-resource-request.event.js.map +1 -0
- package/dist/events/allocate-cloud-session-failed.event.d.ts +11 -0
- package/dist/events/allocate-cloud-session-failed.event.js +41 -0
- package/dist/events/allocate-cloud-session-failed.event.js.map +1 -0
- package/dist/events/allocate-cloud-session-request.event.d.ts +12 -0
- package/dist/events/allocate-cloud-session-request.event.js +41 -0
- package/dist/events/allocate-cloud-session-request.event.js.map +1 -0
- package/dist/events/allocate-pool-item-failed.event.d.ts +11 -0
- package/dist/events/allocate-pool-item-failed.event.js +41 -0
- package/dist/events/allocate-pool-item-failed.event.js.map +1 -0
- package/dist/events/allocate-pool-item-request.event.d.ts +12 -0
- package/dist/events/allocate-pool-item-request.event.js +41 -0
- package/dist/events/allocate-pool-item-request.event.js.map +1 -0
- package/dist/events/cloud-resource-allocated.event.d.ts +12 -0
- package/dist/events/cloud-resource-allocated.event.js +41 -0
- package/dist/events/cloud-resource-allocated.event.js.map +1 -0
- package/dist/events/cloud-resource-created.event.d.ts +20 -0
- package/dist/events/cloud-resource-created.event.js +64 -0
- package/dist/events/cloud-resource-created.event.js.map +1 -0
- package/dist/events/cloud-resource-creation-failed.event.d.ts +18 -0
- package/dist/events/cloud-resource-creation-failed.event.js +69 -0
- package/dist/events/cloud-resource-creation-failed.event.js.map +1 -0
- package/dist/events/cloud-resource-status.event.d.ts +15 -0
- package/dist/events/cloud-resource-status.event.js +55 -0
- package/dist/events/cloud-resource-status.event.js.map +1 -0
- package/dist/events/cloud-session-allocated.event.d.ts +12 -0
- package/dist/events/cloud-session-allocated.event.js +41 -0
- package/dist/events/cloud-session-allocated.event.js.map +1 -0
- package/dist/events/cloud-session-ended.event.d.ts +8 -0
- package/dist/events/cloud-session-ended.event.js +28 -0
- package/dist/events/cloud-session-ended.event.js.map +1 -0
- package/dist/events/create-cloud-resource-request.event.d.ts +16 -0
- package/dist/events/create-cloud-resource-request.event.js +58 -0
- package/dist/events/create-cloud-resource-request.event.js.map +1 -0
- package/dist/events/index.d.ts +23 -0
- package/dist/events/index.js +40 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/monitor-pool-task.event.d.ts +10 -0
- package/dist/events/monitor-pool-task.event.js +31 -0
- package/dist/events/monitor-pool-task.event.js.map +1 -0
- package/dist/events/pool-created.event.d.ts +9 -0
- package/dist/events/pool-created.event.js +34 -0
- package/dist/events/pool-created.event.js.map +1 -0
- package/dist/events/pool-item-allocated.event.d.ts +9 -0
- package/dist/events/pool-item-allocated.event.js +34 -0
- package/dist/events/pool-item-allocated.event.js.map +1 -0
- package/dist/events/pool-resize-success.event.d.ts +11 -0
- package/dist/events/pool-resize-success.event.js +41 -0
- package/dist/events/pool-resize-success.event.js.map +1 -0
- package/dist/events/pool-status.event.d.ts +14 -0
- package/dist/events/pool-status.event.js +50 -0
- package/dist/events/pool-status.event.js.map +1 -0
- package/dist/events/pool-updated.event.d.ts +9 -0
- package/dist/events/pool-updated.event.js +34 -0
- package/dist/events/pool-updated.event.js.map +1 -0
- package/dist/events/remove-scheduled-task-request.event.d.ts +11 -0
- package/dist/events/remove-scheduled-task-request.event.js +34 -0
- package/dist/events/remove-scheduled-task-request.event.js.map +1 -0
- package/dist/events/resize-pool-request.event.d.ts +15 -0
- package/dist/events/resize-pool-request.event.js +50 -0
- package/dist/events/resize-pool-request.event.js.map +1 -0
- package/dist/events/schedule-task-request.event.d.ts +30 -0
- package/dist/events/schedule-task-request.event.js +71 -0
- package/dist/events/schedule-task-request.event.js.map +1 -0
- package/dist/events/set-pool.event.d.ts +9 -0
- package/dist/events/set-pool.event.js +34 -0
- package/dist/events/set-pool.event.js.map +1 -0
- package/dist/events/token-required.event.d.ts +20 -0
- package/dist/events/token-required.event.js +34 -0
- package/dist/events/token-required.event.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/infra/ludeo-event.d.ts +7 -0
- package/dist/infra/ludeo-event.js +40 -0
- package/dist/infra/ludeo-event.js.map +1 -0
- package/dist/models/cloud-pool.d.ts +9 -0
- package/dist/models/cloud-pool.js +7 -0
- package/dist/models/cloud-pool.js.map +1 -0
- package/dist/models/index.d.ts +1 -0
- package/dist/models/index.js +18 -0
- package/dist/models/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/index.d.ts +81 -0
- package/dist/types/index.js +112 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +19 -0
- package/src/contexts/cloud-resource-context.ts +15 -0
- package/src/contexts/cloud-session-context.ts +38 -0
- package/src/contexts/create-cloud-resource-request-context.ts +11 -0
- package/src/contexts/index.ts +4 -0
- package/src/contexts/pool-context.ts +10 -0
- package/src/decorators/validate-nested-type.decorator.ts +7 -0
- package/src/events/allocate-cloud-resource-request.event.ts +34 -0
- package/src/events/allocate-cloud-session-failed.event.ts +28 -0
- package/src/events/allocate-cloud-session-request.event.ts +28 -0
- package/src/events/allocate-pool-item-failed.event.ts +28 -0
- package/src/events/allocate-pool-item-request.event.ts +29 -0
- package/src/events/cloud-resource-allocated.event.ts +28 -0
- package/src/events/cloud-resource-created.event.ts +38 -0
- package/src/events/cloud-resource-creation-failed.event.ts +56 -0
- package/src/events/cloud-resource-status.event.ts +39 -0
- package/src/events/cloud-session-allocated.event.ts +29 -0
- package/src/events/cloud-session-ended.event.ts +17 -0
- package/src/events/create-cloud-resource-request.event.ts +45 -0
- package/src/events/index.ts +23 -0
- package/src/events/monitor-pool-task.event.ts +21 -0
- package/src/events/pool-created.event.ts +20 -0
- package/src/events/pool-item-allocated.event.ts +20 -0
- package/src/events/pool-resize-success.event.ts +25 -0
- package/src/events/pool-status.event.ts +30 -0
- package/src/events/pool-updated.event.ts +20 -0
- package/src/events/remove-scheduled-task-request.event.ts +22 -0
- package/src/events/resize-pool-request.event.ts +31 -0
- package/src/events/schedule-task-request.event.ts +50 -0
- package/src/events/set-pool.event.ts +20 -0
- package/src/events/token-required.event.ts +32 -0
- package/src/index.ts +4 -0
- package/src/infra/ludeo-event.ts +22 -0
- package/src/models/cloud-pool.ts +14 -0
- package/src/models/index.ts +1 -0
- package/src/types/index.ts +122 -0
- package/tsconfig.json +32 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { GameCast } from "@ludeo/aws-gamecast-sdk";
|
|
2
|
+
export declare class AWSRequestData {
|
|
3
|
+
signalRequest: string;
|
|
4
|
+
}
|
|
5
|
+
export type CloudProviderRequest = AWSRequestData;
|
|
6
|
+
export declare class CloudProviderRequestData {
|
|
7
|
+
authToken: string;
|
|
8
|
+
appToken: string;
|
|
9
|
+
cloudProviderRequest: CloudProviderRequest;
|
|
10
|
+
}
|
|
11
|
+
export declare enum CloudProvider {
|
|
12
|
+
AWS = "aws",
|
|
13
|
+
}
|
|
14
|
+
export declare class AWSResourceCreationConfig {
|
|
15
|
+
streamGroupId: string;
|
|
16
|
+
identifier: GameCast.Identifier;
|
|
17
|
+
additionalEnvironmentVariables?: GameCast.EnvironmentVariables;
|
|
18
|
+
protocol?: GameCast.Protocol;
|
|
19
|
+
connectionTimeoutSeconds?: GameCast.ConnectionTimeoutSeconds;
|
|
20
|
+
sessionLengthSeconds?: GameCast.SessionLengthSeconds;
|
|
21
|
+
applicationIdentifier?: GameCast.Identifier;
|
|
22
|
+
region?: string;
|
|
23
|
+
}
|
|
24
|
+
export type CloudResourceCreationConfig = AWSResourceCreationConfig;
|
|
25
|
+
export declare enum CloudResourceStatus {
|
|
26
|
+
Allocated = "allocated",
|
|
27
|
+
Available = "available",
|
|
28
|
+
Creating = "creating",
|
|
29
|
+
Allocating = "allocating",
|
|
30
|
+
Error = "error",
|
|
31
|
+
Terminated = "terminated",
|
|
32
|
+
Terminating = "terminating",
|
|
33
|
+
}
|
|
34
|
+
export declare class AllocateCloudResourceRequestData {
|
|
35
|
+
providerSettings: CloudResourceCreationConfig;
|
|
36
|
+
requestData: CloudProviderRequestData;
|
|
37
|
+
}
|
|
38
|
+
export declare class AwsAllocationData {
|
|
39
|
+
streamGroupId: string;
|
|
40
|
+
streamSessionId: string;
|
|
41
|
+
signalResponse: string;
|
|
42
|
+
}
|
|
43
|
+
export type CloudProviderAllocationData = AwsAllocationData;
|
|
44
|
+
export declare class AWSResourceProviderSettings {
|
|
45
|
+
streamSessionId: string;
|
|
46
|
+
streamGroupId: string;
|
|
47
|
+
}
|
|
48
|
+
export declare class AWSCreationResponse {
|
|
49
|
+
signalResponse?: GameCast.SignalResponse;
|
|
50
|
+
streamSessionId: string;
|
|
51
|
+
}
|
|
52
|
+
export type CreationResponse = AWSCreationResponse;
|
|
53
|
+
export declare enum CloudPoolStatus {
|
|
54
|
+
Active = "active",
|
|
55
|
+
Scaling = "scaling",
|
|
56
|
+
Terminated = "terminated",
|
|
57
|
+
}
|
|
58
|
+
export declare class CloudPoolConfiguration {
|
|
59
|
+
providerSettings?: CloudResourceCreationConfig;
|
|
60
|
+
cloudProvider: CloudProvider;
|
|
61
|
+
poolId: string;
|
|
62
|
+
poolScaleConfiguration: PoolScaleConfiguration;
|
|
63
|
+
}
|
|
64
|
+
export type CloudResourcesMap = Record<
|
|
65
|
+
string,
|
|
66
|
+
{
|
|
67
|
+
status: CloudResourceStatus;
|
|
68
|
+
}
|
|
69
|
+
>;
|
|
70
|
+
export declare class PoolScaleConfiguration {
|
|
71
|
+
size: number;
|
|
72
|
+
}
|
|
73
|
+
export declare class PoolItemAllocatedPayload {
|
|
74
|
+
allocationData?: CloudProviderAllocationData;
|
|
75
|
+
}
|
|
76
|
+
export type CloudResourcesStatusMap = Record<CloudResourceStatus, number>;
|
|
77
|
+
export declare class AllocationRequestData {
|
|
78
|
+
authToken: string;
|
|
79
|
+
appToken: string;
|
|
80
|
+
cloudProviderRequest: CloudProviderRequest;
|
|
81
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.AllocationRequestData = exports.PoolItemAllocatedPayload = exports.PoolScaleConfiguration = exports.CloudPoolConfiguration = exports.CloudPoolStatus = exports.AWSCreationResponse = exports.AWSResourceProviderSettings = exports.AwsAllocationData = exports.AllocateCloudResourceRequestData = exports.CloudResourceStatus = exports.AWSResourceCreationConfig = exports.CloudProvider = exports.CloudProviderRequestData = exports.AWSRequestData = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
const validate_nested_type_decorator_1 = require("../decorators/validate-nested-type.decorator");
|
|
15
|
+
const aws_gamecast_sdk_1 = require("@ludeo/aws-gamecast-sdk");
|
|
16
|
+
class AWSRequestData {
|
|
17
|
+
}
|
|
18
|
+
exports.AWSRequestData = AWSRequestData;
|
|
19
|
+
__decorate([
|
|
20
|
+
(0, class_validator_1.IsString)(),
|
|
21
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
22
|
+
__metadata("design:type", String)
|
|
23
|
+
], AWSRequestData.prototype, "signalRequest", void 0);
|
|
24
|
+
class CloudProviderRequestData {
|
|
25
|
+
}
|
|
26
|
+
exports.CloudProviderRequestData = CloudProviderRequestData;
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, class_validator_1.IsUUID)(),
|
|
29
|
+
__metadata("design:type", String)
|
|
30
|
+
], CloudProviderRequestData.prototype, "authToken", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, class_validator_1.IsUUID)(),
|
|
33
|
+
__metadata("design:type", String)
|
|
34
|
+
], CloudProviderRequestData.prototype, "appToken", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
(0, class_validator_1.IsDefined)(),
|
|
37
|
+
(0, validate_nested_type_decorator_1.ValidateNestedType)(() => AWSRequestData),
|
|
38
|
+
__metadata("design:type", Object)
|
|
39
|
+
], CloudProviderRequestData.prototype, "cloudProviderRequest", void 0);
|
|
40
|
+
var CloudProvider;
|
|
41
|
+
(function (CloudProvider) {
|
|
42
|
+
CloudProvider["AWS"] = "aws";
|
|
43
|
+
})(CloudProvider || (exports.CloudProvider = CloudProvider = {}));
|
|
44
|
+
class AWSResourceCreationConfig {
|
|
45
|
+
}
|
|
46
|
+
exports.AWSResourceCreationConfig = AWSResourceCreationConfig;
|
|
47
|
+
var CloudResourceStatus;
|
|
48
|
+
(function (CloudResourceStatus) {
|
|
49
|
+
CloudResourceStatus["Allocated"] = "allocated";
|
|
50
|
+
CloudResourceStatus["Available"] = "available";
|
|
51
|
+
CloudResourceStatus["Creating"] = "creating";
|
|
52
|
+
CloudResourceStatus["Allocating"] = "allocating";
|
|
53
|
+
CloudResourceStatus["Error"] = "error";
|
|
54
|
+
CloudResourceStatus["Terminated"] = "terminated";
|
|
55
|
+
CloudResourceStatus["Terminating"] = "terminating";
|
|
56
|
+
})(CloudResourceStatus || (exports.CloudResourceStatus = CloudResourceStatus = {}));
|
|
57
|
+
class AllocateCloudResourceRequestData {
|
|
58
|
+
}
|
|
59
|
+
exports.AllocateCloudResourceRequestData = AllocateCloudResourceRequestData;
|
|
60
|
+
class AwsAllocationData {
|
|
61
|
+
}
|
|
62
|
+
exports.AwsAllocationData = AwsAllocationData;
|
|
63
|
+
class AWSResourceProviderSettings {
|
|
64
|
+
}
|
|
65
|
+
exports.AWSResourceProviderSettings = AWSResourceProviderSettings;
|
|
66
|
+
class AWSCreationResponse {
|
|
67
|
+
}
|
|
68
|
+
exports.AWSCreationResponse = AWSCreationResponse;
|
|
69
|
+
__decorate([
|
|
70
|
+
(0, class_validator_1.IsOptional)(),
|
|
71
|
+
__metadata("design:type", String)
|
|
72
|
+
], AWSCreationResponse.prototype, "signalResponse", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
(0, class_validator_1.IsString)(),
|
|
75
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
76
|
+
__metadata("design:type", String)
|
|
77
|
+
], AWSCreationResponse.prototype, "streamSessionId", void 0);
|
|
78
|
+
var CloudPoolStatus;
|
|
79
|
+
(function (CloudPoolStatus) {
|
|
80
|
+
CloudPoolStatus["Active"] = "active";
|
|
81
|
+
CloudPoolStatus["Scaling"] = "scaling";
|
|
82
|
+
CloudPoolStatus["Terminated"] = "terminated";
|
|
83
|
+
})(CloudPoolStatus || (exports.CloudPoolStatus = CloudPoolStatus = {}));
|
|
84
|
+
class CloudPoolConfiguration {
|
|
85
|
+
}
|
|
86
|
+
exports.CloudPoolConfiguration = CloudPoolConfiguration;
|
|
87
|
+
__decorate([
|
|
88
|
+
(0, class_validator_1.IsEnum)(CloudProvider),
|
|
89
|
+
__metadata("design:type", String)
|
|
90
|
+
], CloudPoolConfiguration.prototype, "cloudProvider", void 0);
|
|
91
|
+
__decorate([
|
|
92
|
+
(0, class_validator_1.IsUUID)(),
|
|
93
|
+
__metadata("design:type", String)
|
|
94
|
+
], CloudPoolConfiguration.prototype, "poolId", void 0);
|
|
95
|
+
class PoolScaleConfiguration {
|
|
96
|
+
}
|
|
97
|
+
exports.PoolScaleConfiguration = PoolScaleConfiguration;
|
|
98
|
+
__decorate([
|
|
99
|
+
(0, class_validator_1.IsNumber)(),
|
|
100
|
+
__metadata("design:type", Number)
|
|
101
|
+
], PoolScaleConfiguration.prototype, "size", void 0);
|
|
102
|
+
class PoolItemAllocatedPayload {
|
|
103
|
+
}
|
|
104
|
+
exports.PoolItemAllocatedPayload = PoolItemAllocatedPayload;
|
|
105
|
+
__decorate([
|
|
106
|
+
(0, validate_nested_type_decorator_1.ValidateNestedType)(() => AwsAllocationData),
|
|
107
|
+
__metadata("design:type", Object)
|
|
108
|
+
], PoolItemAllocatedPayload.prototype, "allocationData", void 0);
|
|
109
|
+
class AllocationRequestData {
|
|
110
|
+
}
|
|
111
|
+
exports.AllocationRequestData = AllocationRequestData;
|
|
112
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAQyB;AACzB,iGAAkF;AAClF,8DAAmD;AAEnD,MAAa,cAAc;CAI1B;AAJD,wCAIC;AADC;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;qDACS;AAKxB,MAAa,wBAAwB;CAUpC;AAVD,4DAUC;AARC;IADC,IAAA,wBAAM,GAAE;;2DACS;AAGlB;IADC,IAAA,wBAAM,GAAE;;0DACQ;AAIjB;IAFC,IAAA,2BAAS,GAAE;IACX,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,cAAc,CAAC;;sEACE;AAG7C,IAAY,aAEX;AAFD,WAAY,aAAa;IACvB,4BAAW,CAAA;AACb,CAAC,EAFW,aAAa,6BAAb,aAAa,QAExB;AAED,MAAa,yBAAyB;CASrC;AATD,8DASC;AAID,IAAY,mBAQX;AARD,WAAY,mBAAmB;IAC7B,8CAAuB,CAAA;IACvB,8CAAuB,CAAA;IACvB,4CAAqB,CAAA;IACrB,gDAAyB,CAAA;IACzB,sCAAe,CAAA;IACf,gDAAyB,CAAA;IACzB,kDAA2B,CAAA;AAC7B,CAAC,EARW,mBAAmB,mCAAnB,mBAAmB,QAQ9B;AAED,MAAa,gCAAgC;CAG5C;AAHD,4EAGC;AAED,MAAa,iBAAiB;CAI7B;AAJD,8CAIC;AAID,MAAa,2BAA2B;CAGvC;AAHD,kEAGC;AAED,MAAa,mBAAmB;CAO/B;AAPD,kDAOC;AALC;IADC,IAAA,4BAAU,GAAE;;2DAC4B;AAIzC;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;4DACW;AAK1B,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,sCAAmB,CAAA;IACnB,4CAAyB,CAAA;AAC3B,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B;AAED,MAAa,sBAAsB;CAOlC;AAPD,wDAOC;AAJC;IADC,IAAA,wBAAM,EAAC,aAAa,CAAC;;6DACO;AAE7B;IADC,IAAA,wBAAM,GAAE;;sDACM;AAMjB,MAAa,sBAAsB;CAGlC;AAHD,wDAGC;AADC;IADC,IAAA,0BAAQ,GAAE;;oDACE;AAGf,MAAa,wBAAwB;CAGpC;AAHD,4DAGC;AADC;IADC,IAAA,mDAAkB,EAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC;;gEACC;AAK/C,MAAa,qBAAqB;CAIjC;AAJD,sDAIC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ludeo/cloud-common",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "dist/index.js",
|
|
5
|
+
"types": "dist/index.d.ts",
|
|
6
|
+
"author": "Yahil Didi",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "tsc"
|
|
9
|
+
},
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"@ludeo/aws-gamecast-sdk": "^2.1626.4",
|
|
12
|
+
"@nestjs/common": "^10.3.10",
|
|
13
|
+
"class-transformer": "^0.5.1",
|
|
14
|
+
"class-validator": "^0.14.1"
|
|
15
|
+
},
|
|
16
|
+
"devDependencies": {
|
|
17
|
+
"typescript": "^5.5.3"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { IsString, IsUUID } from "class-validator";
|
|
2
|
+
|
|
3
|
+
export class CloudResourceContext {
|
|
4
|
+
@IsUUID()
|
|
5
|
+
resourceId: string;
|
|
6
|
+
|
|
7
|
+
@IsString()
|
|
8
|
+
streamGroupId: string;
|
|
9
|
+
|
|
10
|
+
@IsString()
|
|
11
|
+
streamSessionId: string;
|
|
12
|
+
|
|
13
|
+
@IsUUID()
|
|
14
|
+
poolId: string;
|
|
15
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { IsEnum, IsOptional, IsUUID } from "class-validator";
|
|
2
|
+
import { CloudProvider } from "../types";
|
|
3
|
+
|
|
4
|
+
export class CloudSessionContext {
|
|
5
|
+
@IsOptional()
|
|
6
|
+
@IsUUID()
|
|
7
|
+
allocationRequestId?: string;
|
|
8
|
+
|
|
9
|
+
@IsOptional()
|
|
10
|
+
@IsUUID()
|
|
11
|
+
clientRequestId?: string;
|
|
12
|
+
|
|
13
|
+
@IsUUID()
|
|
14
|
+
cloudSessionId: string;
|
|
15
|
+
|
|
16
|
+
@IsOptional()
|
|
17
|
+
@IsUUID()
|
|
18
|
+
userId?: string;
|
|
19
|
+
|
|
20
|
+
@IsOptional()
|
|
21
|
+
@IsUUID()
|
|
22
|
+
gameId?: string;
|
|
23
|
+
|
|
24
|
+
@IsOptional()
|
|
25
|
+
@IsUUID()
|
|
26
|
+
ludeoId?: string;
|
|
27
|
+
|
|
28
|
+
@IsOptional()
|
|
29
|
+
@IsUUID()
|
|
30
|
+
poolId?: string;
|
|
31
|
+
|
|
32
|
+
@IsEnum(CloudProvider)
|
|
33
|
+
cloudProvider: CloudProvider;
|
|
34
|
+
|
|
35
|
+
@IsOptional()
|
|
36
|
+
@IsUUID()
|
|
37
|
+
resourceId?: string;
|
|
38
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IsEnum, IsUUID } from "class-validator";
|
|
2
|
+
import { CloudProvider } from "../types";
|
|
3
|
+
|
|
4
|
+
export class CreateCloudResourceRequestContext {
|
|
5
|
+
@IsUUID()
|
|
6
|
+
poolId: string;
|
|
7
|
+
@IsUUID()
|
|
8
|
+
resourceId: string;
|
|
9
|
+
@IsEnum(CloudProvider)
|
|
10
|
+
cloudProvider: string;
|
|
11
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { applyDecorators } from "@nestjs/common";
|
|
2
|
+
import { ValidateNested } from "class-validator";
|
|
3
|
+
import { Type } from "class-transformer";
|
|
4
|
+
|
|
5
|
+
export function ValidateNestedType(typeFunction: () => any) {
|
|
6
|
+
return applyDecorators(ValidateNested(), Type(typeFunction));
|
|
7
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { CloudSessionContext } from "../contexts/cloud-session-context";
|
|
2
|
+
import { ValidateNestedType } from "../decorators/validate-nested-type.decorator";
|
|
3
|
+
import { LudeoEvent } from "../infra/ludeo-event";
|
|
4
|
+
import {
|
|
5
|
+
AWSResourceCreationConfig,
|
|
6
|
+
CloudProviderRequestData,
|
|
7
|
+
CloudResourceCreationConfig,
|
|
8
|
+
} from "../types";
|
|
9
|
+
|
|
10
|
+
export class AllocateCloudResourceRequestPayload {
|
|
11
|
+
@ValidateNestedType(() => AWSResourceCreationConfig)
|
|
12
|
+
providerSettings: CloudResourceCreationConfig;
|
|
13
|
+
@ValidateNestedType(() => CloudProviderRequestData)
|
|
14
|
+
requestData: CloudProviderRequestData;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export class AllocateCloudResourceRequestEvent extends LudeoEvent {
|
|
18
|
+
static readonly EVENT_NAME = "cloud-pools.allocate-cloud-resource-request";
|
|
19
|
+
|
|
20
|
+
constructor(
|
|
21
|
+
payload: AllocateCloudResourceRequestPayload,
|
|
22
|
+
context: CloudSessionContext
|
|
23
|
+
) {
|
|
24
|
+
super(AllocateCloudResourceRequestEvent.EVENT_NAME);
|
|
25
|
+
this.payload = payload;
|
|
26
|
+
this.context = context;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@ValidateNestedType(() => CloudSessionContext)
|
|
30
|
+
context: CloudSessionContext;
|
|
31
|
+
|
|
32
|
+
@ValidateNestedType(() => AllocateCloudResourceRequestPayload)
|
|
33
|
+
payload: AllocateCloudResourceRequestPayload;
|
|
34
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { IsString } from "class-validator";
|
|
2
|
+
import { CloudSessionContext } from "../contexts/cloud-session-context";
|
|
3
|
+
import { ValidateNestedType } from "../decorators/validate-nested-type.decorator";
|
|
4
|
+
import { LudeoEvent } from "../infra/ludeo-event";
|
|
5
|
+
|
|
6
|
+
export class AllocateCloudSessionFailedPayload {
|
|
7
|
+
@IsString()
|
|
8
|
+
error: string;
|
|
9
|
+
}
|
|
10
|
+
export class AllocateCloudSessionFailed extends LudeoEvent {
|
|
11
|
+
static readonly EVENT_NAME =
|
|
12
|
+
"cloud-session-allocator.allocate-cloud-session-failed";
|
|
13
|
+
|
|
14
|
+
constructor(
|
|
15
|
+
payload: AllocateCloudSessionFailedPayload,
|
|
16
|
+
context: CloudSessionContext
|
|
17
|
+
) {
|
|
18
|
+
super(AllocateCloudSessionFailed.EVENT_NAME);
|
|
19
|
+
this.payload = payload;
|
|
20
|
+
this.context = context;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@ValidateNestedType(() => AllocateCloudSessionFailedPayload)
|
|
24
|
+
payload: AllocateCloudSessionFailedPayload;
|
|
25
|
+
|
|
26
|
+
@ValidateNestedType(() => CloudSessionContext)
|
|
27
|
+
context: CloudSessionContext;
|
|
28
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { CloudSessionContext } from "../contexts/cloud-session-context";
|
|
2
|
+
import { ValidateNestedType } from "../decorators/validate-nested-type.decorator";
|
|
3
|
+
import { LudeoEvent } from "../infra/ludeo-event";
|
|
4
|
+
import { AllocationRequestData } from "../types";
|
|
5
|
+
|
|
6
|
+
export class AllocateCloudSessionRequestPayload {
|
|
7
|
+
@ValidateNestedType(() => AllocationRequestData)
|
|
8
|
+
requestData: AllocationRequestData;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export class AllocateCloudSessionRequest extends LudeoEvent {
|
|
12
|
+
static readonly EVENT_NAME = "cloud-sessions.allocate-cloud-session-request";
|
|
13
|
+
|
|
14
|
+
constructor(
|
|
15
|
+
payload: AllocateCloudSessionRequestPayload,
|
|
16
|
+
context: CloudSessionContext
|
|
17
|
+
) {
|
|
18
|
+
super(AllocateCloudSessionRequest.EVENT_NAME);
|
|
19
|
+
this.payload = payload;
|
|
20
|
+
this.context = context;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@ValidateNestedType(() => AllocateCloudSessionRequestPayload)
|
|
24
|
+
payload: AllocateCloudSessionRequestPayload;
|
|
25
|
+
|
|
26
|
+
@ValidateNestedType(() => CloudSessionContext)
|
|
27
|
+
context: CloudSessionContext;
|
|
28
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { IsString } from "class-validator";
|
|
2
|
+
import { CloudSessionContext } from "../contexts/cloud-session-context";
|
|
3
|
+
import { ValidateNestedType } from "../decorators/validate-nested-type.decorator";
|
|
4
|
+
import { LudeoEvent } from "../infra/ludeo-event";
|
|
5
|
+
|
|
6
|
+
export class AllocatePoolItemFailedPayload {
|
|
7
|
+
@IsString()
|
|
8
|
+
error: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export class AllocatePoolItemFailed extends LudeoEvent {
|
|
12
|
+
static readonly EVENT_NAME = "cloud-pools.allocate-pool-item-failed";
|
|
13
|
+
|
|
14
|
+
constructor(
|
|
15
|
+
payload: AllocatePoolItemFailedPayload,
|
|
16
|
+
context: CloudSessionContext
|
|
17
|
+
) {
|
|
18
|
+
super(AllocatePoolItemFailed.EVENT_NAME);
|
|
19
|
+
this.payload = payload;
|
|
20
|
+
this.context = context;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@ValidateNestedType(() => AllocatePoolItemFailedPayload)
|
|
24
|
+
payload: AllocatePoolItemFailedPayload;
|
|
25
|
+
|
|
26
|
+
@ValidateNestedType(() => CloudSessionContext)
|
|
27
|
+
context: CloudSessionContext;
|
|
28
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { LudeoEvent } from "../infra/ludeo-event";
|
|
2
|
+
import { ValidateNestedType } from "../decorators/validate-nested-type.decorator";
|
|
3
|
+
import { CloudSessionContext } from "../contexts/cloud-session-context";
|
|
4
|
+
import { CloudProviderRequestData } from "../types";
|
|
5
|
+
|
|
6
|
+
export class AllocatePoolItemRequestPayload {
|
|
7
|
+
@ValidateNestedType(() => CloudProviderRequestData)
|
|
8
|
+
requestData: CloudProviderRequestData;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export class AllocatePoolItemRequestEvent extends LudeoEvent {
|
|
12
|
+
static readonly EVENT_NAME =
|
|
13
|
+
"cloud-session-allocator.allocate-pool-item-request";
|
|
14
|
+
|
|
15
|
+
constructor(
|
|
16
|
+
payload: AllocatePoolItemRequestPayload,
|
|
17
|
+
context: CloudSessionContext
|
|
18
|
+
) {
|
|
19
|
+
super(AllocatePoolItemRequestEvent.EVENT_NAME);
|
|
20
|
+
this.payload = payload;
|
|
21
|
+
this.context = context;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@ValidateNestedType(() => CloudSessionContext)
|
|
25
|
+
context: CloudSessionContext;
|
|
26
|
+
|
|
27
|
+
@ValidateNestedType(() => AllocatePoolItemRequestPayload)
|
|
28
|
+
payload: AllocatePoolItemRequestPayload;
|
|
29
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { CloudSessionContext } from "../contexts/cloud-session-context";
|
|
2
|
+
import { ValidateNestedType } from "../decorators/validate-nested-type.decorator";
|
|
3
|
+
import { LudeoEvent } from "../infra/ludeo-event";
|
|
4
|
+
import { AwsAllocationData, CloudProviderAllocationData } from "../types";
|
|
5
|
+
|
|
6
|
+
export class CloudResourceAllocatedPayload {
|
|
7
|
+
@ValidateNestedType(() => AwsAllocationData)
|
|
8
|
+
allocationData: CloudProviderAllocationData;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export class CloudResourceAllocatedEvent extends LudeoEvent {
|
|
12
|
+
static readonly EVENT_NAME = "cloud-resources.cloud-resource-allocated";
|
|
13
|
+
|
|
14
|
+
constructor(
|
|
15
|
+
payload: CloudResourceAllocatedPayload,
|
|
16
|
+
context: CloudSessionContext
|
|
17
|
+
) {
|
|
18
|
+
super(CloudResourceAllocatedEvent.EVENT_NAME);
|
|
19
|
+
this.payload = payload;
|
|
20
|
+
this.context = context;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@ValidateNestedType(() => CloudSessionContext)
|
|
24
|
+
context: CloudSessionContext;
|
|
25
|
+
|
|
26
|
+
@ValidateNestedType(() => CloudResourceAllocatedPayload)
|
|
27
|
+
payload: CloudResourceAllocatedPayload;
|
|
28
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { LudeoEvent } from "../infra/ludeo-event";
|
|
2
|
+
import { AWSCreationResponse, CloudProvider, CreationResponse } from "../types";
|
|
3
|
+
import { CloudSessionContext } from "../contexts/cloud-session-context";
|
|
4
|
+
import { IsEnum, IsOptional, IsString, IsUUID } from "class-validator";
|
|
5
|
+
import { ValidateNestedType } from "../decorators/validate-nested-type.decorator";
|
|
6
|
+
|
|
7
|
+
export class CloudResourceCreatedPayload {
|
|
8
|
+
@IsUUID()
|
|
9
|
+
resourceId: string;
|
|
10
|
+
@IsUUID()
|
|
11
|
+
poolId: string;
|
|
12
|
+
@IsEnum(CloudProvider)
|
|
13
|
+
cloudProvider: CloudProvider;
|
|
14
|
+
@IsString()
|
|
15
|
+
@IsOptional()
|
|
16
|
+
clientRequestId?: string;
|
|
17
|
+
@IsOptional()
|
|
18
|
+
@IsString()
|
|
19
|
+
cloudSessionId?: string;
|
|
20
|
+
@ValidateNestedType(() => AWSCreationResponse)
|
|
21
|
+
creationResponse: CreationResponse;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export class CloudResourceCreated extends LudeoEvent {
|
|
25
|
+
static readonly EVENT_NAME = "cloud-resources.cloud-resource-created";
|
|
26
|
+
|
|
27
|
+
constructor({ payload = null, context = null }) {
|
|
28
|
+
super(CloudResourceCreated.EVENT_NAME);
|
|
29
|
+
this.payload = payload;
|
|
30
|
+
this.context = context;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@ValidateNestedType(() => CloudResourceCreatedPayload)
|
|
34
|
+
payload: CloudResourceCreatedPayload;
|
|
35
|
+
|
|
36
|
+
@ValidateNestedType(() => CloudSessionContext)
|
|
37
|
+
context: CloudSessionContext;
|
|
38
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { LudeoEvent } from "../infra/ludeo-event";
|
|
2
|
+
import { CloudSessionContext } from "../contexts/cloud-session-context";
|
|
3
|
+
import { ValidateNestedType } from "../decorators/validate-nested-type.decorator";
|
|
4
|
+
import {
|
|
5
|
+
IsEnum,
|
|
6
|
+
IsNotEmpty,
|
|
7
|
+
IsOptional,
|
|
8
|
+
IsString,
|
|
9
|
+
IsUUID,
|
|
10
|
+
} from "class-validator";
|
|
11
|
+
import { AWSCreationResponse, CloudProvider, CreationResponse } from "../types";
|
|
12
|
+
|
|
13
|
+
export class CloudResourceCreationFailedPayload {
|
|
14
|
+
@IsUUID()
|
|
15
|
+
resourceId: string;
|
|
16
|
+
|
|
17
|
+
@IsUUID()
|
|
18
|
+
poolId: string;
|
|
19
|
+
|
|
20
|
+
@IsEnum(CloudProvider)
|
|
21
|
+
cloudProvider: CloudProvider;
|
|
22
|
+
|
|
23
|
+
@IsOptional()
|
|
24
|
+
@IsUUID()
|
|
25
|
+
clientRequestId?: string;
|
|
26
|
+
|
|
27
|
+
@IsOptional()
|
|
28
|
+
@IsUUID()
|
|
29
|
+
cloudSessionId?: string;
|
|
30
|
+
|
|
31
|
+
@ValidateNestedType(() => AWSCreationResponse)
|
|
32
|
+
creationResponse: CreationResponse;
|
|
33
|
+
|
|
34
|
+
@IsString()
|
|
35
|
+
@IsNotEmpty()
|
|
36
|
+
error: string;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export class CloudResourceCreationFailedEvent extends LudeoEvent {
|
|
40
|
+
static readonly EVENT_NAME = "cloud-resources.cloud-resource-creation-failed";
|
|
41
|
+
|
|
42
|
+
constructor(
|
|
43
|
+
payload: CloudResourceCreationFailedPayload,
|
|
44
|
+
context: CloudSessionContext
|
|
45
|
+
) {
|
|
46
|
+
super(CloudResourceCreationFailedEvent.EVENT_NAME);
|
|
47
|
+
this.payload = payload;
|
|
48
|
+
this.context = context;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@ValidateNestedType(() => CloudSessionContext)
|
|
52
|
+
context: CloudSessionContext;
|
|
53
|
+
|
|
54
|
+
@ValidateNestedType(() => CloudResourceCreationFailedPayload)
|
|
55
|
+
payload: CloudResourceCreationFailedPayload;
|
|
56
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { IsOptional, IsString, IsUUID } from "class-validator";
|
|
2
|
+
import { LudeoEvent } from "../infra/ludeo-event";
|
|
3
|
+
import { CloudResourceContext } from "../contexts/cloud-resource-context";
|
|
4
|
+
import { AWSResourceProviderSettings, CloudResourceStatus } from "../types";
|
|
5
|
+
import { ValidateNestedType } from "../decorators/validate-nested-type.decorator";
|
|
6
|
+
|
|
7
|
+
export class CloudResourceStatusEventPayload {
|
|
8
|
+
@IsUUID()
|
|
9
|
+
resourceId: string;
|
|
10
|
+
|
|
11
|
+
@ValidateNestedType(() => AWSResourceProviderSettings)
|
|
12
|
+
providerSettings: AWSResourceProviderSettings;
|
|
13
|
+
|
|
14
|
+
@IsString()
|
|
15
|
+
status: CloudResourceStatus;
|
|
16
|
+
|
|
17
|
+
@IsOptional()
|
|
18
|
+
@IsString()
|
|
19
|
+
error?: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export class CloudResourceStatusEvent extends LudeoEvent {
|
|
23
|
+
static readonly EVENT_NAME = "cloud-resource-monitor.cloud-resource-status";
|
|
24
|
+
|
|
25
|
+
constructor(
|
|
26
|
+
payload: CloudResourceStatusEventPayload,
|
|
27
|
+
context: CloudResourceContext
|
|
28
|
+
) {
|
|
29
|
+
super(CloudResourceStatusEvent.EVENT_NAME);
|
|
30
|
+
this.payload = payload;
|
|
31
|
+
this.context = context;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@ValidateNestedType(() => CloudResourceContext)
|
|
35
|
+
context: CloudResourceContext;
|
|
36
|
+
|
|
37
|
+
@ValidateNestedType(() => CloudResourceStatusEventPayload)
|
|
38
|
+
payload: CloudResourceStatusEventPayload;
|
|
39
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { CloudSessionContext } from "../contexts/cloud-session-context";
|
|
2
|
+
import { ValidateNestedType } from "../decorators/validate-nested-type.decorator";
|
|
3
|
+
import { LudeoEvent } from "../infra/ludeo-event";
|
|
4
|
+
import { AwsAllocationData, CloudProviderAllocationData } from "../types";
|
|
5
|
+
|
|
6
|
+
export class CloudSessionAllocatedPayload {
|
|
7
|
+
@ValidateNestedType(() => AwsAllocationData)
|
|
8
|
+
allocationData?: CloudProviderAllocationData;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export class CloudSessionAllocated extends LudeoEvent {
|
|
12
|
+
static readonly EVENT_NAME =
|
|
13
|
+
"cloud-session-allocator.cloud-session-allocated";
|
|
14
|
+
|
|
15
|
+
constructor(
|
|
16
|
+
payload: CloudSessionAllocatedPayload,
|
|
17
|
+
context: CloudSessionContext
|
|
18
|
+
) {
|
|
19
|
+
super(CloudSessionAllocated.EVENT_NAME);
|
|
20
|
+
this.payload = payload;
|
|
21
|
+
this.context = context;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@ValidateNestedType(() => CloudSessionAllocatedPayload)
|
|
25
|
+
payload: CloudSessionAllocatedPayload;
|
|
26
|
+
|
|
27
|
+
@ValidateNestedType(() => CloudSessionContext)
|
|
28
|
+
context: CloudSessionContext;
|
|
29
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CloudSessionContext } from "../contexts/cloud-session-context";
|
|
2
|
+
import { ValidateNestedType } from "../decorators/validate-nested-type.decorator";
|
|
3
|
+
import { LudeoEvent } from "../infra/ludeo-event";
|
|
4
|
+
|
|
5
|
+
export class CloudSessionTerminated extends LudeoEvent {
|
|
6
|
+
static readonly EVENT_NAME = "cloud-sessions.cloud-session-terminated";
|
|
7
|
+
|
|
8
|
+
constructor(context: CloudSessionContext) {
|
|
9
|
+
super(CloudSessionTerminated.EVENT_NAME);
|
|
10
|
+
this.context = context;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
@ValidateNestedType(() => CloudSessionContext)
|
|
14
|
+
context: CloudSessionContext;
|
|
15
|
+
|
|
16
|
+
payload: never;
|
|
17
|
+
}
|