Skip to content

Commit e3e0f78

Browse files
author
serverpod_cloud
committed
feat: 663697eba0a12ac8b3125116e617c528644f97c7
1 parent 102f2e4 commit e3e0f78

1 file changed

Lines changed: 112 additions & 23 deletions

File tree

ground_control_client/lib/src/protocol/domains/capsules/models/capsule_resource_config.dart

Lines changed: 112 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,39 @@ abstract class CapsuleResource implements _i1.SerializableModel {
1818
this.id,
1919
required this.cloudCapsuleId,
2020
this.capsule,
21-
required this.computeSize,
21+
String? computeRequestCpu,
22+
String? computeRequestMemory,
23+
String? computeRequestEphemeralStorage,
24+
String? computeLimitCpu,
25+
String? computeLimitMemory,
26+
String? computeLimitEphemeralStorage,
2227
bool? computeScalingEnabled,
23-
required this.computeResourceQuota,
24-
}) : computeScalingEnabled = computeScalingEnabled ?? false;
28+
int? computeScalingMinReplicas,
29+
int? computeScalingMaxReplicas,
30+
}) : computeRequestCpu = computeRequestCpu ?? '250m',
31+
computeRequestMemory = computeRequestMemory ?? '256Mi',
32+
computeRequestEphemeralStorage =
33+
computeRequestEphemeralStorage ?? '1Gi',
34+
computeLimitCpu = computeLimitCpu ?? '1',
35+
computeLimitMemory = computeLimitMemory ?? '256Mi',
36+
computeLimitEphemeralStorage = computeLimitEphemeralStorage ?? '1Gi',
37+
computeScalingEnabled = computeScalingEnabled ?? false,
38+
computeScalingMinReplicas = computeScalingMinReplicas ?? 1,
39+
computeScalingMaxReplicas = computeScalingMaxReplicas ?? 1;
2540

2641
factory CapsuleResource({
2742
int? id,
2843
required int cloudCapsuleId,
2944
_i2.Capsule? capsule,
30-
required String computeSize,
45+
String? computeRequestCpu,
46+
String? computeRequestMemory,
47+
String? computeRequestEphemeralStorage,
48+
String? computeLimitCpu,
49+
String? computeLimitMemory,
50+
String? computeLimitEphemeralStorage,
3151
bool? computeScalingEnabled,
32-
required String computeResourceQuota,
52+
int? computeScalingMinReplicas,
53+
int? computeScalingMaxReplicas,
3354
}) = _CapsuleResourceImpl;
3455

3556
factory CapsuleResource.fromJson(Map<String, dynamic> jsonSerialization) {
@@ -40,9 +61,19 @@ abstract class CapsuleResource implements _i1.SerializableModel {
4061
? null
4162
: _i2.Capsule.fromJson(
4263
(jsonSerialization['capsule'] as Map<String, dynamic>)),
43-
computeSize: jsonSerialization['computeSize'] as String,
64+
computeRequestCpu: jsonSerialization['computeRequestCpu'] as String,
65+
computeRequestMemory: jsonSerialization['computeRequestMemory'] as String,
66+
computeRequestEphemeralStorage:
67+
jsonSerialization['computeRequestEphemeralStorage'] as String,
68+
computeLimitCpu: jsonSerialization['computeLimitCpu'] as String,
69+
computeLimitMemory: jsonSerialization['computeLimitMemory'] as String,
70+
computeLimitEphemeralStorage:
71+
jsonSerialization['computeLimitEphemeralStorage'] as String,
4472
computeScalingEnabled: jsonSerialization['computeScalingEnabled'] as bool,
45-
computeResourceQuota: jsonSerialization['computeResourceQuota'] as String,
73+
computeScalingMinReplicas:
74+
jsonSerialization['computeScalingMinReplicas'] as int,
75+
computeScalingMaxReplicas:
76+
jsonSerialization['computeScalingMaxReplicas'] as int,
4677
);
4778
}
4879

@@ -57,14 +88,32 @@ abstract class CapsuleResource implements _i1.SerializableModel {
5788
/// The capsule this resource config belongs to.
5889
_i2.Capsule? capsule;
5990

60-
/// The size of the capsule compute.
61-
String computeSize;
91+
/// The compute request cpu.
92+
String computeRequestCpu;
93+
94+
/// The compute request memory.
95+
String computeRequestMemory;
96+
97+
/// The compute request ephemeral storage.
98+
String computeRequestEphemeralStorage;
99+
100+
/// The compute limit cpu.
101+
String computeLimitCpu;
102+
103+
/// The compute limit memory.
104+
String computeLimitMemory;
105+
106+
/// The compute limit ephemeral storage.
107+
String computeLimitEphemeralStorage;
62108

63109
/// Flag to enable horizontal scaling for the capsule compute.
64110
bool computeScalingEnabled;
65111

66-
/// The resource quota for the capsule compute.
67-
String computeResourceQuota;
112+
/// The minimum number of compute instances to scale to.
113+
int computeScalingMinReplicas;
114+
115+
/// The maximum number of compute instances to scale to.
116+
int computeScalingMaxReplicas;
68117

69118
/// Returns a shallow copy of this [CapsuleResource]
70119
/// with some or all fields replaced by the given arguments.
@@ -73,19 +122,31 @@ abstract class CapsuleResource implements _i1.SerializableModel {
73122
int? id,
74123
int? cloudCapsuleId,
75124
_i2.Capsule? capsule,
76-
String? computeSize,
125+
String? computeRequestCpu,
126+
String? computeRequestMemory,
127+
String? computeRequestEphemeralStorage,
128+
String? computeLimitCpu,
129+
String? computeLimitMemory,
130+
String? computeLimitEphemeralStorage,
77131
bool? computeScalingEnabled,
78-
String? computeResourceQuota,
132+
int? computeScalingMinReplicas,
133+
int? computeScalingMaxReplicas,
79134
});
80135
@override
81136
Map<String, dynamic> toJson() {
82137
return {
83138
if (id != null) 'id': id,
84139
'cloudCapsuleId': cloudCapsuleId,
85140
if (capsule != null) 'capsule': capsule?.toJson(),
86-
'computeSize': computeSize,
141+
'computeRequestCpu': computeRequestCpu,
142+
'computeRequestMemory': computeRequestMemory,
143+
'computeRequestEphemeralStorage': computeRequestEphemeralStorage,
144+
'computeLimitCpu': computeLimitCpu,
145+
'computeLimitMemory': computeLimitMemory,
146+
'computeLimitEphemeralStorage': computeLimitEphemeralStorage,
87147
'computeScalingEnabled': computeScalingEnabled,
88-
'computeResourceQuota': computeResourceQuota,
148+
'computeScalingMinReplicas': computeScalingMinReplicas,
149+
'computeScalingMaxReplicas': computeScalingMaxReplicas,
89150
};
90151
}
91152

@@ -102,16 +163,28 @@ class _CapsuleResourceImpl extends CapsuleResource {
102163
int? id,
103164
required int cloudCapsuleId,
104165
_i2.Capsule? capsule,
105-
required String computeSize,
166+
String? computeRequestCpu,
167+
String? computeRequestMemory,
168+
String? computeRequestEphemeralStorage,
169+
String? computeLimitCpu,
170+
String? computeLimitMemory,
171+
String? computeLimitEphemeralStorage,
106172
bool? computeScalingEnabled,
107-
required String computeResourceQuota,
173+
int? computeScalingMinReplicas,
174+
int? computeScalingMaxReplicas,
108175
}) : super._(
109176
id: id,
110177
cloudCapsuleId: cloudCapsuleId,
111178
capsule: capsule,
112-
computeSize: computeSize,
179+
computeRequestCpu: computeRequestCpu,
180+
computeRequestMemory: computeRequestMemory,
181+
computeRequestEphemeralStorage: computeRequestEphemeralStorage,
182+
computeLimitCpu: computeLimitCpu,
183+
computeLimitMemory: computeLimitMemory,
184+
computeLimitEphemeralStorage: computeLimitEphemeralStorage,
113185
computeScalingEnabled: computeScalingEnabled,
114-
computeResourceQuota: computeResourceQuota,
186+
computeScalingMinReplicas: computeScalingMinReplicas,
187+
computeScalingMaxReplicas: computeScalingMaxReplicas,
115188
);
116189

117190
/// Returns a shallow copy of this [CapsuleResource]
@@ -122,18 +195,34 @@ class _CapsuleResourceImpl extends CapsuleResource {
122195
Object? id = _Undefined,
123196
int? cloudCapsuleId,
124197
Object? capsule = _Undefined,
125-
String? computeSize,
198+
String? computeRequestCpu,
199+
String? computeRequestMemory,
200+
String? computeRequestEphemeralStorage,
201+
String? computeLimitCpu,
202+
String? computeLimitMemory,
203+
String? computeLimitEphemeralStorage,
126204
bool? computeScalingEnabled,
127-
String? computeResourceQuota,
205+
int? computeScalingMinReplicas,
206+
int? computeScalingMaxReplicas,
128207
}) {
129208
return CapsuleResource(
130209
id: id is int? ? id : this.id,
131210
cloudCapsuleId: cloudCapsuleId ?? this.cloudCapsuleId,
132211
capsule: capsule is _i2.Capsule? ? capsule : this.capsule?.copyWith(),
133-
computeSize: computeSize ?? this.computeSize,
212+
computeRequestCpu: computeRequestCpu ?? this.computeRequestCpu,
213+
computeRequestMemory: computeRequestMemory ?? this.computeRequestMemory,
214+
computeRequestEphemeralStorage:
215+
computeRequestEphemeralStorage ?? this.computeRequestEphemeralStorage,
216+
computeLimitCpu: computeLimitCpu ?? this.computeLimitCpu,
217+
computeLimitMemory: computeLimitMemory ?? this.computeLimitMemory,
218+
computeLimitEphemeralStorage:
219+
computeLimitEphemeralStorage ?? this.computeLimitEphemeralStorage,
134220
computeScalingEnabled:
135221
computeScalingEnabled ?? this.computeScalingEnabled,
136-
computeResourceQuota: computeResourceQuota ?? this.computeResourceQuota,
222+
computeScalingMinReplicas:
223+
computeScalingMinReplicas ?? this.computeScalingMinReplicas,
224+
computeScalingMaxReplicas:
225+
computeScalingMaxReplicas ?? this.computeScalingMaxReplicas,
137226
);
138227
}
139228
}

0 commit comments

Comments
 (0)