@ludeo/cloud-common 1.2.233 → 1.2.234-beta-yahil-2

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.
@@ -7,6 +7,7 @@ export declare class SupportedSiteRegionData {
7
7
  country: string;
8
8
  region: string;
9
9
  machineClasses?: string[];
10
+ spotMachineClasses?: string[];
10
11
  }
11
12
  export declare class SupportedSitesPayload {
12
13
  sites: Record<string, SupportedSiteRegionData>;
@@ -46,6 +46,12 @@ __decorate([
46
46
  (0, class_validator_1.IsString)({ each: true }),
47
47
  __metadata("design:type", Array)
48
48
  ], SupportedSiteRegionData.prototype, "machineClasses", void 0);
49
+ __decorate([
50
+ (0, class_validator_1.IsOptional)(),
51
+ (0, class_validator_1.IsArray)(),
52
+ (0, class_validator_1.IsString)({ each: true }),
53
+ __metadata("design:type", Array)
54
+ ], SupportedSiteRegionData.prototype, "spotMachineClasses", void 0);
49
55
  class SupportedSitesPayload {
50
56
  }
51
57
  exports.SupportedSitesPayload = SupportedSitesPayload;
@@ -1 +1 @@
1
- {"version":3,"file":"supported-sites.js","sourceRoot":"","sources":["../../../../src/v4/events/provisioner/supported-sites.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAA4C;AAC5C,oDAAyD;AACzD,qDAA0E;AAE1E,MAAa,uBAAuB;CAuBnC;AAvBD,0DAuBC;AArBC;IADC,IAAA,0BAAQ,GAAE;;mDACA;AAGX;IADC,IAAA,0BAAQ,GAAE;;yDACM;AAGjB;IADC,IAAA,0BAAQ,GAAE;;0DACO;AAGlB;IADC,IAAA,0BAAQ,GAAE;;qDACE;AAGb;IADC,IAAA,0BAAQ,GAAE;;wDACK;AAGhB;IADC,IAAA,0BAAQ,GAAE;;uDACI;AAKf;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,0BAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;+DACC;AAG5B,MAAa,qBAAqB;CAGjC;AAHD,sDAGC;AADC;IADC,IAAA,+BAAkB,EAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC;;oDACH;AAGjD,MAAa,cAAe,SAAQ,kBAAU;IAG5C,YAAY,OAA8B;QACxC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AANH,wCAUC;AATiB,yBAAU,GAAG,6BAA6B,CAAC;AAQ3D;IADC,IAAA,+BAAkB,EAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC;8BACvC,qBAAqB;+CAAC"}
1
+ {"version":3,"file":"supported-sites.js","sourceRoot":"","sources":["../../../../src/v4/events/provisioner/supported-sites.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAA4C;AAC5C,oDAAyD;AACzD,qDAA0E;AAE1E,MAAa,uBAAuB;CA4BnC;AA5BD,0DA4BC;AA1BC;IADC,IAAA,0BAAQ,GAAE;;mDACA;AAGX;IADC,IAAA,0BAAQ,GAAE;;yDACM;AAGjB;IADC,IAAA,0BAAQ,GAAE;;0DACO;AAGlB;IADC,IAAA,0BAAQ,GAAE;;qDACE;AAGb;IADC,IAAA,0BAAQ,GAAE;;wDACK;AAGhB;IADC,IAAA,0BAAQ,GAAE;;uDACI;AAKf;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,0BAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;+DACC;AAK1B;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,0BAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;mEACK;AAGhC,MAAa,qBAAqB;CAGjC;AAHD,sDAGC;AADC;IADC,IAAA,+BAAkB,EAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC;;oDACH;AAGjD,MAAa,cAAe,SAAQ,kBAAU;IAG5C,YAAY,OAA8B;QACxC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;;AANH,wCAUC;AATiB,yBAAU,GAAG,6BAA6B,CAAC;AAQ3D;IADC,IAAA,+BAAkB,EAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC;8BACvC,qBAAqB;+CAAC"}
@@ -6,7 +6,8 @@ export declare enum CloudSettingsKeys {
6
6
  POST_GAME_LOAD_DELAY = "postGameLoadDelay",
7
7
  ADDITIONAL_LAUNCH_ARGS = "additionalLaunchArgs",
8
8
  ADDITIONAL_ENVIRONMENT_VARIABLES = "additionalEnvironmentVariables",
9
- MACHINE_CLASS_PRIORITY = "machineClassPriority"
9
+ MACHINE_CLASS_PRIORITY = "machineClassPriority",
10
+ SPOT_PREFERENCE = "spotPreference"
10
11
  }
11
12
  export interface CloudSettingsTypeMap {
12
13
  [CloudSettingsKeys.GAME_LOADING_TIME]: number;
@@ -16,6 +17,7 @@ export interface CloudSettingsTypeMap {
16
17
  [CloudSettingsKeys.ADDITIONAL_LAUNCH_ARGS]: string[];
17
18
  [CloudSettingsKeys.ADDITIONAL_ENVIRONMENT_VARIABLES]: Record<string, string>;
18
19
  [CloudSettingsKeys.MACHINE_CLASS_PRIORITY]: LudeoCastV2MachineClass[];
20
+ [CloudSettingsKeys.SPOT_PREFERENCE]: number;
19
21
  }
20
22
  export declare const MACHINE_CLASS_PRIORITY_DEFAULT_VALUES: LudeoCastV2MachineClass[];
21
23
  export type CloudSettings = {
@@ -11,6 +11,7 @@ var CloudSettingsKeys;
11
11
  CloudSettingsKeys["ADDITIONAL_LAUNCH_ARGS"] = "additionalLaunchArgs";
12
12
  CloudSettingsKeys["ADDITIONAL_ENVIRONMENT_VARIABLES"] = "additionalEnvironmentVariables";
13
13
  CloudSettingsKeys["MACHINE_CLASS_PRIORITY"] = "machineClassPriority";
14
+ CloudSettingsKeys["SPOT_PREFERENCE"] = "spotPreference";
14
15
  })(CloudSettingsKeys || (exports.CloudSettingsKeys = CloudSettingsKeys = {}));
15
16
  exports.MACHINE_CLASS_PRIORITY_DEFAULT_VALUES = [
16
17
  ludeocast_v2_1.LudeoCastV2MachineClass.N1_STANDARD_8,
@@ -70,5 +71,11 @@ exports.CLOUD_SETTINGS_DEFAULT_VALUES = {
70
71
  displayKey: "Machine Class Priority",
71
72
  defaultValue: exports.MACHINE_CLASS_PRIORITY_DEFAULT_VALUES
72
73
  },
74
+ [CloudSettingsKeys.SPOT_PREFERENCE]: {
75
+ type: "number",
76
+ key: CloudSettingsKeys.SPOT_PREFERENCE,
77
+ displayKey: "Cost Optimization - Spot VMs (%)",
78
+ defaultValue: 0,
79
+ },
73
80
  };
74
81
  //# sourceMappingURL=cloud-configuration-settings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-configuration-settings.js","sourceRoot":"","sources":["../../../../src/v4/types/cloud/cloud-configuration-settings.ts"],"names":[],"mappings":";;;AAAA,iDAAyD;AAEzD,IAAY,iBAQX;AARD,WAAY,iBAAiB;IAC3B,0DAAqC,CAAA;IACrC,iEAA4C,CAAA;IAC5C,uEAAkD,CAAA;IAClD,+DAA0C,CAAA;IAC1C,oEAA+C,CAAA;IAC/C,wFAAmE,CAAA;IACnE,oEAA+C,CAAA;AACjD,CAAC,EARW,iBAAiB,iCAAjB,iBAAiB,QAQ5B;AAcY,QAAA,qCAAqC,GAAG;IACnD,sCAAuB,CAAC,aAAa;IACrC,sCAAuB,CAAC,YAAY;IACpC,sCAAuB,CAAC,cAAc;IACtC,sCAAuB,CAAC,YAAY;IACpC,sCAAuB,CAAC,cAAc;IACtC,sCAAuB,CAAC,UAAU;IAClC,sCAAuB,CAAC,UAAU;IAClC,sCAAuB,CAAC,cAAc;CACvC,CAAC;AAQK,MAAM,qBAAqB,GAAG,CACnC,GAAM,EACN,aAA4B,EACH,EAAE;IAC3B,OAAO,CACL,aAAa,CAAC,GAAG,CAAC;QACjB,qCAA6B,CAAC,GAAG,CAAC,CAAC,YAAwC,CAC7E,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,qBAAqB,yBAQhC;AAmCW,QAAA,6BAA6B,GAGtC;IACF,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE;QACrC,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,iBAAiB,CAAC,iBAAiB;QACxC,UAAU,EAAE,wBAAwB;QACpC,YAAY,EAAE,MAAM;KACrB;IACD,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,EAAE;QACzC,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,iBAAiB,CAAC,qBAAqB;QAC5C,UAAU,EAAE,4BAA4B;QACxC,YAAY,EAAE,KAAK;KACpB;IACD,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,EAAE;QAC5C,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,iBAAiB,CAAC,wBAAwB;QAC/C,UAAU,EAAE,+BAA+B;QAC3C,YAAY,EAAE,KAAK;KACpB;IACD,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,EAAE;QACxC,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,iBAAiB,CAAC,oBAAoB;QAC3C,UAAU,EAAE,2BAA2B;QACvC,YAAY,EAAE,CAAC;KAChB;IACD,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,EAAE;QAC1C,IAAI,EAAE,OAAO;QACb,GAAG,EAAE,iBAAiB,CAAC,sBAAsB;QAC7C,UAAU,EAAE,wBAAwB;QACpC,YAAY,EAAE,EAAE;KACjB;IACD,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,EAAE;QACpD,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,iBAAiB,CAAC,gCAAgC;QACvD,UAAU,EAAE,kCAAkC;QAC9C,YAAY,EAAE,EAAE;KACjB;IACD,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,EAAE;QAC1C,IAAI,EAAE,OAAO;QACb,GAAG,EAAE,iBAAiB,CAAC,sBAAsB;QAC7C,UAAU,EAAE,wBAAwB;QACpC,YAAY,EAAE,6CAAqC;KACpD;CACF,CAAC"}
1
+ {"version":3,"file":"cloud-configuration-settings.js","sourceRoot":"","sources":["../../../../src/v4/types/cloud/cloud-configuration-settings.ts"],"names":[],"mappings":";;;AAAA,iDAAyD;AAEzD,IAAY,iBASX;AATD,WAAY,iBAAiB;IAC3B,0DAAqC,CAAA;IACrC,iEAA4C,CAAA;IAC5C,uEAAkD,CAAA;IAClD,+DAA0C,CAAA;IAC1C,oEAA+C,CAAA;IAC/C,wFAAmE,CAAA;IACnE,oEAA+C,CAAA;IAC/C,uDAAkC,CAAA;AACpC,CAAC,EATW,iBAAiB,iCAAjB,iBAAiB,QAS5B;AAeY,QAAA,qCAAqC,GAAG;IACnD,sCAAuB,CAAC,aAAa;IACrC,sCAAuB,CAAC,YAAY;IACpC,sCAAuB,CAAC,cAAc;IACtC,sCAAuB,CAAC,YAAY;IACpC,sCAAuB,CAAC,cAAc;IACtC,sCAAuB,CAAC,UAAU;IAClC,sCAAuB,CAAC,UAAU;IAClC,sCAAuB,CAAC,cAAc;CACvC,CAAC;AAQK,MAAM,qBAAqB,GAAG,CACnC,GAAM,EACN,aAA4B,EACH,EAAE;IAC3B,OAAO,CACL,aAAa,CAAC,GAAG,CAAC;QACjB,qCAA6B,CAAC,GAAG,CAAC,CAAC,YAAwC,CAC7E,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,qBAAqB,yBAQhC;AAmCW,QAAA,6BAA6B,GAGtC;IACF,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE;QACrC,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,iBAAiB,CAAC,iBAAiB;QACxC,UAAU,EAAE,wBAAwB;QACpC,YAAY,EAAE,MAAM;KACrB;IACD,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,EAAE;QACzC,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,iBAAiB,CAAC,qBAAqB;QAC5C,UAAU,EAAE,4BAA4B;QACxC,YAAY,EAAE,KAAK;KACpB;IACD,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,EAAE;QAC5C,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,iBAAiB,CAAC,wBAAwB;QAC/C,UAAU,EAAE,+BAA+B;QAC3C,YAAY,EAAE,KAAK;KACpB;IACD,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,EAAE;QACxC,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,iBAAiB,CAAC,oBAAoB;QAC3C,UAAU,EAAE,2BAA2B;QACvC,YAAY,EAAE,CAAC;KAChB;IACD,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,EAAE;QAC1C,IAAI,EAAE,OAAO;QACb,GAAG,EAAE,iBAAiB,CAAC,sBAAsB;QAC7C,UAAU,EAAE,wBAAwB;QACpC,YAAY,EAAE,EAAE;KACjB;IACD,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,EAAE;QACpD,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,iBAAiB,CAAC,gCAAgC;QACvD,UAAU,EAAE,kCAAkC;QAC9C,YAAY,EAAE,EAAE;KACjB;IACD,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,EAAE;QAC1C,IAAI,EAAE,OAAO;QACb,GAAG,EAAE,iBAAiB,CAAC,sBAAsB;QAC7C,UAAU,EAAE,wBAAwB;QACpC,YAAY,EAAE,6CAAqC;KACpD;IACD,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE;QACnC,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,iBAAiB,CAAC,eAAe;QACtC,UAAU,EAAE,kCAAkC;QAC9C,YAAY,EAAE,CAAC;KAChB;CACF,CAAC"}
@@ -9,5 +9,6 @@ export declare class LudeoCastV2ProviderSettings {
9
9
  additionalEnvironmentVariables?: Record<string, string>;
10
10
  additionalLaunchArgs?: string[];
11
11
  distributionData?: LudeocastV2DistributionData;
12
+ isSpot?: boolean;
12
13
  }
13
14
  export declare const isLudeoCastV2ProviderSettings: (settings: CloudProviderSettings) => settings is LudeoCastV2ProviderSettings;
@@ -1 +1 @@
1
- {"version":3,"file":"provider-settings.js","sourceRoot":"","sources":["../../../../../src/v4/types/cloud/ludeocast-v2/provider-settings.ts"],"names":[],"mappings":";;;AAGA,MAAa,2BAA2B;CAgBvC;AAhBD,kEAgBC;AAEM,MAAM,6BAA6B,GAAG,CAC3C,QAA+B,EACU,EAAE;IAC3C,OAAO,CACL,QAAQ;QACR,MAAM,IAAI,QAAQ;QAClB,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAClC,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,6BAA6B,iCAQxC"}
1
+ {"version":3,"file":"provider-settings.js","sourceRoot":"","sources":["../../../../../src/v4/types/cloud/ludeocast-v2/provider-settings.ts"],"names":[],"mappings":";;;AAGA,MAAa,2BAA2B;CAkBvC;AAlBD,kEAkBC;AAEM,MAAM,6BAA6B,GAAG,CAC3C,QAA+B,EACU,EAAE;IAC3C,OAAO,CACL,QAAQ;QACR,MAAM,IAAI,QAAQ;QAClB,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAClC,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,6BAA6B,iCAQxC"}
@@ -4,5 +4,6 @@ export declare class CreateMachineRequestDto {
4
4
  region: string;
5
5
  machineMode: MachineMode;
6
6
  machineType: string;
7
+ useSpot?: boolean;
7
8
  metadata?: Record<string, string>;
8
9
  }
@@ -31,6 +31,11 @@ __decorate([
31
31
  (0, class_validator_1.IsString)(),
32
32
  __metadata("design:type", String)
33
33
  ], CreateMachineRequestDto.prototype, "machineType", void 0);
34
+ __decorate([
35
+ (0, class_validator_1.IsOptional)(),
36
+ (0, class_validator_1.IsBoolean)(),
37
+ __metadata("design:type", Boolean)
38
+ ], CreateMachineRequestDto.prototype, "useSpot", void 0);
34
39
  __decorate([
35
40
  (0, class_validator_1.IsOptional)(),
36
41
  __metadata("design:type", Object)
@@ -1 +1 @@
1
- {"version":3,"file":"create-machine.dto.js","sourceRoot":"","sources":["../../../../src/v4/types/site-controller/create-machine.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA+D;AAE/D,mCAAsC;AAEtC,MAAa,uBAAuB;CAenC;AAfD,0DAeC;AAbC;IADC,IAAA,0BAAQ,GAAE;;kEACe;AAG1B;IADC,IAAA,0BAAQ,GAAE;;uDACI;AAGf;IADC,IAAA,wBAAM,EAAC,mBAAW,CAAC;;4DACK;AAGzB;IADC,IAAA,0BAAQ,GAAE;;4DACS;AAGpB;IADC,IAAA,4BAAU,GAAE;;yDACqB"}
1
+ {"version":3,"file":"create-machine.dto.js","sourceRoot":"","sources":["../../../../src/v4/types/site-controller/create-machine.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA0E;AAE1E,mCAAsC;AAEtC,MAAa,uBAAuB;CAmBnC;AAnBD,0DAmBC;AAjBC;IADC,IAAA,0BAAQ,GAAE;;kEACe;AAG1B;IADC,IAAA,0BAAQ,GAAE;;uDACI;AAGf;IADC,IAAA,wBAAM,EAAC,mBAAW,CAAC;;4DACK;AAGzB;IADC,IAAA,0BAAQ,GAAE;;4DACS;AAIpB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;wDACM;AAGlB;IADC,IAAA,4BAAU,GAAE;;yDACqB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ludeo/cloud-common",
3
- "version": "1.2.233",
3
+ "version": "1.2.234-beta-yahil-2",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "author": "Yahil Didi",
@@ -25,6 +25,11 @@ export class SupportedSiteRegionData {
25
25
  @IsArray()
26
26
  @IsString({ each: true })
27
27
  machineClasses?: string[];
28
+
29
+ @IsOptional()
30
+ @IsArray()
31
+ @IsString({ each: true })
32
+ spotMachineClasses?: string[];
28
33
  }
29
34
 
30
35
  export class SupportedSitesPayload {
@@ -8,6 +8,7 @@ export enum CloudSettingsKeys {
8
8
  ADDITIONAL_LAUNCH_ARGS = "additionalLaunchArgs",
9
9
  ADDITIONAL_ENVIRONMENT_VARIABLES = "additionalEnvironmentVariables",
10
10
  MACHINE_CLASS_PRIORITY = "machineClassPriority",
11
+ SPOT_PREFERENCE = "spotPreference",
11
12
  }
12
13
 
13
14
  // Define the mapping of setting keys to their actual value types
@@ -19,6 +20,7 @@ export interface CloudSettingsTypeMap {
19
20
  [CloudSettingsKeys.ADDITIONAL_LAUNCH_ARGS]: string[];
20
21
  [CloudSettingsKeys.ADDITIONAL_ENVIRONMENT_VARIABLES]: Record<string, string>;
21
22
  [CloudSettingsKeys.MACHINE_CLASS_PRIORITY]: LudeoCastV2MachineClass[];
23
+ [CloudSettingsKeys.SPOT_PREFERENCE]: number;
22
24
  }
23
25
 
24
26
 
@@ -128,4 +130,10 @@ export const CLOUD_SETTINGS_DEFAULT_VALUES: Record<
128
130
  displayKey: "Machine Class Priority",
129
131
  defaultValue: MACHINE_CLASS_PRIORITY_DEFAULT_VALUES
130
132
  },
133
+ [CloudSettingsKeys.SPOT_PREFERENCE]: {
134
+ type: "number",
135
+ key: CloudSettingsKeys.SPOT_PREFERENCE,
136
+ displayKey: "Cost Optimization - Spot VMs (%)",
137
+ defaultValue: 0,
138
+ },
131
139
  };
@@ -17,6 +17,8 @@ export class LudeoCastV2ProviderSettings {
17
17
  additionalLaunchArgs?: string[];
18
18
 
19
19
  distributionData?: LudeocastV2DistributionData;
20
+
21
+ isSpot?: boolean;
20
22
  }
21
23
 
22
24
  export const isLudeoCastV2ProviderSettings = (
@@ -1,4 +1,4 @@
1
- import { IsEnum, IsOptional, IsString } from 'class-validator';
1
+ import { IsBoolean, IsEnum, IsOptional, IsString } from 'class-validator';
2
2
 
3
3
  import { MachineMode } from './types';
4
4
 
@@ -15,6 +15,10 @@ export class CreateMachineRequestDto {
15
15
  @IsString()
16
16
  machineType: string;
17
17
 
18
+ @IsOptional()
19
+ @IsBoolean()
20
+ useSpot?: boolean;
21
+
18
22
  @IsOptional()
19
23
  metadata?: Record<string, string>;
20
24
  }