@ludeo/cloud-common 1.1.71 → 1.1.73
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/tsconfig.tsbuildinfo +1 -1
- package/dist/v3/events/game-status-changed.d.ts +16 -0
- package/dist/v3/events/game-status-changed.js +59 -0
- package/dist/v3/events/game-status-changed.js.map +1 -0
- package/dist/v3/events/monitor-game-task.d.ts +14 -0
- package/dist/v3/events/monitor-game-task.js +48 -0
- package/dist/v3/events/monitor-game-task.js.map +1 -0
- package/dist/v3/types/pools/configuration/attributes/game.d.ts +4 -0
- package/dist/v3/types/pools/configuration/attributes/game.js +22 -0
- package/dist/v3/types/pools/configuration/attributes/game.js.map +1 -0
- package/dist/v3/types/pools/configuration/attributes/index.d.ts +2 -0
- package/dist/v3/types/pools/configuration/attributes/index.js +19 -0
- package/dist/v3/types/pools/configuration/attributes/index.js.map +1 -0
- package/dist/v3/types/pools/configuration/attributes/machine.d.ts +3 -0
- package/dist/v3/types/pools/configuration/attributes/machine.js +21 -0
- package/dist/v3/types/pools/configuration/attributes/machine.js.map +1 -0
- package/dist/v3/types/pools/configuration/base.d.ts +12 -0
- package/dist/v3/types/pools/configuration/base.js +48 -0
- package/dist/v3/types/pools/configuration/base.js.map +1 -0
- package/dist/v3/types/pools/configuration/game.d.ts +9 -0
- package/dist/v3/types/pools/configuration/game.js +37 -0
- package/dist/v3/types/pools/configuration/game.js.map +1 -0
- package/dist/v3/types/pools/configuration/index.d.ts +5 -0
- package/dist/v3/types/pools/configuration/index.js +22 -0
- package/dist/v3/types/pools/configuration/index.js.map +1 -0
- package/dist/v3/types/pools/configuration/machine.d.ts +7 -0
- package/dist/v3/types/pools/configuration/machine.js +29 -0
- package/dist/v3/types/pools/configuration/machine.js.map +1 -0
- package/dist/v3/types/pools/configuration/type.d.ts +5 -0
- package/dist/v3/types/pools/configuration/type.js +3 -0
- package/dist/v3/types/pools/configuration/type.js.map +1 -0
- package/dist/v3/types/pools/index.d.ts +5 -0
- package/dist/v3/types/pools/index.js +22 -0
- package/dist/v3/types/pools/index.js.map +1 -0
- package/dist/v3/types/pools/pool.d.ts +13 -0
- package/dist/v3/types/pools/pool.js +7 -0
- package/dist/v3/types/pools/pool.js.map +1 -0
- package/dist/v3/types/pools/resource/base.d.ts +9 -0
- package/dist/v3/types/pools/resource/base.js +41 -0
- package/dist/v3/types/pools/resource/base.js.map +1 -0
- package/dist/v3/types/pools/resource/game.d.ts +4 -0
- package/dist/v3/types/pools/resource/game.js +23 -0
- package/dist/v3/types/pools/resource/game.js.map +1 -0
- package/dist/v3/types/pools/resource/index.d.ts +6 -0
- package/dist/v3/types/pools/resource/index.js +23 -0
- package/dist/v3/types/pools/resource/index.js.map +1 -0
- package/dist/v3/types/pools/resource/machine.d.ts +3 -0
- package/dist/v3/types/pools/resource/machine.js +8 -0
- package/dist/v3/types/pools/resource/machine.js.map +1 -0
- package/dist/v3/types/pools/resource/status.d.ts +10 -0
- package/dist/v3/types/pools/resource/status.js +15 -0
- package/dist/v3/types/pools/resource/status.js.map +1 -0
- package/dist/v3/types/pools/resource/statusMap.d.ts +2 -0
- package/dist/v3/types/pools/resource/statusMap.js +3 -0
- package/dist/v3/types/pools/resource/statusMap.js.map +1 -0
- package/dist/v3/types/pools/resource/type.d.ts +5 -0
- package/dist/v3/types/pools/resource/type.js +3 -0
- package/dist/v3/types/pools/resource/type.js.map +1 -0
- package/dist/v3/types/pools/status.d.ts +6 -0
- package/dist/v3/types/pools/status.js +11 -0
- package/dist/v3/types/pools/status.js.map +1 -0
- package/dist/v3/types/pools/type.d.ts +4 -0
- package/dist/v3/types/pools/type.js +9 -0
- package/dist/v3/types/pools/type.js.map +1 -0
- package/package.json +1 -1
- package/src/v3/types/pools/configuration/attributes/game.ts +7 -0
- package/src/v3/types/pools/configuration/attributes/index.ts +2 -0
- package/src/v3/types/pools/configuration/attributes/machine.ts +6 -0
- package/src/v3/types/pools/configuration/base.ts +32 -0
- package/src/v3/types/pools/configuration/game.ts +20 -0
- package/src/v3/types/pools/configuration/index.ts +5 -0
- package/src/v3/types/pools/configuration/machine.ts +14 -0
- package/src/v3/types/pools/configuration/type.ts +14 -0
- package/src/v3/types/pools/index.ts +5 -0
- package/src/v3/types/pools/pool.ts +15 -0
- package/src/v3/types/pools/resource/base.ts +23 -0
- package/src/v3/types/pools/resource/game.ts +9 -0
- package/src/v3/types/pools/resource/index.ts +6 -0
- package/src/v3/types/pools/resource/machine.ts +3 -0
- package/src/v3/types/pools/resource/status.ts +10 -0
- package/src/v3/types/pools/resource/statusMap.ts +3 -0
- package/src/v3/types/pools/resource/type.ts +13 -0
- package/src/v3/types/pools/status.ts +6 -0
- package/src/v3/types/pools/type.ts +4 -0
- package/src/v3/types/pools.ts +0 -130
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./base"), exports);
|
|
18
|
+
__exportStar(require("./game"), exports);
|
|
19
|
+
__exportStar(require("./machine"), exports);
|
|
20
|
+
__exportStar(require("./status"), exports);
|
|
21
|
+
__exportStar(require("./statusMap"), exports);
|
|
22
|
+
__exportStar(require("./type"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/v3/types/pools/resource/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,yCAAuB;AACvB,4CAA0B;AAC1B,2CAAyB;AACzB,8CAA4B;AAC5B,yCAAuB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MachineCloudResource = void 0;
|
|
4
|
+
const base_1 = require("./base");
|
|
5
|
+
class MachineCloudResource extends base_1.BaseCloudResource {
|
|
6
|
+
}
|
|
7
|
+
exports.MachineCloudResource = MachineCloudResource;
|
|
8
|
+
//# sourceMappingURL=machine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"machine.js","sourceRoot":"","sources":["../../../../../src/v3/types/pools/resource/machine.ts"],"names":[],"mappings":";;;AAAA,iCAA2C;AAE3C,MAAa,oBAAqB,SAAQ,wBAAiB;CAAG;AAA9D,oDAA8D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CloudResourceStatus = void 0;
|
|
4
|
+
var CloudResourceStatus;
|
|
5
|
+
(function (CloudResourceStatus) {
|
|
6
|
+
CloudResourceStatus["Allocated"] = "allocated";
|
|
7
|
+
CloudResourceStatus["Available"] = "available";
|
|
8
|
+
CloudResourceStatus["Creating"] = "creating";
|
|
9
|
+
CloudResourceStatus["Created"] = "created";
|
|
10
|
+
CloudResourceStatus["Allocating"] = "allocating";
|
|
11
|
+
CloudResourceStatus["Error"] = "error";
|
|
12
|
+
CloudResourceStatus["Terminating"] = "terminating";
|
|
13
|
+
CloudResourceStatus["Terminated"] = "terminated";
|
|
14
|
+
})(CloudResourceStatus || (exports.CloudResourceStatus = CloudResourceStatus = {}));
|
|
15
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../../src/v3/types/pools/resource/status.ts"],"names":[],"mappings":";;;AAAA,IAAY,mBASX;AATD,WAAY,mBAAmB;IAC7B,8CAAuB,CAAA;IACvB,8CAAuB,CAAA;IACvB,4CAAqB,CAAA;IACrB,0CAAmB,CAAA;IACnB,gDAAyB,CAAA;IACzB,sCAAe,CAAA;IACf,kDAA2B,CAAA;IAC3B,gDAAyB,CAAA;AAC3B,CAAC,EATW,mBAAmB,mCAAnB,mBAAmB,QAS9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statusMap.js","sourceRoot":"","sources":["../../../../../src/v3/types/pools/resource/statusMap.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { CloudPoolType } from "../type";
|
|
2
|
+
import { BaseCloudResource } from "./base";
|
|
3
|
+
import { GameCloudResource } from "./game";
|
|
4
|
+
import { MachineCloudResource } from "./machine";
|
|
5
|
+
export type CloudResourceType<T extends CloudPoolType | undefined = undefined> = T extends undefined ? BaseCloudResource : T extends CloudPoolType.GAME ? GameCloudResource : T extends CloudPoolType.MACHINE ? MachineCloudResource : BaseCloudResource;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../../../../src/v3/types/pools/resource/type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CloudPoolStatus = void 0;
|
|
4
|
+
var CloudPoolStatus;
|
|
5
|
+
(function (CloudPoolStatus) {
|
|
6
|
+
CloudPoolStatus["Active"] = "active";
|
|
7
|
+
CloudPoolStatus["Created"] = "created";
|
|
8
|
+
CloudPoolStatus["Scaling"] = "scaling";
|
|
9
|
+
CloudPoolStatus["Terminated"] = "terminated";
|
|
10
|
+
})(CloudPoolStatus || (exports.CloudPoolStatus = CloudPoolStatus = {}));
|
|
11
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/v3/types/pools/status.ts"],"names":[],"mappings":";;;AAAA,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,sCAAmB,CAAA;IACnB,sCAAmB,CAAA;IACnB,4CAAyB,CAAA;AAC3B,CAAC,EALW,eAAe,+BAAf,eAAe,QAK1B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CloudPoolType = void 0;
|
|
4
|
+
var CloudPoolType;
|
|
5
|
+
(function (CloudPoolType) {
|
|
6
|
+
CloudPoolType["GAME"] = "game";
|
|
7
|
+
CloudPoolType["MACHINE"] = "machine";
|
|
8
|
+
})(CloudPoolType || (exports.CloudPoolType = CloudPoolType = {}));
|
|
9
|
+
//# sourceMappingURL=type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../../../src/v3/types/pools/type.ts"],"names":[],"mappings":";;;AAAA,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,oCAAmB,CAAA;AACrB,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { IsNumber, IsEnum, IsUUID, IsOptional } from "class-validator";
|
|
2
|
+
|
|
3
|
+
import { CloudPoolType } from "..";
|
|
4
|
+
import { ValidateNestedType } from "../../../../decorators";
|
|
5
|
+
import {
|
|
6
|
+
AWSProviderSettings,
|
|
7
|
+
CloudProvider,
|
|
8
|
+
CloudProviderSettings,
|
|
9
|
+
} from "../../cloud";
|
|
10
|
+
|
|
11
|
+
export class PoolScaleConfiguration {
|
|
12
|
+
@IsNumber()
|
|
13
|
+
size: number;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export class BaseCloudPoolConfiguration {
|
|
17
|
+
@IsOptional()
|
|
18
|
+
@ValidateNestedType(() => AWSProviderSettings)
|
|
19
|
+
providerSettings?: CloudProviderSettings;
|
|
20
|
+
|
|
21
|
+
@IsEnum(CloudProvider)
|
|
22
|
+
cloudProvider: CloudProvider;
|
|
23
|
+
|
|
24
|
+
@IsUUID()
|
|
25
|
+
poolId: string;
|
|
26
|
+
|
|
27
|
+
@ValidateNestedType(() => PoolScaleConfiguration)
|
|
28
|
+
poolScaleConfiguration: PoolScaleConfiguration;
|
|
29
|
+
|
|
30
|
+
@IsEnum(CloudPoolType)
|
|
31
|
+
type: CloudPoolType;
|
|
32
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { IsEnum, IsUUID } from "class-validator";
|
|
2
|
+
|
|
3
|
+
import { CloudPoolType } from "..";
|
|
4
|
+
import { GamePoolAttributes } from "./attributes";
|
|
5
|
+
import { BaseCloudPoolConfiguration } from "./base";
|
|
6
|
+
import { ValidateNestedType } from "../../../../decorators";
|
|
7
|
+
|
|
8
|
+
export class GamePoolConfiguration extends BaseCloudPoolConfiguration {
|
|
9
|
+
@IsEnum(CloudPoolType)
|
|
10
|
+
type: CloudPoolType.GAME;
|
|
11
|
+
|
|
12
|
+
@IsUUID()
|
|
13
|
+
gameId: string;
|
|
14
|
+
|
|
15
|
+
@IsUUID()
|
|
16
|
+
machinePoolId: string;
|
|
17
|
+
|
|
18
|
+
@ValidateNestedType(() => GamePoolAttributes)
|
|
19
|
+
attributes: GamePoolAttributes;
|
|
20
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { IsEnum } from "class-validator";
|
|
2
|
+
|
|
3
|
+
import { CloudPoolType } from "..";
|
|
4
|
+
import { BaseCloudPoolConfiguration } from "./base";
|
|
5
|
+
import { MachinePoolAttributes } from "./attributes";
|
|
6
|
+
import { ValidateNestedType } from "../../../../decorators";
|
|
7
|
+
|
|
8
|
+
export class MachinePoolConfiguration extends BaseCloudPoolConfiguration {
|
|
9
|
+
@IsEnum(CloudPoolType)
|
|
10
|
+
type: CloudPoolType.MACHINE;
|
|
11
|
+
|
|
12
|
+
@ValidateNestedType(() => MachinePoolAttributes)
|
|
13
|
+
attributes: MachinePoolAttributes;
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CloudPoolType } from "..";
|
|
2
|
+
import { GamePoolConfiguration } from "./game";
|
|
3
|
+
import { BaseCloudPoolConfiguration } from "./base";
|
|
4
|
+
import { MachinePoolConfiguration } from "./machine";
|
|
5
|
+
|
|
6
|
+
export type CloudPoolConfigurationType<
|
|
7
|
+
T extends CloudPoolType | undefined = undefined
|
|
8
|
+
> = T extends undefined
|
|
9
|
+
? BaseCloudPoolConfiguration
|
|
10
|
+
: T extends CloudPoolType.GAME
|
|
11
|
+
? GamePoolConfiguration
|
|
12
|
+
: T extends CloudPoolType.MACHINE
|
|
13
|
+
? MachinePoolConfiguration
|
|
14
|
+
: BaseCloudPoolConfiguration;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CloudPoolType } from "./type";
|
|
2
|
+
import { CloudPoolStatus } from "./status";
|
|
3
|
+
import { CloudPoolConfigurationType } from "./configuration";
|
|
4
|
+
import { BaseCloudResource, CloudResourceType } from "./resource";
|
|
5
|
+
|
|
6
|
+
export type CloudResourcesMap<T extends BaseCloudResource> = Record<string, T>;
|
|
7
|
+
|
|
8
|
+
export class CloudPool<T extends CloudPoolType | undefined = undefined> {
|
|
9
|
+
id: string;
|
|
10
|
+
status: CloudPoolStatus;
|
|
11
|
+
createdAt: number;
|
|
12
|
+
updatedAt?: number;
|
|
13
|
+
config: CloudPoolConfigurationType<T>;
|
|
14
|
+
resources?: CloudResourcesMap<CloudResourceType<T>>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { IsEnum, IsNumber, IsOptional, IsUUID } from "class-validator";
|
|
2
|
+
|
|
3
|
+
import { CloudResourceStatus } from "./status";
|
|
4
|
+
import { AWSResourceProviderSettings } from "../../cloud";
|
|
5
|
+
import { ValidateNestedType } from "../../../../decorators";
|
|
6
|
+
|
|
7
|
+
export class BaseCloudResource {
|
|
8
|
+
@IsUUID()
|
|
9
|
+
id: string;
|
|
10
|
+
|
|
11
|
+
@IsEnum(CloudResourceStatus)
|
|
12
|
+
status: CloudResourceStatus;
|
|
13
|
+
|
|
14
|
+
@IsNumber()
|
|
15
|
+
createdAt: number;
|
|
16
|
+
|
|
17
|
+
@IsNumber()
|
|
18
|
+
@IsOptional()
|
|
19
|
+
updatedAt?: number;
|
|
20
|
+
|
|
21
|
+
@ValidateNestedType(() => AWSResourceProviderSettings)
|
|
22
|
+
settings?: AWSResourceProviderSettings;
|
|
23
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CloudPoolType } from "../type";
|
|
2
|
+
import { BaseCloudResource } from "./base";
|
|
3
|
+
import { GameCloudResource } from "./game";
|
|
4
|
+
import { MachineCloudResource } from "./machine";
|
|
5
|
+
|
|
6
|
+
export type CloudResourceType<T extends CloudPoolType | undefined = undefined> =
|
|
7
|
+
T extends undefined
|
|
8
|
+
? BaseCloudResource
|
|
9
|
+
: T extends CloudPoolType.GAME
|
|
10
|
+
? GameCloudResource
|
|
11
|
+
: T extends CloudPoolType.MACHINE
|
|
12
|
+
? MachineCloudResource
|
|
13
|
+
: BaseCloudResource;
|
package/src/v3/types/pools.ts
DELETED
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
IsEnum,
|
|
3
|
-
IsNumber,
|
|
4
|
-
IsOptional,
|
|
5
|
-
IsString,
|
|
6
|
-
IsUUID,
|
|
7
|
-
} from "class-validator";
|
|
8
|
-
|
|
9
|
-
import { ValidateNestedType } from "../../decorators";
|
|
10
|
-
import {
|
|
11
|
-
AWSResourceProviderSettings,
|
|
12
|
-
CloudProvider,
|
|
13
|
-
CloudProviderSettings,
|
|
14
|
-
} from "./cloud";
|
|
15
|
-
|
|
16
|
-
export enum CloudResourceStatus {
|
|
17
|
-
Allocated = "allocated",
|
|
18
|
-
Available = "available",
|
|
19
|
-
Creating = "creating",
|
|
20
|
-
Created = "created",
|
|
21
|
-
Allocating = "allocating",
|
|
22
|
-
Error = "error",
|
|
23
|
-
Terminating = "terminating",
|
|
24
|
-
Terminated = "terminated",
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export enum CloudPoolStatus {
|
|
28
|
-
Active = "active",
|
|
29
|
-
Created = "created",
|
|
30
|
-
Scaling = "scaling",
|
|
31
|
-
Terminated = "terminated",
|
|
32
|
-
}
|
|
33
|
-
export class PoolScaleConfiguration {
|
|
34
|
-
@IsNumber()
|
|
35
|
-
size: number;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export enum CloudPoolType {
|
|
39
|
-
GAME = "game",
|
|
40
|
-
MACHINE = "machine",
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export class BaseCloudPoolConfiguration {
|
|
44
|
-
providerSettings?: CloudProviderSettings;
|
|
45
|
-
|
|
46
|
-
@IsEnum(CloudProvider)
|
|
47
|
-
cloudProvider: CloudProvider;
|
|
48
|
-
|
|
49
|
-
@IsUUID()
|
|
50
|
-
poolId: string;
|
|
51
|
-
|
|
52
|
-
@ValidateNestedType(() => PoolScaleConfiguration)
|
|
53
|
-
poolScaleConfiguration: PoolScaleConfiguration;
|
|
54
|
-
|
|
55
|
-
@IsEnum(CloudPoolType)
|
|
56
|
-
type: CloudPoolType;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
export class GamePoolConfiguration extends BaseCloudPoolConfiguration {
|
|
60
|
-
@IsEnum(CloudPoolType)
|
|
61
|
-
type: CloudPoolType.GAME;
|
|
62
|
-
|
|
63
|
-
@IsUUID()
|
|
64
|
-
gameId: string;
|
|
65
|
-
|
|
66
|
-
@IsUUID()
|
|
67
|
-
machinePoolId: string;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export class MachinePoolConfiguration extends BaseCloudPoolConfiguration {
|
|
71
|
-
@IsEnum(CloudPoolType)
|
|
72
|
-
type: CloudPoolType.MACHINE;
|
|
73
|
-
}
|
|
74
|
-
export type CloudPoolConfigurationType<
|
|
75
|
-
T extends CloudPoolType | undefined = undefined
|
|
76
|
-
> = T extends undefined
|
|
77
|
-
? BaseCloudPoolConfiguration
|
|
78
|
-
: T extends CloudPoolType.GAME
|
|
79
|
-
? GamePoolConfiguration
|
|
80
|
-
: T extends CloudPoolType.MACHINE
|
|
81
|
-
? MachinePoolConfiguration
|
|
82
|
-
: BaseCloudPoolConfiguration;
|
|
83
|
-
|
|
84
|
-
export class BaseCloudResource {
|
|
85
|
-
@IsUUID()
|
|
86
|
-
id: string;
|
|
87
|
-
|
|
88
|
-
@IsEnum(CloudResourceStatus)
|
|
89
|
-
status: CloudResourceStatus;
|
|
90
|
-
|
|
91
|
-
@IsNumber()
|
|
92
|
-
createdAt: number;
|
|
93
|
-
|
|
94
|
-
@IsNumber()
|
|
95
|
-
@IsOptional()
|
|
96
|
-
updatedAt?: number;
|
|
97
|
-
|
|
98
|
-
@ValidateNestedType(() => AWSResourceProviderSettings)
|
|
99
|
-
settings?: AWSResourceProviderSettings;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
export class MachineCloudResource extends BaseCloudResource {}
|
|
103
|
-
|
|
104
|
-
export class GameCloudResource extends BaseCloudResource {
|
|
105
|
-
@IsString()
|
|
106
|
-
@IsOptional()
|
|
107
|
-
machineResourceId?: string;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
export type CloudResourceType<T extends CloudPoolType | undefined = undefined> =
|
|
111
|
-
T extends undefined
|
|
112
|
-
? BaseCloudResource
|
|
113
|
-
: T extends CloudPoolType.GAME
|
|
114
|
-
? GameCloudResource
|
|
115
|
-
: T extends CloudPoolType.MACHINE
|
|
116
|
-
? MachineCloudResource
|
|
117
|
-
: BaseCloudResource;
|
|
118
|
-
|
|
119
|
-
export type CloudResourcesMap<T extends BaseCloudResource> = Record<string, T>;
|
|
120
|
-
|
|
121
|
-
export type CloudResourcesStatusMap = Record<CloudResourceStatus, number>;
|
|
122
|
-
|
|
123
|
-
export class CloudPool<T extends CloudPoolType | undefined = undefined> {
|
|
124
|
-
id: string;
|
|
125
|
-
status: CloudPoolStatus;
|
|
126
|
-
createdAt: number;
|
|
127
|
-
updatedAt?: number;
|
|
128
|
-
config: CloudPoolConfigurationType<T>;
|
|
129
|
-
resources?: CloudResourcesMap<CloudResourceType<T>>;
|
|
130
|
-
}
|