pulumi-harness 0.8.0a1747375122__py3-none-any.whl → 0.8.0a1747893453__py3-none-any.whl

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.

Potentially problematic release.


This version of pulumi-harness might be problematic. Click here for more details.

@@ -0,0 +1,992 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins
6
+ import copy
7
+ import warnings
8
+ import sys
9
+ import pulumi
10
+ import pulumi.runtime
11
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
12
+ if sys.version_info >= (3, 11):
13
+ from typing import NotRequired, TypedDict, TypeAlias
14
+ else:
15
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
16
+ from .. import _utilities
17
+
18
+ __all__ = [
19
+ 'OrchestratorConfigBinpackingArgs',
20
+ 'OrchestratorConfigBinpackingArgsDict',
21
+ 'OrchestratorConfigBinpackingDisruptionArgs',
22
+ 'OrchestratorConfigBinpackingDisruptionArgsDict',
23
+ 'OrchestratorConfigBinpackingDisruptionBudgetArgs',
24
+ 'OrchestratorConfigBinpackingDisruptionBudgetArgsDict',
25
+ 'OrchestratorConfigBinpackingDisruptionBudgetScheduleArgs',
26
+ 'OrchestratorConfigBinpackingDisruptionBudgetScheduleArgsDict',
27
+ 'OrchestratorConfigBinpackingPodEvictionArgs',
28
+ 'OrchestratorConfigBinpackingPodEvictionArgsDict',
29
+ 'OrchestratorConfigBinpackingPodEvictionThresholdArgs',
30
+ 'OrchestratorConfigBinpackingPodEvictionThresholdArgsDict',
31
+ 'OrchestratorConfigDistributionArgs',
32
+ 'OrchestratorConfigDistributionArgsDict',
33
+ 'OrchestratorConfigNodePreferencesArgs',
34
+ 'OrchestratorConfigNodePreferencesArgsDict',
35
+ 'GetOrchestratorConfigBinpackingArgs',
36
+ 'GetOrchestratorConfigBinpackingArgsDict',
37
+ 'GetOrchestratorConfigBinpackingDisruptionArgs',
38
+ 'GetOrchestratorConfigBinpackingDisruptionArgsDict',
39
+ 'GetOrchestratorConfigBinpackingDisruptionBudgetArgs',
40
+ 'GetOrchestratorConfigBinpackingDisruptionBudgetArgsDict',
41
+ 'GetOrchestratorConfigBinpackingDisruptionBudgetScheduleArgs',
42
+ 'GetOrchestratorConfigBinpackingDisruptionBudgetScheduleArgsDict',
43
+ 'GetOrchestratorConfigBinpackingPodEvictionArgs',
44
+ 'GetOrchestratorConfigBinpackingPodEvictionArgsDict',
45
+ 'GetOrchestratorConfigBinpackingPodEvictionThresholdArgs',
46
+ 'GetOrchestratorConfigBinpackingPodEvictionThresholdArgsDict',
47
+ 'GetOrchestratorConfigDistributionArgs',
48
+ 'GetOrchestratorConfigDistributionArgsDict',
49
+ 'GetOrchestratorConfigNodePreferencesArgs',
50
+ 'GetOrchestratorConfigNodePreferencesArgsDict',
51
+ ]
52
+
53
+ MYPY = False
54
+
55
+ if not MYPY:
56
+ class OrchestratorConfigBinpackingArgsDict(TypedDict):
57
+ disruption: NotRequired[pulumi.Input['OrchestratorConfigBinpackingDisruptionArgsDict']]
58
+ """
59
+ Harness disruption configuration
60
+ """
61
+ pod_eviction: NotRequired[pulumi.Input['OrchestratorConfigBinpackingPodEvictionArgsDict']]
62
+ """
63
+ Harness Pod Evictor Configuration
64
+ """
65
+ elif False:
66
+ OrchestratorConfigBinpackingArgsDict: TypeAlias = Mapping[str, Any]
67
+
68
+ @pulumi.input_type
69
+ class OrchestratorConfigBinpackingArgs:
70
+ def __init__(__self__, *,
71
+ disruption: Optional[pulumi.Input['OrchestratorConfigBinpackingDisruptionArgs']] = None,
72
+ pod_eviction: Optional[pulumi.Input['OrchestratorConfigBinpackingPodEvictionArgs']] = None):
73
+ """
74
+ :param pulumi.Input['OrchestratorConfigBinpackingDisruptionArgs'] disruption: Harness disruption configuration
75
+ :param pulumi.Input['OrchestratorConfigBinpackingPodEvictionArgs'] pod_eviction: Harness Pod Evictor Configuration
76
+ """
77
+ if disruption is not None:
78
+ pulumi.set(__self__, "disruption", disruption)
79
+ if pod_eviction is not None:
80
+ pulumi.set(__self__, "pod_eviction", pod_eviction)
81
+
82
+ @property
83
+ @pulumi.getter
84
+ def disruption(self) -> Optional[pulumi.Input['OrchestratorConfigBinpackingDisruptionArgs']]:
85
+ """
86
+ Harness disruption configuration
87
+ """
88
+ return pulumi.get(self, "disruption")
89
+
90
+ @disruption.setter
91
+ def disruption(self, value: Optional[pulumi.Input['OrchestratorConfigBinpackingDisruptionArgs']]):
92
+ pulumi.set(self, "disruption", value)
93
+
94
+ @property
95
+ @pulumi.getter(name="podEviction")
96
+ def pod_eviction(self) -> Optional[pulumi.Input['OrchestratorConfigBinpackingPodEvictionArgs']]:
97
+ """
98
+ Harness Pod Evictor Configuration
99
+ """
100
+ return pulumi.get(self, "pod_eviction")
101
+
102
+ @pod_eviction.setter
103
+ def pod_eviction(self, value: Optional[pulumi.Input['OrchestratorConfigBinpackingPodEvictionArgs']]):
104
+ pulumi.set(self, "pod_eviction", value)
105
+
106
+
107
+ if not MYPY:
108
+ class OrchestratorConfigBinpackingDisruptionArgsDict(TypedDict):
109
+ budgets: NotRequired[pulumi.Input[Sequence[pulumi.Input['OrchestratorConfigBinpackingDisruptionBudgetArgsDict']]]]
110
+ """
111
+ Budgets for disruption
112
+ """
113
+ criteria: NotRequired[pulumi.Input[builtins.str]]
114
+ """
115
+ Criteria for considering a nodes for disruption
116
+ """
117
+ delay: NotRequired[pulumi.Input[builtins.str]]
118
+ """
119
+ Deletion delay
120
+ """
121
+ elif False:
122
+ OrchestratorConfigBinpackingDisruptionArgsDict: TypeAlias = Mapping[str, Any]
123
+
124
+ @pulumi.input_type
125
+ class OrchestratorConfigBinpackingDisruptionArgs:
126
+ def __init__(__self__, *,
127
+ budgets: Optional[pulumi.Input[Sequence[pulumi.Input['OrchestratorConfigBinpackingDisruptionBudgetArgs']]]] = None,
128
+ criteria: Optional[pulumi.Input[builtins.str]] = None,
129
+ delay: Optional[pulumi.Input[builtins.str]] = None):
130
+ """
131
+ :param pulumi.Input[Sequence[pulumi.Input['OrchestratorConfigBinpackingDisruptionBudgetArgs']]] budgets: Budgets for disruption
132
+ :param pulumi.Input[builtins.str] criteria: Criteria for considering a nodes for disruption
133
+ :param pulumi.Input[builtins.str] delay: Deletion delay
134
+ """
135
+ if budgets is not None:
136
+ pulumi.set(__self__, "budgets", budgets)
137
+ if criteria is not None:
138
+ pulumi.set(__self__, "criteria", criteria)
139
+ if delay is not None:
140
+ pulumi.set(__self__, "delay", delay)
141
+
142
+ @property
143
+ @pulumi.getter
144
+ def budgets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OrchestratorConfigBinpackingDisruptionBudgetArgs']]]]:
145
+ """
146
+ Budgets for disruption
147
+ """
148
+ return pulumi.get(self, "budgets")
149
+
150
+ @budgets.setter
151
+ def budgets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OrchestratorConfigBinpackingDisruptionBudgetArgs']]]]):
152
+ pulumi.set(self, "budgets", value)
153
+
154
+ @property
155
+ @pulumi.getter
156
+ def criteria(self) -> Optional[pulumi.Input[builtins.str]]:
157
+ """
158
+ Criteria for considering a nodes for disruption
159
+ """
160
+ return pulumi.get(self, "criteria")
161
+
162
+ @criteria.setter
163
+ def criteria(self, value: Optional[pulumi.Input[builtins.str]]):
164
+ pulumi.set(self, "criteria", value)
165
+
166
+ @property
167
+ @pulumi.getter
168
+ def delay(self) -> Optional[pulumi.Input[builtins.str]]:
169
+ """
170
+ Deletion delay
171
+ """
172
+ return pulumi.get(self, "delay")
173
+
174
+ @delay.setter
175
+ def delay(self, value: Optional[pulumi.Input[builtins.str]]):
176
+ pulumi.set(self, "delay", value)
177
+
178
+
179
+ if not MYPY:
180
+ class OrchestratorConfigBinpackingDisruptionBudgetArgsDict(TypedDict):
181
+ nodes: pulumi.Input[builtins.str]
182
+ """
183
+ Number or percentage of Nodes to consider for disruption
184
+ """
185
+ reasons: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
186
+ """
187
+ Reasons for disruption
188
+ """
189
+ schedule: NotRequired[pulumi.Input['OrchestratorConfigBinpackingDisruptionBudgetScheduleArgsDict']]
190
+ """
191
+ Schedule for disruption budget
192
+ """
193
+ elif False:
194
+ OrchestratorConfigBinpackingDisruptionBudgetArgsDict: TypeAlias = Mapping[str, Any]
195
+
196
+ @pulumi.input_type
197
+ class OrchestratorConfigBinpackingDisruptionBudgetArgs:
198
+ def __init__(__self__, *,
199
+ nodes: pulumi.Input[builtins.str],
200
+ reasons: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
201
+ schedule: Optional[pulumi.Input['OrchestratorConfigBinpackingDisruptionBudgetScheduleArgs']] = None):
202
+ """
203
+ :param pulumi.Input[builtins.str] nodes: Number or percentage of Nodes to consider for disruption
204
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] reasons: Reasons for disruption
205
+ :param pulumi.Input['OrchestratorConfigBinpackingDisruptionBudgetScheduleArgs'] schedule: Schedule for disruption budget
206
+ """
207
+ pulumi.set(__self__, "nodes", nodes)
208
+ if reasons is not None:
209
+ pulumi.set(__self__, "reasons", reasons)
210
+ if schedule is not None:
211
+ pulumi.set(__self__, "schedule", schedule)
212
+
213
+ @property
214
+ @pulumi.getter
215
+ def nodes(self) -> pulumi.Input[builtins.str]:
216
+ """
217
+ Number or percentage of Nodes to consider for disruption
218
+ """
219
+ return pulumi.get(self, "nodes")
220
+
221
+ @nodes.setter
222
+ def nodes(self, value: pulumi.Input[builtins.str]):
223
+ pulumi.set(self, "nodes", value)
224
+
225
+ @property
226
+ @pulumi.getter
227
+ def reasons(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
228
+ """
229
+ Reasons for disruption
230
+ """
231
+ return pulumi.get(self, "reasons")
232
+
233
+ @reasons.setter
234
+ def reasons(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
235
+ pulumi.set(self, "reasons", value)
236
+
237
+ @property
238
+ @pulumi.getter
239
+ def schedule(self) -> Optional[pulumi.Input['OrchestratorConfigBinpackingDisruptionBudgetScheduleArgs']]:
240
+ """
241
+ Schedule for disruption budget
242
+ """
243
+ return pulumi.get(self, "schedule")
244
+
245
+ @schedule.setter
246
+ def schedule(self, value: Optional[pulumi.Input['OrchestratorConfigBinpackingDisruptionBudgetScheduleArgs']]):
247
+ pulumi.set(self, "schedule", value)
248
+
249
+
250
+ if not MYPY:
251
+ class OrchestratorConfigBinpackingDisruptionBudgetScheduleArgsDict(TypedDict):
252
+ duration: pulumi.Input[builtins.str]
253
+ """
254
+ Duration for disruption budget
255
+ """
256
+ frequency: pulumi.Input[builtins.str]
257
+ """
258
+ Frequency for disruption budget
259
+ """
260
+ elif False:
261
+ OrchestratorConfigBinpackingDisruptionBudgetScheduleArgsDict: TypeAlias = Mapping[str, Any]
262
+
263
+ @pulumi.input_type
264
+ class OrchestratorConfigBinpackingDisruptionBudgetScheduleArgs:
265
+ def __init__(__self__, *,
266
+ duration: pulumi.Input[builtins.str],
267
+ frequency: pulumi.Input[builtins.str]):
268
+ """
269
+ :param pulumi.Input[builtins.str] duration: Duration for disruption budget
270
+ :param pulumi.Input[builtins.str] frequency: Frequency for disruption budget
271
+ """
272
+ pulumi.set(__self__, "duration", duration)
273
+ pulumi.set(__self__, "frequency", frequency)
274
+
275
+ @property
276
+ @pulumi.getter
277
+ def duration(self) -> pulumi.Input[builtins.str]:
278
+ """
279
+ Duration for disruption budget
280
+ """
281
+ return pulumi.get(self, "duration")
282
+
283
+ @duration.setter
284
+ def duration(self, value: pulumi.Input[builtins.str]):
285
+ pulumi.set(self, "duration", value)
286
+
287
+ @property
288
+ @pulumi.getter
289
+ def frequency(self) -> pulumi.Input[builtins.str]:
290
+ """
291
+ Frequency for disruption budget
292
+ """
293
+ return pulumi.get(self, "frequency")
294
+
295
+ @frequency.setter
296
+ def frequency(self, value: pulumi.Input[builtins.str]):
297
+ pulumi.set(self, "frequency", value)
298
+
299
+
300
+ if not MYPY:
301
+ class OrchestratorConfigBinpackingPodEvictionArgsDict(TypedDict):
302
+ threshold: pulumi.Input['OrchestratorConfigBinpackingPodEvictionThresholdArgsDict']
303
+ """
304
+ Minimum Threshold for considering a node as underutilized
305
+ """
306
+ elif False:
307
+ OrchestratorConfigBinpackingPodEvictionArgsDict: TypeAlias = Mapping[str, Any]
308
+
309
+ @pulumi.input_type
310
+ class OrchestratorConfigBinpackingPodEvictionArgs:
311
+ def __init__(__self__, *,
312
+ threshold: pulumi.Input['OrchestratorConfigBinpackingPodEvictionThresholdArgs']):
313
+ """
314
+ :param pulumi.Input['OrchestratorConfigBinpackingPodEvictionThresholdArgs'] threshold: Minimum Threshold for considering a node as underutilized
315
+ """
316
+ pulumi.set(__self__, "threshold", threshold)
317
+
318
+ @property
319
+ @pulumi.getter
320
+ def threshold(self) -> pulumi.Input['OrchestratorConfigBinpackingPodEvictionThresholdArgs']:
321
+ """
322
+ Minimum Threshold for considering a node as underutilized
323
+ """
324
+ return pulumi.get(self, "threshold")
325
+
326
+ @threshold.setter
327
+ def threshold(self, value: pulumi.Input['OrchestratorConfigBinpackingPodEvictionThresholdArgs']):
328
+ pulumi.set(self, "threshold", value)
329
+
330
+
331
+ if not MYPY:
332
+ class OrchestratorConfigBinpackingPodEvictionThresholdArgsDict(TypedDict):
333
+ cpu: pulumi.Input[builtins.float]
334
+ """
335
+ CPU percentage for considering a node as underutilized
336
+ """
337
+ memory: pulumi.Input[builtins.float]
338
+ """
339
+ Memory percentage for considering a node as underutilized
340
+ """
341
+ elif False:
342
+ OrchestratorConfigBinpackingPodEvictionThresholdArgsDict: TypeAlias = Mapping[str, Any]
343
+
344
+ @pulumi.input_type
345
+ class OrchestratorConfigBinpackingPodEvictionThresholdArgs:
346
+ def __init__(__self__, *,
347
+ cpu: pulumi.Input[builtins.float],
348
+ memory: pulumi.Input[builtins.float]):
349
+ """
350
+ :param pulumi.Input[builtins.float] cpu: CPU percentage for considering a node as underutilized
351
+ :param pulumi.Input[builtins.float] memory: Memory percentage for considering a node as underutilized
352
+ """
353
+ pulumi.set(__self__, "cpu", cpu)
354
+ pulumi.set(__self__, "memory", memory)
355
+
356
+ @property
357
+ @pulumi.getter
358
+ def cpu(self) -> pulumi.Input[builtins.float]:
359
+ """
360
+ CPU percentage for considering a node as underutilized
361
+ """
362
+ return pulumi.get(self, "cpu")
363
+
364
+ @cpu.setter
365
+ def cpu(self, value: pulumi.Input[builtins.float]):
366
+ pulumi.set(self, "cpu", value)
367
+
368
+ @property
369
+ @pulumi.getter
370
+ def memory(self) -> pulumi.Input[builtins.float]:
371
+ """
372
+ Memory percentage for considering a node as underutilized
373
+ """
374
+ return pulumi.get(self, "memory")
375
+
376
+ @memory.setter
377
+ def memory(self, value: pulumi.Input[builtins.float]):
378
+ pulumi.set(self, "memory", value)
379
+
380
+
381
+ if not MYPY:
382
+ class OrchestratorConfigDistributionArgsDict(TypedDict):
383
+ ondemand_replica_percentage: pulumi.Input[builtins.float]
384
+ """
385
+ Percentage of on-demand replicas required for workloads
386
+ """
387
+ base_ondemand_capacity: NotRequired[pulumi.Input[builtins.int]]
388
+ """
389
+ Number of minimum ondemand replicas required for workloads
390
+ """
391
+ selector: NotRequired[pulumi.Input[builtins.str]]
392
+ """
393
+ Selector for choosing workloads for distribution
394
+ """
395
+ strategy: NotRequired[pulumi.Input[builtins.str]]
396
+ """
397
+ Strategy for choosing spot nodes for cluster
398
+ """
399
+ elif False:
400
+ OrchestratorConfigDistributionArgsDict: TypeAlias = Mapping[str, Any]
401
+
402
+ @pulumi.input_type
403
+ class OrchestratorConfigDistributionArgs:
404
+ def __init__(__self__, *,
405
+ ondemand_replica_percentage: pulumi.Input[builtins.float],
406
+ base_ondemand_capacity: Optional[pulumi.Input[builtins.int]] = None,
407
+ selector: Optional[pulumi.Input[builtins.str]] = None,
408
+ strategy: Optional[pulumi.Input[builtins.str]] = None):
409
+ """
410
+ :param pulumi.Input[builtins.float] ondemand_replica_percentage: Percentage of on-demand replicas required for workloads
411
+ :param pulumi.Input[builtins.int] base_ondemand_capacity: Number of minimum ondemand replicas required for workloads
412
+ :param pulumi.Input[builtins.str] selector: Selector for choosing workloads for distribution
413
+ :param pulumi.Input[builtins.str] strategy: Strategy for choosing spot nodes for cluster
414
+ """
415
+ pulumi.set(__self__, "ondemand_replica_percentage", ondemand_replica_percentage)
416
+ if base_ondemand_capacity is not None:
417
+ pulumi.set(__self__, "base_ondemand_capacity", base_ondemand_capacity)
418
+ if selector is not None:
419
+ pulumi.set(__self__, "selector", selector)
420
+ if strategy is not None:
421
+ pulumi.set(__self__, "strategy", strategy)
422
+
423
+ @property
424
+ @pulumi.getter(name="ondemandReplicaPercentage")
425
+ def ondemand_replica_percentage(self) -> pulumi.Input[builtins.float]:
426
+ """
427
+ Percentage of on-demand replicas required for workloads
428
+ """
429
+ return pulumi.get(self, "ondemand_replica_percentage")
430
+
431
+ @ondemand_replica_percentage.setter
432
+ def ondemand_replica_percentage(self, value: pulumi.Input[builtins.float]):
433
+ pulumi.set(self, "ondemand_replica_percentage", value)
434
+
435
+ @property
436
+ @pulumi.getter(name="baseOndemandCapacity")
437
+ def base_ondemand_capacity(self) -> Optional[pulumi.Input[builtins.int]]:
438
+ """
439
+ Number of minimum ondemand replicas required for workloads
440
+ """
441
+ return pulumi.get(self, "base_ondemand_capacity")
442
+
443
+ @base_ondemand_capacity.setter
444
+ def base_ondemand_capacity(self, value: Optional[pulumi.Input[builtins.int]]):
445
+ pulumi.set(self, "base_ondemand_capacity", value)
446
+
447
+ @property
448
+ @pulumi.getter
449
+ def selector(self) -> Optional[pulumi.Input[builtins.str]]:
450
+ """
451
+ Selector for choosing workloads for distribution
452
+ """
453
+ return pulumi.get(self, "selector")
454
+
455
+ @selector.setter
456
+ def selector(self, value: Optional[pulumi.Input[builtins.str]]):
457
+ pulumi.set(self, "selector", value)
458
+
459
+ @property
460
+ @pulumi.getter
461
+ def strategy(self) -> Optional[pulumi.Input[builtins.str]]:
462
+ """
463
+ Strategy for choosing spot nodes for cluster
464
+ """
465
+ return pulumi.get(self, "strategy")
466
+
467
+ @strategy.setter
468
+ def strategy(self, value: Optional[pulumi.Input[builtins.str]]):
469
+ pulumi.set(self, "strategy", value)
470
+
471
+
472
+ if not MYPY:
473
+ class OrchestratorConfigNodePreferencesArgsDict(TypedDict):
474
+ reverse_fallback_interval: NotRequired[pulumi.Input[builtins.str]]
475
+ """
476
+ Reverse fallback interval
477
+ """
478
+ ttl: NotRequired[pulumi.Input[builtins.str]]
479
+ """
480
+ TTL for nodes
481
+ """
482
+ elif False:
483
+ OrchestratorConfigNodePreferencesArgsDict: TypeAlias = Mapping[str, Any]
484
+
485
+ @pulumi.input_type
486
+ class OrchestratorConfigNodePreferencesArgs:
487
+ def __init__(__self__, *,
488
+ reverse_fallback_interval: Optional[pulumi.Input[builtins.str]] = None,
489
+ ttl: Optional[pulumi.Input[builtins.str]] = None):
490
+ """
491
+ :param pulumi.Input[builtins.str] reverse_fallback_interval: Reverse fallback interval
492
+ :param pulumi.Input[builtins.str] ttl: TTL for nodes
493
+ """
494
+ if reverse_fallback_interval is not None:
495
+ pulumi.set(__self__, "reverse_fallback_interval", reverse_fallback_interval)
496
+ if ttl is not None:
497
+ pulumi.set(__self__, "ttl", ttl)
498
+
499
+ @property
500
+ @pulumi.getter(name="reverseFallbackInterval")
501
+ def reverse_fallback_interval(self) -> Optional[pulumi.Input[builtins.str]]:
502
+ """
503
+ Reverse fallback interval
504
+ """
505
+ return pulumi.get(self, "reverse_fallback_interval")
506
+
507
+ @reverse_fallback_interval.setter
508
+ def reverse_fallback_interval(self, value: Optional[pulumi.Input[builtins.str]]):
509
+ pulumi.set(self, "reverse_fallback_interval", value)
510
+
511
+ @property
512
+ @pulumi.getter
513
+ def ttl(self) -> Optional[pulumi.Input[builtins.str]]:
514
+ """
515
+ TTL for nodes
516
+ """
517
+ return pulumi.get(self, "ttl")
518
+
519
+ @ttl.setter
520
+ def ttl(self, value: Optional[pulumi.Input[builtins.str]]):
521
+ pulumi.set(self, "ttl", value)
522
+
523
+
524
+ if not MYPY:
525
+ class GetOrchestratorConfigBinpackingArgsDict(TypedDict):
526
+ disruption: NotRequired['GetOrchestratorConfigBinpackingDisruptionArgsDict']
527
+ """
528
+ Harness disruption configuration
529
+ """
530
+ pod_eviction: NotRequired['GetOrchestratorConfigBinpackingPodEvictionArgsDict']
531
+ """
532
+ Harness Pod Evictor Configuration
533
+ """
534
+ elif False:
535
+ GetOrchestratorConfigBinpackingArgsDict: TypeAlias = Mapping[str, Any]
536
+
537
+ @pulumi.input_type
538
+ class GetOrchestratorConfigBinpackingArgs:
539
+ def __init__(__self__, *,
540
+ disruption: Optional['GetOrchestratorConfigBinpackingDisruptionArgs'] = None,
541
+ pod_eviction: Optional['GetOrchestratorConfigBinpackingPodEvictionArgs'] = None):
542
+ """
543
+ :param 'GetOrchestratorConfigBinpackingDisruptionArgs' disruption: Harness disruption configuration
544
+ :param 'GetOrchestratorConfigBinpackingPodEvictionArgs' pod_eviction: Harness Pod Evictor Configuration
545
+ """
546
+ if disruption is not None:
547
+ pulumi.set(__self__, "disruption", disruption)
548
+ if pod_eviction is not None:
549
+ pulumi.set(__self__, "pod_eviction", pod_eviction)
550
+
551
+ @property
552
+ @pulumi.getter
553
+ def disruption(self) -> Optional['GetOrchestratorConfigBinpackingDisruptionArgs']:
554
+ """
555
+ Harness disruption configuration
556
+ """
557
+ return pulumi.get(self, "disruption")
558
+
559
+ @disruption.setter
560
+ def disruption(self, value: Optional['GetOrchestratorConfigBinpackingDisruptionArgs']):
561
+ pulumi.set(self, "disruption", value)
562
+
563
+ @property
564
+ @pulumi.getter(name="podEviction")
565
+ def pod_eviction(self) -> Optional['GetOrchestratorConfigBinpackingPodEvictionArgs']:
566
+ """
567
+ Harness Pod Evictor Configuration
568
+ """
569
+ return pulumi.get(self, "pod_eviction")
570
+
571
+ @pod_eviction.setter
572
+ def pod_eviction(self, value: Optional['GetOrchestratorConfigBinpackingPodEvictionArgs']):
573
+ pulumi.set(self, "pod_eviction", value)
574
+
575
+
576
+ if not MYPY:
577
+ class GetOrchestratorConfigBinpackingDisruptionArgsDict(TypedDict):
578
+ budgets: NotRequired[Sequence['GetOrchestratorConfigBinpackingDisruptionBudgetArgsDict']]
579
+ """
580
+ Budgets for disruption
581
+ """
582
+ criteria: NotRequired[builtins.str]
583
+ """
584
+ Criteria for considering a nodes for disruption
585
+ """
586
+ delay: NotRequired[builtins.str]
587
+ """
588
+ Deletion delay
589
+ """
590
+ elif False:
591
+ GetOrchestratorConfigBinpackingDisruptionArgsDict: TypeAlias = Mapping[str, Any]
592
+
593
+ @pulumi.input_type
594
+ class GetOrchestratorConfigBinpackingDisruptionArgs:
595
+ def __init__(__self__, *,
596
+ budgets: Optional[Sequence['GetOrchestratorConfigBinpackingDisruptionBudgetArgs']] = None,
597
+ criteria: Optional[builtins.str] = None,
598
+ delay: Optional[builtins.str] = None):
599
+ """
600
+ :param Sequence['GetOrchestratorConfigBinpackingDisruptionBudgetArgs'] budgets: Budgets for disruption
601
+ :param builtins.str criteria: Criteria for considering a nodes for disruption
602
+ :param builtins.str delay: Deletion delay
603
+ """
604
+ if budgets is not None:
605
+ pulumi.set(__self__, "budgets", budgets)
606
+ if criteria is not None:
607
+ pulumi.set(__self__, "criteria", criteria)
608
+ if delay is not None:
609
+ pulumi.set(__self__, "delay", delay)
610
+
611
+ @property
612
+ @pulumi.getter
613
+ def budgets(self) -> Optional[Sequence['GetOrchestratorConfigBinpackingDisruptionBudgetArgs']]:
614
+ """
615
+ Budgets for disruption
616
+ """
617
+ return pulumi.get(self, "budgets")
618
+
619
+ @budgets.setter
620
+ def budgets(self, value: Optional[Sequence['GetOrchestratorConfigBinpackingDisruptionBudgetArgs']]):
621
+ pulumi.set(self, "budgets", value)
622
+
623
+ @property
624
+ @pulumi.getter
625
+ def criteria(self) -> Optional[builtins.str]:
626
+ """
627
+ Criteria for considering a nodes for disruption
628
+ """
629
+ return pulumi.get(self, "criteria")
630
+
631
+ @criteria.setter
632
+ def criteria(self, value: Optional[builtins.str]):
633
+ pulumi.set(self, "criteria", value)
634
+
635
+ @property
636
+ @pulumi.getter
637
+ def delay(self) -> Optional[builtins.str]:
638
+ """
639
+ Deletion delay
640
+ """
641
+ return pulumi.get(self, "delay")
642
+
643
+ @delay.setter
644
+ def delay(self, value: Optional[builtins.str]):
645
+ pulumi.set(self, "delay", value)
646
+
647
+
648
+ if not MYPY:
649
+ class GetOrchestratorConfigBinpackingDisruptionBudgetArgsDict(TypedDict):
650
+ nodes: builtins.str
651
+ """
652
+ Number or percentage of Nodes to consider for disruption
653
+ """
654
+ reasons: NotRequired[Sequence[builtins.str]]
655
+ """
656
+ Reasons for disruption
657
+ """
658
+ schedule: NotRequired['GetOrchestratorConfigBinpackingDisruptionBudgetScheduleArgsDict']
659
+ """
660
+ Schedule for disruption budget
661
+ """
662
+ elif False:
663
+ GetOrchestratorConfigBinpackingDisruptionBudgetArgsDict: TypeAlias = Mapping[str, Any]
664
+
665
+ @pulumi.input_type
666
+ class GetOrchestratorConfigBinpackingDisruptionBudgetArgs:
667
+ def __init__(__self__, *,
668
+ nodes: builtins.str,
669
+ reasons: Optional[Sequence[builtins.str]] = None,
670
+ schedule: Optional['GetOrchestratorConfigBinpackingDisruptionBudgetScheduleArgs'] = None):
671
+ """
672
+ :param builtins.str nodes: Number or percentage of Nodes to consider for disruption
673
+ :param Sequence[builtins.str] reasons: Reasons for disruption
674
+ :param 'GetOrchestratorConfigBinpackingDisruptionBudgetScheduleArgs' schedule: Schedule for disruption budget
675
+ """
676
+ pulumi.set(__self__, "nodes", nodes)
677
+ if reasons is not None:
678
+ pulumi.set(__self__, "reasons", reasons)
679
+ if schedule is not None:
680
+ pulumi.set(__self__, "schedule", schedule)
681
+
682
+ @property
683
+ @pulumi.getter
684
+ def nodes(self) -> builtins.str:
685
+ """
686
+ Number or percentage of Nodes to consider for disruption
687
+ """
688
+ return pulumi.get(self, "nodes")
689
+
690
+ @nodes.setter
691
+ def nodes(self, value: builtins.str):
692
+ pulumi.set(self, "nodes", value)
693
+
694
+ @property
695
+ @pulumi.getter
696
+ def reasons(self) -> Optional[Sequence[builtins.str]]:
697
+ """
698
+ Reasons for disruption
699
+ """
700
+ return pulumi.get(self, "reasons")
701
+
702
+ @reasons.setter
703
+ def reasons(self, value: Optional[Sequence[builtins.str]]):
704
+ pulumi.set(self, "reasons", value)
705
+
706
+ @property
707
+ @pulumi.getter
708
+ def schedule(self) -> Optional['GetOrchestratorConfigBinpackingDisruptionBudgetScheduleArgs']:
709
+ """
710
+ Schedule for disruption budget
711
+ """
712
+ return pulumi.get(self, "schedule")
713
+
714
+ @schedule.setter
715
+ def schedule(self, value: Optional['GetOrchestratorConfigBinpackingDisruptionBudgetScheduleArgs']):
716
+ pulumi.set(self, "schedule", value)
717
+
718
+
719
+ if not MYPY:
720
+ class GetOrchestratorConfigBinpackingDisruptionBudgetScheduleArgsDict(TypedDict):
721
+ duration: builtins.str
722
+ """
723
+ Duration for disruption budget
724
+ """
725
+ frequency: builtins.str
726
+ """
727
+ Frequency for disruption budget
728
+ """
729
+ elif False:
730
+ GetOrchestratorConfigBinpackingDisruptionBudgetScheduleArgsDict: TypeAlias = Mapping[str, Any]
731
+
732
+ @pulumi.input_type
733
+ class GetOrchestratorConfigBinpackingDisruptionBudgetScheduleArgs:
734
+ def __init__(__self__, *,
735
+ duration: builtins.str,
736
+ frequency: builtins.str):
737
+ """
738
+ :param builtins.str duration: Duration for disruption budget
739
+ :param builtins.str frequency: Frequency for disruption budget
740
+ """
741
+ pulumi.set(__self__, "duration", duration)
742
+ pulumi.set(__self__, "frequency", frequency)
743
+
744
+ @property
745
+ @pulumi.getter
746
+ def duration(self) -> builtins.str:
747
+ """
748
+ Duration for disruption budget
749
+ """
750
+ return pulumi.get(self, "duration")
751
+
752
+ @duration.setter
753
+ def duration(self, value: builtins.str):
754
+ pulumi.set(self, "duration", value)
755
+
756
+ @property
757
+ @pulumi.getter
758
+ def frequency(self) -> builtins.str:
759
+ """
760
+ Frequency for disruption budget
761
+ """
762
+ return pulumi.get(self, "frequency")
763
+
764
+ @frequency.setter
765
+ def frequency(self, value: builtins.str):
766
+ pulumi.set(self, "frequency", value)
767
+
768
+
769
+ if not MYPY:
770
+ class GetOrchestratorConfigBinpackingPodEvictionArgsDict(TypedDict):
771
+ threshold: 'GetOrchestratorConfigBinpackingPodEvictionThresholdArgsDict'
772
+ """
773
+ Minimum Threshold for considering a node as underutilized
774
+ """
775
+ elif False:
776
+ GetOrchestratorConfigBinpackingPodEvictionArgsDict: TypeAlias = Mapping[str, Any]
777
+
778
+ @pulumi.input_type
779
+ class GetOrchestratorConfigBinpackingPodEvictionArgs:
780
+ def __init__(__self__, *,
781
+ threshold: 'GetOrchestratorConfigBinpackingPodEvictionThresholdArgs'):
782
+ """
783
+ :param 'GetOrchestratorConfigBinpackingPodEvictionThresholdArgs' threshold: Minimum Threshold for considering a node as underutilized
784
+ """
785
+ pulumi.set(__self__, "threshold", threshold)
786
+
787
+ @property
788
+ @pulumi.getter
789
+ def threshold(self) -> 'GetOrchestratorConfigBinpackingPodEvictionThresholdArgs':
790
+ """
791
+ Minimum Threshold for considering a node as underutilized
792
+ """
793
+ return pulumi.get(self, "threshold")
794
+
795
+ @threshold.setter
796
+ def threshold(self, value: 'GetOrchestratorConfigBinpackingPodEvictionThresholdArgs'):
797
+ pulumi.set(self, "threshold", value)
798
+
799
+
800
+ if not MYPY:
801
+ class GetOrchestratorConfigBinpackingPodEvictionThresholdArgsDict(TypedDict):
802
+ cpu: builtins.float
803
+ """
804
+ CPU percentage for considering a node as underutilized
805
+ """
806
+ memory: builtins.float
807
+ """
808
+ Memory percentage for considering a node as underutilized
809
+ """
810
+ elif False:
811
+ GetOrchestratorConfigBinpackingPodEvictionThresholdArgsDict: TypeAlias = Mapping[str, Any]
812
+
813
+ @pulumi.input_type
814
+ class GetOrchestratorConfigBinpackingPodEvictionThresholdArgs:
815
+ def __init__(__self__, *,
816
+ cpu: builtins.float,
817
+ memory: builtins.float):
818
+ """
819
+ :param builtins.float cpu: CPU percentage for considering a node as underutilized
820
+ :param builtins.float memory: Memory percentage for considering a node as underutilized
821
+ """
822
+ pulumi.set(__self__, "cpu", cpu)
823
+ pulumi.set(__self__, "memory", memory)
824
+
825
+ @property
826
+ @pulumi.getter
827
+ def cpu(self) -> builtins.float:
828
+ """
829
+ CPU percentage for considering a node as underutilized
830
+ """
831
+ return pulumi.get(self, "cpu")
832
+
833
+ @cpu.setter
834
+ def cpu(self, value: builtins.float):
835
+ pulumi.set(self, "cpu", value)
836
+
837
+ @property
838
+ @pulumi.getter
839
+ def memory(self) -> builtins.float:
840
+ """
841
+ Memory percentage for considering a node as underutilized
842
+ """
843
+ return pulumi.get(self, "memory")
844
+
845
+ @memory.setter
846
+ def memory(self, value: builtins.float):
847
+ pulumi.set(self, "memory", value)
848
+
849
+
850
+ if not MYPY:
851
+ class GetOrchestratorConfigDistributionArgsDict(TypedDict):
852
+ ondemand_replica_percentage: builtins.float
853
+ """
854
+ Percentage of on-demand replicas required for workloads
855
+ """
856
+ base_ondemand_capacity: NotRequired[builtins.int]
857
+ """
858
+ Number of minimum ondemand replicas required for workloads
859
+ """
860
+ selector: NotRequired[builtins.str]
861
+ """
862
+ Selector for choosing workloads for distribution
863
+ """
864
+ strategy: NotRequired[builtins.str]
865
+ """
866
+ Strategy for choosing spot nodes for cluster
867
+ """
868
+ elif False:
869
+ GetOrchestratorConfigDistributionArgsDict: TypeAlias = Mapping[str, Any]
870
+
871
+ @pulumi.input_type
872
+ class GetOrchestratorConfigDistributionArgs:
873
+ def __init__(__self__, *,
874
+ ondemand_replica_percentage: builtins.float,
875
+ base_ondemand_capacity: Optional[builtins.int] = None,
876
+ selector: Optional[builtins.str] = None,
877
+ strategy: Optional[builtins.str] = None):
878
+ """
879
+ :param builtins.float ondemand_replica_percentage: Percentage of on-demand replicas required for workloads
880
+ :param builtins.int base_ondemand_capacity: Number of minimum ondemand replicas required for workloads
881
+ :param builtins.str selector: Selector for choosing workloads for distribution
882
+ :param builtins.str strategy: Strategy for choosing spot nodes for cluster
883
+ """
884
+ pulumi.set(__self__, "ondemand_replica_percentage", ondemand_replica_percentage)
885
+ if base_ondemand_capacity is not None:
886
+ pulumi.set(__self__, "base_ondemand_capacity", base_ondemand_capacity)
887
+ if selector is not None:
888
+ pulumi.set(__self__, "selector", selector)
889
+ if strategy is not None:
890
+ pulumi.set(__self__, "strategy", strategy)
891
+
892
+ @property
893
+ @pulumi.getter(name="ondemandReplicaPercentage")
894
+ def ondemand_replica_percentage(self) -> builtins.float:
895
+ """
896
+ Percentage of on-demand replicas required for workloads
897
+ """
898
+ return pulumi.get(self, "ondemand_replica_percentage")
899
+
900
+ @ondemand_replica_percentage.setter
901
+ def ondemand_replica_percentage(self, value: builtins.float):
902
+ pulumi.set(self, "ondemand_replica_percentage", value)
903
+
904
+ @property
905
+ @pulumi.getter(name="baseOndemandCapacity")
906
+ def base_ondemand_capacity(self) -> Optional[builtins.int]:
907
+ """
908
+ Number of minimum ondemand replicas required for workloads
909
+ """
910
+ return pulumi.get(self, "base_ondemand_capacity")
911
+
912
+ @base_ondemand_capacity.setter
913
+ def base_ondemand_capacity(self, value: Optional[builtins.int]):
914
+ pulumi.set(self, "base_ondemand_capacity", value)
915
+
916
+ @property
917
+ @pulumi.getter
918
+ def selector(self) -> Optional[builtins.str]:
919
+ """
920
+ Selector for choosing workloads for distribution
921
+ """
922
+ return pulumi.get(self, "selector")
923
+
924
+ @selector.setter
925
+ def selector(self, value: Optional[builtins.str]):
926
+ pulumi.set(self, "selector", value)
927
+
928
+ @property
929
+ @pulumi.getter
930
+ def strategy(self) -> Optional[builtins.str]:
931
+ """
932
+ Strategy for choosing spot nodes for cluster
933
+ """
934
+ return pulumi.get(self, "strategy")
935
+
936
+ @strategy.setter
937
+ def strategy(self, value: Optional[builtins.str]):
938
+ pulumi.set(self, "strategy", value)
939
+
940
+
941
+ if not MYPY:
942
+ class GetOrchestratorConfigNodePreferencesArgsDict(TypedDict):
943
+ reverse_fallback_interval: NotRequired[builtins.str]
944
+ """
945
+ Reverse fallback interval
946
+ """
947
+ ttl: NotRequired[builtins.str]
948
+ """
949
+ TTL for nodes
950
+ """
951
+ elif False:
952
+ GetOrchestratorConfigNodePreferencesArgsDict: TypeAlias = Mapping[str, Any]
953
+
954
+ @pulumi.input_type
955
+ class GetOrchestratorConfigNodePreferencesArgs:
956
+ def __init__(__self__, *,
957
+ reverse_fallback_interval: Optional[builtins.str] = None,
958
+ ttl: Optional[builtins.str] = None):
959
+ """
960
+ :param builtins.str reverse_fallback_interval: Reverse fallback interval
961
+ :param builtins.str ttl: TTL for nodes
962
+ """
963
+ if reverse_fallback_interval is not None:
964
+ pulumi.set(__self__, "reverse_fallback_interval", reverse_fallback_interval)
965
+ if ttl is not None:
966
+ pulumi.set(__self__, "ttl", ttl)
967
+
968
+ @property
969
+ @pulumi.getter(name="reverseFallbackInterval")
970
+ def reverse_fallback_interval(self) -> Optional[builtins.str]:
971
+ """
972
+ Reverse fallback interval
973
+ """
974
+ return pulumi.get(self, "reverse_fallback_interval")
975
+
976
+ @reverse_fallback_interval.setter
977
+ def reverse_fallback_interval(self, value: Optional[builtins.str]):
978
+ pulumi.set(self, "reverse_fallback_interval", value)
979
+
980
+ @property
981
+ @pulumi.getter
982
+ def ttl(self) -> Optional[builtins.str]:
983
+ """
984
+ TTL for nodes
985
+ """
986
+ return pulumi.get(self, "ttl")
987
+
988
+ @ttl.setter
989
+ def ttl(self, value: Optional[builtins.str]):
990
+ pulumi.set(self, "ttl", value)
991
+
992
+