pulumi-spotinst 3.125.0a1759907052__py3-none-any.whl → 3.126.0__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-spotinst might be problematic. Click here for more details.

@@ -24,7 +24,9 @@ class OceanRightSizingRuleArgs:
24
24
  recommendation_application_intervals: pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleRecommendationApplicationIntervalArgs']]],
25
25
  rule_name: pulumi.Input[_builtins.str],
26
26
  attach_workloads: Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleAttachWorkloadArgs']]]] = None,
27
+ auto_apply_definitions: Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleAutoApplyDefinitionArgs']]]] = None,
27
28
  detach_workloads: Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleDetachWorkloadArgs']]]] = None,
29
+ downside_only: Optional[pulumi.Input[_builtins.bool]] = None,
28
30
  exclude_preliminary_recommendations: Optional[pulumi.Input[_builtins.bool]] = None,
29
31
  ocean_id: Optional[pulumi.Input[_builtins.str]] = None,
30
32
  recommendation_application_boundaries: Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleRecommendationApplicationBoundaryArgs']]]] = None,
@@ -34,13 +36,27 @@ class OceanRightSizingRuleArgs:
34
36
  restart_replicas: Optional[pulumi.Input[_builtins.str]] = None):
35
37
  """
36
38
  The set of arguments for constructing a OceanRightSizingRule resource.
39
+ :param pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleRecommendationApplicationIntervalArgs']]] recommendation_application_intervals: Determines the Ocean Rightsizing rule recommendation application intervals.
40
+ :param pulumi.Input[_builtins.str] rule_name: The unique name of the rule.
41
+ :param pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleAutoApplyDefinitionArgs']]] auto_apply_definitions: Ocean Rightsizing Rule Auto Apply Configuration.
42
+ :param pulumi.Input[_builtins.bool] exclude_preliminary_recommendations: Exclude preliminary recommendations (recommendations based on less than 4 full days of data).
43
+ :param pulumi.Input[_builtins.str] ocean_id: Identifier of the Ocean cluster.
44
+ :param pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleRecommendationApplicationBoundaryArgs']]] recommendation_application_boundaries: Determines the Ocean Rightsizing rule recommendation application boundaries.
45
+ :param pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleRecommendationApplicationHpaArgs']]] recommendation_application_hpas: HPA Rightsizing Rule Recommendation Configuration
46
+ :param pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleRecommendationApplicationMinThresholdArgs']]] recommendation_application_min_thresholds: Determines the extent of difference between current request and recommendation to trigger a change in percentage.
47
+ :param pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleRecommendationApplicationOverheadValueArgs']]] recommendation_application_overhead_values: Determines the Ocean Rightsizing rule recommendation application overhead values.
48
+ :param pulumi.Input[_builtins.str] restart_replicas: Valid values: "MORE_THAN_ONE_REPLICA" "ALL_MANIFEST" "NO_RESTART". Enable to sequentially restart pod batches according to recommendations, for all pods, only more than 1 replica, or not any pod.
37
49
  """
38
50
  pulumi.set(__self__, "recommendation_application_intervals", recommendation_application_intervals)
39
51
  pulumi.set(__self__, "rule_name", rule_name)
40
52
  if attach_workloads is not None:
41
53
  pulumi.set(__self__, "attach_workloads", attach_workloads)
54
+ if auto_apply_definitions is not None:
55
+ pulumi.set(__self__, "auto_apply_definitions", auto_apply_definitions)
42
56
  if detach_workloads is not None:
43
57
  pulumi.set(__self__, "detach_workloads", detach_workloads)
58
+ if downside_only is not None:
59
+ pulumi.set(__self__, "downside_only", downside_only)
44
60
  if exclude_preliminary_recommendations is not None:
45
61
  pulumi.set(__self__, "exclude_preliminary_recommendations", exclude_preliminary_recommendations)
46
62
  if ocean_id is not None:
@@ -59,6 +75,9 @@ class OceanRightSizingRuleArgs:
59
75
  @_builtins.property
60
76
  @pulumi.getter(name="recommendationApplicationIntervals")
61
77
  def recommendation_application_intervals(self) -> pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleRecommendationApplicationIntervalArgs']]]:
78
+ """
79
+ Determines the Ocean Rightsizing rule recommendation application intervals.
80
+ """
62
81
  return pulumi.get(self, "recommendation_application_intervals")
63
82
 
64
83
  @recommendation_application_intervals.setter
@@ -68,6 +87,9 @@ class OceanRightSizingRuleArgs:
68
87
  @_builtins.property
69
88
  @pulumi.getter(name="ruleName")
70
89
  def rule_name(self) -> pulumi.Input[_builtins.str]:
90
+ """
91
+ The unique name of the rule.
92
+ """
71
93
  return pulumi.get(self, "rule_name")
72
94
 
73
95
  @rule_name.setter
@@ -83,6 +105,18 @@ class OceanRightSizingRuleArgs:
83
105
  def attach_workloads(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleAttachWorkloadArgs']]]]):
84
106
  pulumi.set(self, "attach_workloads", value)
85
107
 
108
+ @_builtins.property
109
+ @pulumi.getter(name="autoApplyDefinitions")
110
+ def auto_apply_definitions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleAutoApplyDefinitionArgs']]]]:
111
+ """
112
+ Ocean Rightsizing Rule Auto Apply Configuration.
113
+ """
114
+ return pulumi.get(self, "auto_apply_definitions")
115
+
116
+ @auto_apply_definitions.setter
117
+ def auto_apply_definitions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleAutoApplyDefinitionArgs']]]]):
118
+ pulumi.set(self, "auto_apply_definitions", value)
119
+
86
120
  @_builtins.property
87
121
  @pulumi.getter(name="detachWorkloads")
88
122
  def detach_workloads(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleDetachWorkloadArgs']]]]:
@@ -92,9 +126,21 @@ class OceanRightSizingRuleArgs:
92
126
  def detach_workloads(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleDetachWorkloadArgs']]]]):
93
127
  pulumi.set(self, "detach_workloads", value)
94
128
 
129
+ @_builtins.property
130
+ @pulumi.getter(name="downsideOnly")
131
+ def downside_only(self) -> Optional[pulumi.Input[_builtins.bool]]:
132
+ return pulumi.get(self, "downside_only")
133
+
134
+ @downside_only.setter
135
+ def downside_only(self, value: Optional[pulumi.Input[_builtins.bool]]):
136
+ pulumi.set(self, "downside_only", value)
137
+
95
138
  @_builtins.property
96
139
  @pulumi.getter(name="excludePreliminaryRecommendations")
97
140
  def exclude_preliminary_recommendations(self) -> Optional[pulumi.Input[_builtins.bool]]:
141
+ """
142
+ Exclude preliminary recommendations (recommendations based on less than 4 full days of data).
143
+ """
98
144
  return pulumi.get(self, "exclude_preliminary_recommendations")
99
145
 
100
146
  @exclude_preliminary_recommendations.setter
@@ -104,6 +150,9 @@ class OceanRightSizingRuleArgs:
104
150
  @_builtins.property
105
151
  @pulumi.getter(name="oceanId")
106
152
  def ocean_id(self) -> Optional[pulumi.Input[_builtins.str]]:
153
+ """
154
+ Identifier of the Ocean cluster.
155
+ """
107
156
  return pulumi.get(self, "ocean_id")
108
157
 
109
158
  @ocean_id.setter
@@ -113,6 +162,9 @@ class OceanRightSizingRuleArgs:
113
162
  @_builtins.property
114
163
  @pulumi.getter(name="recommendationApplicationBoundaries")
115
164
  def recommendation_application_boundaries(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleRecommendationApplicationBoundaryArgs']]]]:
165
+ """
166
+ Determines the Ocean Rightsizing rule recommendation application boundaries.
167
+ """
116
168
  return pulumi.get(self, "recommendation_application_boundaries")
117
169
 
118
170
  @recommendation_application_boundaries.setter
@@ -122,6 +174,9 @@ class OceanRightSizingRuleArgs:
122
174
  @_builtins.property
123
175
  @pulumi.getter(name="recommendationApplicationHpas")
124
176
  def recommendation_application_hpas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleRecommendationApplicationHpaArgs']]]]:
177
+ """
178
+ HPA Rightsizing Rule Recommendation Configuration
179
+ """
125
180
  return pulumi.get(self, "recommendation_application_hpas")
126
181
 
127
182
  @recommendation_application_hpas.setter
@@ -131,6 +186,9 @@ class OceanRightSizingRuleArgs:
131
186
  @_builtins.property
132
187
  @pulumi.getter(name="recommendationApplicationMinThresholds")
133
188
  def recommendation_application_min_thresholds(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleRecommendationApplicationMinThresholdArgs']]]]:
189
+ """
190
+ Determines the extent of difference between current request and recommendation to trigger a change in percentage.
191
+ """
134
192
  return pulumi.get(self, "recommendation_application_min_thresholds")
135
193
 
136
194
  @recommendation_application_min_thresholds.setter
@@ -140,6 +198,9 @@ class OceanRightSizingRuleArgs:
140
198
  @_builtins.property
141
199
  @pulumi.getter(name="recommendationApplicationOverheadValues")
142
200
  def recommendation_application_overhead_values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleRecommendationApplicationOverheadValueArgs']]]]:
201
+ """
202
+ Determines the Ocean Rightsizing rule recommendation application overhead values.
203
+ """
143
204
  return pulumi.get(self, "recommendation_application_overhead_values")
144
205
 
145
206
  @recommendation_application_overhead_values.setter
@@ -149,6 +210,9 @@ class OceanRightSizingRuleArgs:
149
210
  @_builtins.property
150
211
  @pulumi.getter(name="restartReplicas")
151
212
  def restart_replicas(self) -> Optional[pulumi.Input[_builtins.str]]:
213
+ """
214
+ Valid values: "MORE_THAN_ONE_REPLICA" "ALL_MANIFEST" "NO_RESTART". Enable to sequentially restart pod batches according to recommendations, for all pods, only more than 1 replica, or not any pod.
215
+ """
152
216
  return pulumi.get(self, "restart_replicas")
153
217
 
154
218
  @restart_replicas.setter
@@ -160,7 +224,9 @@ class OceanRightSizingRuleArgs:
160
224
  class _OceanRightSizingRuleState:
161
225
  def __init__(__self__, *,
162
226
  attach_workloads: Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleAttachWorkloadArgs']]]] = None,
227
+ auto_apply_definitions: Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleAutoApplyDefinitionArgs']]]] = None,
163
228
  detach_workloads: Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleDetachWorkloadArgs']]]] = None,
229
+ downside_only: Optional[pulumi.Input[_builtins.bool]] = None,
164
230
  exclude_preliminary_recommendations: Optional[pulumi.Input[_builtins.bool]] = None,
165
231
  ocean_id: Optional[pulumi.Input[_builtins.str]] = None,
166
232
  recommendation_application_boundaries: Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleRecommendationApplicationBoundaryArgs']]]] = None,
@@ -172,11 +238,25 @@ class _OceanRightSizingRuleState:
172
238
  rule_name: Optional[pulumi.Input[_builtins.str]] = None):
173
239
  """
174
240
  Input properties used for looking up and filtering OceanRightSizingRule resources.
241
+ :param pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleAutoApplyDefinitionArgs']]] auto_apply_definitions: Ocean Rightsizing Rule Auto Apply Configuration.
242
+ :param pulumi.Input[_builtins.bool] exclude_preliminary_recommendations: Exclude preliminary recommendations (recommendations based on less than 4 full days of data).
243
+ :param pulumi.Input[_builtins.str] ocean_id: Identifier of the Ocean cluster.
244
+ :param pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleRecommendationApplicationBoundaryArgs']]] recommendation_application_boundaries: Determines the Ocean Rightsizing rule recommendation application boundaries.
245
+ :param pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleRecommendationApplicationHpaArgs']]] recommendation_application_hpas: HPA Rightsizing Rule Recommendation Configuration
246
+ :param pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleRecommendationApplicationIntervalArgs']]] recommendation_application_intervals: Determines the Ocean Rightsizing rule recommendation application intervals.
247
+ :param pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleRecommendationApplicationMinThresholdArgs']]] recommendation_application_min_thresholds: Determines the extent of difference between current request and recommendation to trigger a change in percentage.
248
+ :param pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleRecommendationApplicationOverheadValueArgs']]] recommendation_application_overhead_values: Determines the Ocean Rightsizing rule recommendation application overhead values.
249
+ :param pulumi.Input[_builtins.str] restart_replicas: Valid values: "MORE_THAN_ONE_REPLICA" "ALL_MANIFEST" "NO_RESTART". Enable to sequentially restart pod batches according to recommendations, for all pods, only more than 1 replica, or not any pod.
250
+ :param pulumi.Input[_builtins.str] rule_name: The unique name of the rule.
175
251
  """
176
252
  if attach_workloads is not None:
177
253
  pulumi.set(__self__, "attach_workloads", attach_workloads)
254
+ if auto_apply_definitions is not None:
255
+ pulumi.set(__self__, "auto_apply_definitions", auto_apply_definitions)
178
256
  if detach_workloads is not None:
179
257
  pulumi.set(__self__, "detach_workloads", detach_workloads)
258
+ if downside_only is not None:
259
+ pulumi.set(__self__, "downside_only", downside_only)
180
260
  if exclude_preliminary_recommendations is not None:
181
261
  pulumi.set(__self__, "exclude_preliminary_recommendations", exclude_preliminary_recommendations)
182
262
  if ocean_id is not None:
@@ -205,6 +285,18 @@ class _OceanRightSizingRuleState:
205
285
  def attach_workloads(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleAttachWorkloadArgs']]]]):
206
286
  pulumi.set(self, "attach_workloads", value)
207
287
 
288
+ @_builtins.property
289
+ @pulumi.getter(name="autoApplyDefinitions")
290
+ def auto_apply_definitions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleAutoApplyDefinitionArgs']]]]:
291
+ """
292
+ Ocean Rightsizing Rule Auto Apply Configuration.
293
+ """
294
+ return pulumi.get(self, "auto_apply_definitions")
295
+
296
+ @auto_apply_definitions.setter
297
+ def auto_apply_definitions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleAutoApplyDefinitionArgs']]]]):
298
+ pulumi.set(self, "auto_apply_definitions", value)
299
+
208
300
  @_builtins.property
209
301
  @pulumi.getter(name="detachWorkloads")
210
302
  def detach_workloads(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleDetachWorkloadArgs']]]]:
@@ -214,9 +306,21 @@ class _OceanRightSizingRuleState:
214
306
  def detach_workloads(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleDetachWorkloadArgs']]]]):
215
307
  pulumi.set(self, "detach_workloads", value)
216
308
 
309
+ @_builtins.property
310
+ @pulumi.getter(name="downsideOnly")
311
+ def downside_only(self) -> Optional[pulumi.Input[_builtins.bool]]:
312
+ return pulumi.get(self, "downside_only")
313
+
314
+ @downside_only.setter
315
+ def downside_only(self, value: Optional[pulumi.Input[_builtins.bool]]):
316
+ pulumi.set(self, "downside_only", value)
317
+
217
318
  @_builtins.property
218
319
  @pulumi.getter(name="excludePreliminaryRecommendations")
219
320
  def exclude_preliminary_recommendations(self) -> Optional[pulumi.Input[_builtins.bool]]:
321
+ """
322
+ Exclude preliminary recommendations (recommendations based on less than 4 full days of data).
323
+ """
220
324
  return pulumi.get(self, "exclude_preliminary_recommendations")
221
325
 
222
326
  @exclude_preliminary_recommendations.setter
@@ -226,6 +330,9 @@ class _OceanRightSizingRuleState:
226
330
  @_builtins.property
227
331
  @pulumi.getter(name="oceanId")
228
332
  def ocean_id(self) -> Optional[pulumi.Input[_builtins.str]]:
333
+ """
334
+ Identifier of the Ocean cluster.
335
+ """
229
336
  return pulumi.get(self, "ocean_id")
230
337
 
231
338
  @ocean_id.setter
@@ -235,6 +342,9 @@ class _OceanRightSizingRuleState:
235
342
  @_builtins.property
236
343
  @pulumi.getter(name="recommendationApplicationBoundaries")
237
344
  def recommendation_application_boundaries(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleRecommendationApplicationBoundaryArgs']]]]:
345
+ """
346
+ Determines the Ocean Rightsizing rule recommendation application boundaries.
347
+ """
238
348
  return pulumi.get(self, "recommendation_application_boundaries")
239
349
 
240
350
  @recommendation_application_boundaries.setter
@@ -244,6 +354,9 @@ class _OceanRightSizingRuleState:
244
354
  @_builtins.property
245
355
  @pulumi.getter(name="recommendationApplicationHpas")
246
356
  def recommendation_application_hpas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleRecommendationApplicationHpaArgs']]]]:
357
+ """
358
+ HPA Rightsizing Rule Recommendation Configuration
359
+ """
247
360
  return pulumi.get(self, "recommendation_application_hpas")
248
361
 
249
362
  @recommendation_application_hpas.setter
@@ -253,6 +366,9 @@ class _OceanRightSizingRuleState:
253
366
  @_builtins.property
254
367
  @pulumi.getter(name="recommendationApplicationIntervals")
255
368
  def recommendation_application_intervals(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleRecommendationApplicationIntervalArgs']]]]:
369
+ """
370
+ Determines the Ocean Rightsizing rule recommendation application intervals.
371
+ """
256
372
  return pulumi.get(self, "recommendation_application_intervals")
257
373
 
258
374
  @recommendation_application_intervals.setter
@@ -262,6 +378,9 @@ class _OceanRightSizingRuleState:
262
378
  @_builtins.property
263
379
  @pulumi.getter(name="recommendationApplicationMinThresholds")
264
380
  def recommendation_application_min_thresholds(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleRecommendationApplicationMinThresholdArgs']]]]:
381
+ """
382
+ Determines the extent of difference between current request and recommendation to trigger a change in percentage.
383
+ """
265
384
  return pulumi.get(self, "recommendation_application_min_thresholds")
266
385
 
267
386
  @recommendation_application_min_thresholds.setter
@@ -271,6 +390,9 @@ class _OceanRightSizingRuleState:
271
390
  @_builtins.property
272
391
  @pulumi.getter(name="recommendationApplicationOverheadValues")
273
392
  def recommendation_application_overhead_values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleRecommendationApplicationOverheadValueArgs']]]]:
393
+ """
394
+ Determines the Ocean Rightsizing rule recommendation application overhead values.
395
+ """
274
396
  return pulumi.get(self, "recommendation_application_overhead_values")
275
397
 
276
398
  @recommendation_application_overhead_values.setter
@@ -280,6 +402,9 @@ class _OceanRightSizingRuleState:
280
402
  @_builtins.property
281
403
  @pulumi.getter(name="restartReplicas")
282
404
  def restart_replicas(self) -> Optional[pulumi.Input[_builtins.str]]:
405
+ """
406
+ Valid values: "MORE_THAN_ONE_REPLICA" "ALL_MANIFEST" "NO_RESTART". Enable to sequentially restart pod batches according to recommendations, for all pods, only more than 1 replica, or not any pod.
407
+ """
283
408
  return pulumi.get(self, "restart_replicas")
284
409
 
285
410
  @restart_replicas.setter
@@ -289,6 +414,9 @@ class _OceanRightSizingRuleState:
289
414
  @_builtins.property
290
415
  @pulumi.getter(name="ruleName")
291
416
  def rule_name(self) -> Optional[pulumi.Input[_builtins.str]]:
417
+ """
418
+ The unique name of the rule.
419
+ """
292
420
  return pulumi.get(self, "rule_name")
293
421
 
294
422
  @rule_name.setter
@@ -303,7 +431,9 @@ class OceanRightSizingRule(pulumi.CustomResource):
303
431
  resource_name: str,
304
432
  opts: Optional[pulumi.ResourceOptions] = None,
305
433
  attach_workloads: Optional[pulumi.Input[Sequence[pulumi.Input[Union['OceanRightSizingRuleAttachWorkloadArgs', 'OceanRightSizingRuleAttachWorkloadArgsDict']]]]] = None,
434
+ auto_apply_definitions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['OceanRightSizingRuleAutoApplyDefinitionArgs', 'OceanRightSizingRuleAutoApplyDefinitionArgsDict']]]]] = None,
306
435
  detach_workloads: Optional[pulumi.Input[Sequence[pulumi.Input[Union['OceanRightSizingRuleDetachWorkloadArgs', 'OceanRightSizingRuleDetachWorkloadArgsDict']]]]] = None,
436
+ downside_only: Optional[pulumi.Input[_builtins.bool]] = None,
307
437
  exclude_preliminary_recommendations: Optional[pulumi.Input[_builtins.bool]] = None,
308
438
  ocean_id: Optional[pulumi.Input[_builtins.str]] = None,
309
439
  recommendation_application_boundaries: Optional[pulumi.Input[Sequence[pulumi.Input[Union['OceanRightSizingRuleRecommendationApplicationBoundaryArgs', 'OceanRightSizingRuleRecommendationApplicationBoundaryArgsDict']]]]] = None,
@@ -315,9 +445,93 @@ class OceanRightSizingRule(pulumi.CustomResource):
315
445
  rule_name: Optional[pulumi.Input[_builtins.str]] = None,
316
446
  __props__=None):
317
447
  """
318
- Create a OceanRightSizingRule resource with the given unique name, props, and options.
448
+ Manages a Spotinst Ocean right sizing rule resource.
449
+
450
+ ## Example Usage
451
+
452
+ ```python
453
+ import pulumi
454
+ import pulumi_spotinst as spotinst
455
+
456
+ example = spotinst.OceanRightSizingRule("example",
457
+ ocean_id="o-123456",
458
+ rule_name="test-rule",
459
+ exclude_preliminary_recommendations=True,
460
+ restart_replicas="ALL_MANIFEST",
461
+ recommendation_application_hpas=[{
462
+ "allow_hpa_recommendations": True,
463
+ }],
464
+ recommendation_application_intervals=[
465
+ {
466
+ "repetition_basis": "WEEKLY",
467
+ "weekly_repetition_bases": [{
468
+ "interval_days": [
469
+ "MONDAY",
470
+ "WEDNESDAY",
471
+ ],
472
+ "interval_hours_start_time": "12:00",
473
+ "interval_hours_end_time": "14:00",
474
+ }],
475
+ },
476
+ {
477
+ "repetition_basis": "MONTHLY",
478
+ "monthly_repetition_bases": [{
479
+ "interval_months": [
480
+ 2,
481
+ 6,
482
+ 9,
483
+ ],
484
+ "week_of_the_months": [
485
+ "FIRST",
486
+ "LAST",
487
+ ],
488
+ "weekly_repetition_bases": [{
489
+ "interval_days": ["MONDAY"],
490
+ "interval_hours_start_time": "03:00",
491
+ "interval_hours_end_time": "04:00",
492
+ }],
493
+ }],
494
+ },
495
+ ],
496
+ recommendation_application_boundaries=[{
497
+ "cpu_min": 120,
498
+ "cpu_max": 190,
499
+ "memory_min": 160,
500
+ "memory_max": 190,
501
+ }],
502
+ recommendation_application_min_thresholds=[{
503
+ "cpu_percentage": 0.412,
504
+ "memory_percentage": 0.36,
505
+ }],
506
+ recommendation_application_overhead_values=[{
507
+ "cpu_percentage": 0.8,
508
+ "memory_percentage": 0.5,
509
+ }],
510
+ auto_apply_definitions=[{
511
+ "enabled": True,
512
+ "namespaces": [
513
+ "kube-system",
514
+ "spot-system",
515
+ ],
516
+ "labels": {
517
+ "k8s-app": "kube-proxy",
518
+ "app.kubernetes.io/name": "metrics-server",
519
+ },
520
+ }])
521
+ ```
522
+
319
523
  :param str resource_name: The name of the resource.
320
524
  :param pulumi.ResourceOptions opts: Options for the resource.
525
+ :param pulumi.Input[Sequence[pulumi.Input[Union['OceanRightSizingRuleAutoApplyDefinitionArgs', 'OceanRightSizingRuleAutoApplyDefinitionArgsDict']]]] auto_apply_definitions: Ocean Rightsizing Rule Auto Apply Configuration.
526
+ :param pulumi.Input[_builtins.bool] exclude_preliminary_recommendations: Exclude preliminary recommendations (recommendations based on less than 4 full days of data).
527
+ :param pulumi.Input[_builtins.str] ocean_id: Identifier of the Ocean cluster.
528
+ :param pulumi.Input[Sequence[pulumi.Input[Union['OceanRightSizingRuleRecommendationApplicationBoundaryArgs', 'OceanRightSizingRuleRecommendationApplicationBoundaryArgsDict']]]] recommendation_application_boundaries: Determines the Ocean Rightsizing rule recommendation application boundaries.
529
+ :param pulumi.Input[Sequence[pulumi.Input[Union['OceanRightSizingRuleRecommendationApplicationHpaArgs', 'OceanRightSizingRuleRecommendationApplicationHpaArgsDict']]]] recommendation_application_hpas: HPA Rightsizing Rule Recommendation Configuration
530
+ :param pulumi.Input[Sequence[pulumi.Input[Union['OceanRightSizingRuleRecommendationApplicationIntervalArgs', 'OceanRightSizingRuleRecommendationApplicationIntervalArgsDict']]]] recommendation_application_intervals: Determines the Ocean Rightsizing rule recommendation application intervals.
531
+ :param pulumi.Input[Sequence[pulumi.Input[Union['OceanRightSizingRuleRecommendationApplicationMinThresholdArgs', 'OceanRightSizingRuleRecommendationApplicationMinThresholdArgsDict']]]] recommendation_application_min_thresholds: Determines the extent of difference between current request and recommendation to trigger a change in percentage.
532
+ :param pulumi.Input[Sequence[pulumi.Input[Union['OceanRightSizingRuleRecommendationApplicationOverheadValueArgs', 'OceanRightSizingRuleRecommendationApplicationOverheadValueArgsDict']]]] recommendation_application_overhead_values: Determines the Ocean Rightsizing rule recommendation application overhead values.
533
+ :param pulumi.Input[_builtins.str] restart_replicas: Valid values: "MORE_THAN_ONE_REPLICA" "ALL_MANIFEST" "NO_RESTART". Enable to sequentially restart pod batches according to recommendations, for all pods, only more than 1 replica, or not any pod.
534
+ :param pulumi.Input[_builtins.str] rule_name: The unique name of the rule.
321
535
  """
322
536
  ...
323
537
  @overload
@@ -326,7 +540,81 @@ class OceanRightSizingRule(pulumi.CustomResource):
326
540
  args: OceanRightSizingRuleArgs,
327
541
  opts: Optional[pulumi.ResourceOptions] = None):
328
542
  """
329
- Create a OceanRightSizingRule resource with the given unique name, props, and options.
543
+ Manages a Spotinst Ocean right sizing rule resource.
544
+
545
+ ## Example Usage
546
+
547
+ ```python
548
+ import pulumi
549
+ import pulumi_spotinst as spotinst
550
+
551
+ example = spotinst.OceanRightSizingRule("example",
552
+ ocean_id="o-123456",
553
+ rule_name="test-rule",
554
+ exclude_preliminary_recommendations=True,
555
+ restart_replicas="ALL_MANIFEST",
556
+ recommendation_application_hpas=[{
557
+ "allow_hpa_recommendations": True,
558
+ }],
559
+ recommendation_application_intervals=[
560
+ {
561
+ "repetition_basis": "WEEKLY",
562
+ "weekly_repetition_bases": [{
563
+ "interval_days": [
564
+ "MONDAY",
565
+ "WEDNESDAY",
566
+ ],
567
+ "interval_hours_start_time": "12:00",
568
+ "interval_hours_end_time": "14:00",
569
+ }],
570
+ },
571
+ {
572
+ "repetition_basis": "MONTHLY",
573
+ "monthly_repetition_bases": [{
574
+ "interval_months": [
575
+ 2,
576
+ 6,
577
+ 9,
578
+ ],
579
+ "week_of_the_months": [
580
+ "FIRST",
581
+ "LAST",
582
+ ],
583
+ "weekly_repetition_bases": [{
584
+ "interval_days": ["MONDAY"],
585
+ "interval_hours_start_time": "03:00",
586
+ "interval_hours_end_time": "04:00",
587
+ }],
588
+ }],
589
+ },
590
+ ],
591
+ recommendation_application_boundaries=[{
592
+ "cpu_min": 120,
593
+ "cpu_max": 190,
594
+ "memory_min": 160,
595
+ "memory_max": 190,
596
+ }],
597
+ recommendation_application_min_thresholds=[{
598
+ "cpu_percentage": 0.412,
599
+ "memory_percentage": 0.36,
600
+ }],
601
+ recommendation_application_overhead_values=[{
602
+ "cpu_percentage": 0.8,
603
+ "memory_percentage": 0.5,
604
+ }],
605
+ auto_apply_definitions=[{
606
+ "enabled": True,
607
+ "namespaces": [
608
+ "kube-system",
609
+ "spot-system",
610
+ ],
611
+ "labels": {
612
+ "k8s-app": "kube-proxy",
613
+ "app.kubernetes.io/name": "metrics-server",
614
+ },
615
+ }])
616
+ ```
617
+
330
618
  :param str resource_name: The name of the resource.
331
619
  :param OceanRightSizingRuleArgs args: The arguments to use to populate this resource's properties.
332
620
  :param pulumi.ResourceOptions opts: Options for the resource.
@@ -343,7 +631,9 @@ class OceanRightSizingRule(pulumi.CustomResource):
343
631
  resource_name: str,
344
632
  opts: Optional[pulumi.ResourceOptions] = None,
345
633
  attach_workloads: Optional[pulumi.Input[Sequence[pulumi.Input[Union['OceanRightSizingRuleAttachWorkloadArgs', 'OceanRightSizingRuleAttachWorkloadArgsDict']]]]] = None,
634
+ auto_apply_definitions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['OceanRightSizingRuleAutoApplyDefinitionArgs', 'OceanRightSizingRuleAutoApplyDefinitionArgsDict']]]]] = None,
346
635
  detach_workloads: Optional[pulumi.Input[Sequence[pulumi.Input[Union['OceanRightSizingRuleDetachWorkloadArgs', 'OceanRightSizingRuleDetachWorkloadArgsDict']]]]] = None,
636
+ downside_only: Optional[pulumi.Input[_builtins.bool]] = None,
347
637
  exclude_preliminary_recommendations: Optional[pulumi.Input[_builtins.bool]] = None,
348
638
  ocean_id: Optional[pulumi.Input[_builtins.str]] = None,
349
639
  recommendation_application_boundaries: Optional[pulumi.Input[Sequence[pulumi.Input[Union['OceanRightSizingRuleRecommendationApplicationBoundaryArgs', 'OceanRightSizingRuleRecommendationApplicationBoundaryArgsDict']]]]] = None,
@@ -363,7 +653,9 @@ class OceanRightSizingRule(pulumi.CustomResource):
363
653
  __props__ = OceanRightSizingRuleArgs.__new__(OceanRightSizingRuleArgs)
364
654
 
365
655
  __props__.__dict__["attach_workloads"] = attach_workloads
656
+ __props__.__dict__["auto_apply_definitions"] = auto_apply_definitions
366
657
  __props__.__dict__["detach_workloads"] = detach_workloads
658
+ __props__.__dict__["downside_only"] = downside_only
367
659
  __props__.__dict__["exclude_preliminary_recommendations"] = exclude_preliminary_recommendations
368
660
  __props__.__dict__["ocean_id"] = ocean_id
369
661
  __props__.__dict__["recommendation_application_boundaries"] = recommendation_application_boundaries
@@ -388,7 +680,9 @@ class OceanRightSizingRule(pulumi.CustomResource):
388
680
  id: pulumi.Input[str],
389
681
  opts: Optional[pulumi.ResourceOptions] = None,
390
682
  attach_workloads: Optional[pulumi.Input[Sequence[pulumi.Input[Union['OceanRightSizingRuleAttachWorkloadArgs', 'OceanRightSizingRuleAttachWorkloadArgsDict']]]]] = None,
683
+ auto_apply_definitions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['OceanRightSizingRuleAutoApplyDefinitionArgs', 'OceanRightSizingRuleAutoApplyDefinitionArgsDict']]]]] = None,
391
684
  detach_workloads: Optional[pulumi.Input[Sequence[pulumi.Input[Union['OceanRightSizingRuleDetachWorkloadArgs', 'OceanRightSizingRuleDetachWorkloadArgsDict']]]]] = None,
685
+ downside_only: Optional[pulumi.Input[_builtins.bool]] = None,
392
686
  exclude_preliminary_recommendations: Optional[pulumi.Input[_builtins.bool]] = None,
393
687
  ocean_id: Optional[pulumi.Input[_builtins.str]] = None,
394
688
  recommendation_application_boundaries: Optional[pulumi.Input[Sequence[pulumi.Input[Union['OceanRightSizingRuleRecommendationApplicationBoundaryArgs', 'OceanRightSizingRuleRecommendationApplicationBoundaryArgsDict']]]]] = None,
@@ -405,13 +699,25 @@ class OceanRightSizingRule(pulumi.CustomResource):
405
699
  :param str resource_name: The unique name of the resulting resource.
406
700
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
407
701
  :param pulumi.ResourceOptions opts: Options for the resource.
702
+ :param pulumi.Input[Sequence[pulumi.Input[Union['OceanRightSizingRuleAutoApplyDefinitionArgs', 'OceanRightSizingRuleAutoApplyDefinitionArgsDict']]]] auto_apply_definitions: Ocean Rightsizing Rule Auto Apply Configuration.
703
+ :param pulumi.Input[_builtins.bool] exclude_preliminary_recommendations: Exclude preliminary recommendations (recommendations based on less than 4 full days of data).
704
+ :param pulumi.Input[_builtins.str] ocean_id: Identifier of the Ocean cluster.
705
+ :param pulumi.Input[Sequence[pulumi.Input[Union['OceanRightSizingRuleRecommendationApplicationBoundaryArgs', 'OceanRightSizingRuleRecommendationApplicationBoundaryArgsDict']]]] recommendation_application_boundaries: Determines the Ocean Rightsizing rule recommendation application boundaries.
706
+ :param pulumi.Input[Sequence[pulumi.Input[Union['OceanRightSizingRuleRecommendationApplicationHpaArgs', 'OceanRightSizingRuleRecommendationApplicationHpaArgsDict']]]] recommendation_application_hpas: HPA Rightsizing Rule Recommendation Configuration
707
+ :param pulumi.Input[Sequence[pulumi.Input[Union['OceanRightSizingRuleRecommendationApplicationIntervalArgs', 'OceanRightSizingRuleRecommendationApplicationIntervalArgsDict']]]] recommendation_application_intervals: Determines the Ocean Rightsizing rule recommendation application intervals.
708
+ :param pulumi.Input[Sequence[pulumi.Input[Union['OceanRightSizingRuleRecommendationApplicationMinThresholdArgs', 'OceanRightSizingRuleRecommendationApplicationMinThresholdArgsDict']]]] recommendation_application_min_thresholds: Determines the extent of difference between current request and recommendation to trigger a change in percentage.
709
+ :param pulumi.Input[Sequence[pulumi.Input[Union['OceanRightSizingRuleRecommendationApplicationOverheadValueArgs', 'OceanRightSizingRuleRecommendationApplicationOverheadValueArgsDict']]]] recommendation_application_overhead_values: Determines the Ocean Rightsizing rule recommendation application overhead values.
710
+ :param pulumi.Input[_builtins.str] restart_replicas: Valid values: "MORE_THAN_ONE_REPLICA" "ALL_MANIFEST" "NO_RESTART". Enable to sequentially restart pod batches according to recommendations, for all pods, only more than 1 replica, or not any pod.
711
+ :param pulumi.Input[_builtins.str] rule_name: The unique name of the rule.
408
712
  """
409
713
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
410
714
 
411
715
  __props__ = _OceanRightSizingRuleState.__new__(_OceanRightSizingRuleState)
412
716
 
413
717
  __props__.__dict__["attach_workloads"] = attach_workloads
718
+ __props__.__dict__["auto_apply_definitions"] = auto_apply_definitions
414
719
  __props__.__dict__["detach_workloads"] = detach_workloads
720
+ __props__.__dict__["downside_only"] = downside_only
415
721
  __props__.__dict__["exclude_preliminary_recommendations"] = exclude_preliminary_recommendations
416
722
  __props__.__dict__["ocean_id"] = ocean_id
417
723
  __props__.__dict__["recommendation_application_boundaries"] = recommendation_application_boundaries
@@ -428,53 +734,93 @@ class OceanRightSizingRule(pulumi.CustomResource):
428
734
  def attach_workloads(self) -> pulumi.Output[Optional[Sequence['outputs.OceanRightSizingRuleAttachWorkload']]]:
429
735
  return pulumi.get(self, "attach_workloads")
430
736
 
737
+ @_builtins.property
738
+ @pulumi.getter(name="autoApplyDefinitions")
739
+ def auto_apply_definitions(self) -> pulumi.Output[Optional[Sequence['outputs.OceanRightSizingRuleAutoApplyDefinition']]]:
740
+ """
741
+ Ocean Rightsizing Rule Auto Apply Configuration.
742
+ """
743
+ return pulumi.get(self, "auto_apply_definitions")
744
+
431
745
  @_builtins.property
432
746
  @pulumi.getter(name="detachWorkloads")
433
747
  def detach_workloads(self) -> pulumi.Output[Optional[Sequence['outputs.OceanRightSizingRuleDetachWorkload']]]:
434
748
  return pulumi.get(self, "detach_workloads")
435
749
 
750
+ @_builtins.property
751
+ @pulumi.getter(name="downsideOnly")
752
+ def downside_only(self) -> pulumi.Output[Optional[_builtins.bool]]:
753
+ return pulumi.get(self, "downside_only")
754
+
436
755
  @_builtins.property
437
756
  @pulumi.getter(name="excludePreliminaryRecommendations")
438
757
  def exclude_preliminary_recommendations(self) -> pulumi.Output[Optional[_builtins.bool]]:
758
+ """
759
+ Exclude preliminary recommendations (recommendations based on less than 4 full days of data).
760
+ """
439
761
  return pulumi.get(self, "exclude_preliminary_recommendations")
440
762
 
441
763
  @_builtins.property
442
764
  @pulumi.getter(name="oceanId")
443
765
  def ocean_id(self) -> pulumi.Output[Optional[_builtins.str]]:
766
+ """
767
+ Identifier of the Ocean cluster.
768
+ """
444
769
  return pulumi.get(self, "ocean_id")
445
770
 
446
771
  @_builtins.property
447
772
  @pulumi.getter(name="recommendationApplicationBoundaries")
448
773
  def recommendation_application_boundaries(self) -> pulumi.Output[Optional[Sequence['outputs.OceanRightSizingRuleRecommendationApplicationBoundary']]]:
774
+ """
775
+ Determines the Ocean Rightsizing rule recommendation application boundaries.
776
+ """
449
777
  return pulumi.get(self, "recommendation_application_boundaries")
450
778
 
451
779
  @_builtins.property
452
780
  @pulumi.getter(name="recommendationApplicationHpas")
453
781
  def recommendation_application_hpas(self) -> pulumi.Output[Optional[Sequence['outputs.OceanRightSizingRuleRecommendationApplicationHpa']]]:
782
+ """
783
+ HPA Rightsizing Rule Recommendation Configuration
784
+ """
454
785
  return pulumi.get(self, "recommendation_application_hpas")
455
786
 
456
787
  @_builtins.property
457
788
  @pulumi.getter(name="recommendationApplicationIntervals")
458
789
  def recommendation_application_intervals(self) -> pulumi.Output[Sequence['outputs.OceanRightSizingRuleRecommendationApplicationInterval']]:
790
+ """
791
+ Determines the Ocean Rightsizing rule recommendation application intervals.
792
+ """
459
793
  return pulumi.get(self, "recommendation_application_intervals")
460
794
 
461
795
  @_builtins.property
462
796
  @pulumi.getter(name="recommendationApplicationMinThresholds")
463
797
  def recommendation_application_min_thresholds(self) -> pulumi.Output[Optional[Sequence['outputs.OceanRightSizingRuleRecommendationApplicationMinThreshold']]]:
798
+ """
799
+ Determines the extent of difference between current request and recommendation to trigger a change in percentage.
800
+ """
464
801
  return pulumi.get(self, "recommendation_application_min_thresholds")
465
802
 
466
803
  @_builtins.property
467
804
  @pulumi.getter(name="recommendationApplicationOverheadValues")
468
805
  def recommendation_application_overhead_values(self) -> pulumi.Output[Optional[Sequence['outputs.OceanRightSizingRuleRecommendationApplicationOverheadValue']]]:
806
+ """
807
+ Determines the Ocean Rightsizing rule recommendation application overhead values.
808
+ """
469
809
  return pulumi.get(self, "recommendation_application_overhead_values")
470
810
 
471
811
  @_builtins.property
472
812
  @pulumi.getter(name="restartReplicas")
473
813
  def restart_replicas(self) -> pulumi.Output[Optional[_builtins.str]]:
814
+ """
815
+ Valid values: "MORE_THAN_ONE_REPLICA" "ALL_MANIFEST" "NO_RESTART". Enable to sequentially restart pod batches according to recommendations, for all pods, only more than 1 replica, or not any pod.
816
+ """
474
817
  return pulumi.get(self, "restart_replicas")
475
818
 
476
819
  @_builtins.property
477
820
  @pulumi.getter(name="ruleName")
478
821
  def rule_name(self) -> pulumi.Output[_builtins.str]:
822
+ """
823
+ The unique name of the rule.
824
+ """
479
825
  return pulumi.get(self, "rule_name")
480
826