pulumi-spotinst 3.121.0a1750482125__py3-none-any.whl → 3.121.0a1751945899__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.

@@ -12,6 +12,7 @@ from .credentials_gcp import *
12
12
  from .data_integration import *
13
13
  from .elastigroup_azure_v3 import *
14
14
  from .health_check import *
15
+ from .notification_center import *
15
16
  from .ocean_right_sizing_rule import *
16
17
  from .provider import *
17
18
  from .stateful_node_azure import *
@@ -253,6 +254,14 @@ _utilities.register(
253
254
  "spotinst:index/healthCheck:HealthCheck": "HealthCheck"
254
255
  }
255
256
  },
257
+ {
258
+ "pkg": "spotinst",
259
+ "mod": "index/notificationCenter",
260
+ "fqn": "pulumi_spotinst",
261
+ "classes": {
262
+ "spotinst:index/notificationCenter:NotificationCenter": "NotificationCenter"
263
+ }
264
+ },
256
265
  {
257
266
  "pkg": "spotinst",
258
267
  "mod": "index/oceanRightSizingRule",
@@ -94,6 +94,18 @@ __all__ = [
94
94
  'ElastigroupAzureV3VmSizesSpotSizeAttributesArgsDict',
95
95
  'HealthCheckCheckArgs',
96
96
  'HealthCheckCheckArgsDict',
97
+ 'NotificationCenterComputePolicyConfigArgs',
98
+ 'NotificationCenterComputePolicyConfigArgsDict',
99
+ 'NotificationCenterComputePolicyConfigDynamicRuleArgs',
100
+ 'NotificationCenterComputePolicyConfigDynamicRuleArgsDict',
101
+ 'NotificationCenterComputePolicyConfigDynamicRuleFilterConditionArgs',
102
+ 'NotificationCenterComputePolicyConfigDynamicRuleFilterConditionArgsDict',
103
+ 'NotificationCenterComputePolicyConfigEventArgs',
104
+ 'NotificationCenterComputePolicyConfigEventArgsDict',
105
+ 'NotificationCenterRegisteredUserArgs',
106
+ 'NotificationCenterRegisteredUserArgsDict',
107
+ 'NotificationCenterSubscriptionArgs',
108
+ 'NotificationCenterSubscriptionArgsDict',
97
109
  'OceanRightSizingRuleAttachWorkloadArgs',
98
110
  'OceanRightSizingRuleAttachWorkloadArgsDict',
99
111
  'OceanRightSizingRuleAttachWorkloadNamespaceArgs',
@@ -2688,6 +2700,247 @@ class HealthCheckCheckArgs:
2688
2700
  pulumi.set(self, "timeout", value)
2689
2701
 
2690
2702
 
2703
+ if not MYPY:
2704
+ class NotificationCenterComputePolicyConfigArgsDict(TypedDict):
2705
+ events: pulumi.Input[Sequence[pulumi.Input['NotificationCenterComputePolicyConfigEventArgsDict']]]
2706
+ dynamic_rules: NotRequired[pulumi.Input[Sequence[pulumi.Input['NotificationCenterComputePolicyConfigDynamicRuleArgsDict']]]]
2707
+ resource_ids: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
2708
+ should_include_all_resources: NotRequired[pulumi.Input[builtins.bool]]
2709
+ elif False:
2710
+ NotificationCenterComputePolicyConfigArgsDict: TypeAlias = Mapping[str, Any]
2711
+
2712
+ @pulumi.input_type
2713
+ class NotificationCenterComputePolicyConfigArgs:
2714
+ def __init__(__self__, *,
2715
+ events: pulumi.Input[Sequence[pulumi.Input['NotificationCenterComputePolicyConfigEventArgs']]],
2716
+ dynamic_rules: Optional[pulumi.Input[Sequence[pulumi.Input['NotificationCenterComputePolicyConfigDynamicRuleArgs']]]] = None,
2717
+ resource_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
2718
+ should_include_all_resources: Optional[pulumi.Input[builtins.bool]] = None):
2719
+ pulumi.set(__self__, "events", events)
2720
+ if dynamic_rules is not None:
2721
+ pulumi.set(__self__, "dynamic_rules", dynamic_rules)
2722
+ if resource_ids is not None:
2723
+ pulumi.set(__self__, "resource_ids", resource_ids)
2724
+ if should_include_all_resources is not None:
2725
+ pulumi.set(__self__, "should_include_all_resources", should_include_all_resources)
2726
+
2727
+ @property
2728
+ @pulumi.getter
2729
+ def events(self) -> pulumi.Input[Sequence[pulumi.Input['NotificationCenterComputePolicyConfigEventArgs']]]:
2730
+ return pulumi.get(self, "events")
2731
+
2732
+ @events.setter
2733
+ def events(self, value: pulumi.Input[Sequence[pulumi.Input['NotificationCenterComputePolicyConfigEventArgs']]]):
2734
+ pulumi.set(self, "events", value)
2735
+
2736
+ @property
2737
+ @pulumi.getter(name="dynamicRules")
2738
+ def dynamic_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NotificationCenterComputePolicyConfigDynamicRuleArgs']]]]:
2739
+ return pulumi.get(self, "dynamic_rules")
2740
+
2741
+ @dynamic_rules.setter
2742
+ def dynamic_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['NotificationCenterComputePolicyConfigDynamicRuleArgs']]]]):
2743
+ pulumi.set(self, "dynamic_rules", value)
2744
+
2745
+ @property
2746
+ @pulumi.getter(name="resourceIds")
2747
+ def resource_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
2748
+ return pulumi.get(self, "resource_ids")
2749
+
2750
+ @resource_ids.setter
2751
+ def resource_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
2752
+ pulumi.set(self, "resource_ids", value)
2753
+
2754
+ @property
2755
+ @pulumi.getter(name="shouldIncludeAllResources")
2756
+ def should_include_all_resources(self) -> Optional[pulumi.Input[builtins.bool]]:
2757
+ return pulumi.get(self, "should_include_all_resources")
2758
+
2759
+ @should_include_all_resources.setter
2760
+ def should_include_all_resources(self, value: Optional[pulumi.Input[builtins.bool]]):
2761
+ pulumi.set(self, "should_include_all_resources", value)
2762
+
2763
+
2764
+ if not MYPY:
2765
+ class NotificationCenterComputePolicyConfigDynamicRuleArgsDict(TypedDict):
2766
+ filter_conditions: NotRequired[pulumi.Input[Sequence[pulumi.Input['NotificationCenterComputePolicyConfigDynamicRuleFilterConditionArgsDict']]]]
2767
+ elif False:
2768
+ NotificationCenterComputePolicyConfigDynamicRuleArgsDict: TypeAlias = Mapping[str, Any]
2769
+
2770
+ @pulumi.input_type
2771
+ class NotificationCenterComputePolicyConfigDynamicRuleArgs:
2772
+ def __init__(__self__, *,
2773
+ filter_conditions: Optional[pulumi.Input[Sequence[pulumi.Input['NotificationCenterComputePolicyConfigDynamicRuleFilterConditionArgs']]]] = None):
2774
+ if filter_conditions is not None:
2775
+ pulumi.set(__self__, "filter_conditions", filter_conditions)
2776
+
2777
+ @property
2778
+ @pulumi.getter(name="filterConditions")
2779
+ def filter_conditions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NotificationCenterComputePolicyConfigDynamicRuleFilterConditionArgs']]]]:
2780
+ return pulumi.get(self, "filter_conditions")
2781
+
2782
+ @filter_conditions.setter
2783
+ def filter_conditions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['NotificationCenterComputePolicyConfigDynamicRuleFilterConditionArgs']]]]):
2784
+ pulumi.set(self, "filter_conditions", value)
2785
+
2786
+
2787
+ if not MYPY:
2788
+ class NotificationCenterComputePolicyConfigDynamicRuleFilterConditionArgsDict(TypedDict):
2789
+ expression: NotRequired[pulumi.Input[builtins.str]]
2790
+ identifier: NotRequired[pulumi.Input[builtins.str]]
2791
+ operator: NotRequired[pulumi.Input[builtins.str]]
2792
+ elif False:
2793
+ NotificationCenterComputePolicyConfigDynamicRuleFilterConditionArgsDict: TypeAlias = Mapping[str, Any]
2794
+
2795
+ @pulumi.input_type
2796
+ class NotificationCenterComputePolicyConfigDynamicRuleFilterConditionArgs:
2797
+ def __init__(__self__, *,
2798
+ expression: Optional[pulumi.Input[builtins.str]] = None,
2799
+ identifier: Optional[pulumi.Input[builtins.str]] = None,
2800
+ operator: Optional[pulumi.Input[builtins.str]] = None):
2801
+ if expression is not None:
2802
+ pulumi.set(__self__, "expression", expression)
2803
+ if identifier is not None:
2804
+ pulumi.set(__self__, "identifier", identifier)
2805
+ if operator is not None:
2806
+ pulumi.set(__self__, "operator", operator)
2807
+
2808
+ @property
2809
+ @pulumi.getter
2810
+ def expression(self) -> Optional[pulumi.Input[builtins.str]]:
2811
+ return pulumi.get(self, "expression")
2812
+
2813
+ @expression.setter
2814
+ def expression(self, value: Optional[pulumi.Input[builtins.str]]):
2815
+ pulumi.set(self, "expression", value)
2816
+
2817
+ @property
2818
+ @pulumi.getter
2819
+ def identifier(self) -> Optional[pulumi.Input[builtins.str]]:
2820
+ return pulumi.get(self, "identifier")
2821
+
2822
+ @identifier.setter
2823
+ def identifier(self, value: Optional[pulumi.Input[builtins.str]]):
2824
+ pulumi.set(self, "identifier", value)
2825
+
2826
+ @property
2827
+ @pulumi.getter
2828
+ def operator(self) -> Optional[pulumi.Input[builtins.str]]:
2829
+ return pulumi.get(self, "operator")
2830
+
2831
+ @operator.setter
2832
+ def operator(self, value: Optional[pulumi.Input[builtins.str]]):
2833
+ pulumi.set(self, "operator", value)
2834
+
2835
+
2836
+ if not MYPY:
2837
+ class NotificationCenterComputePolicyConfigEventArgsDict(TypedDict):
2838
+ event: NotRequired[pulumi.Input[builtins.str]]
2839
+ event_type: NotRequired[pulumi.Input[builtins.str]]
2840
+ elif False:
2841
+ NotificationCenterComputePolicyConfigEventArgsDict: TypeAlias = Mapping[str, Any]
2842
+
2843
+ @pulumi.input_type
2844
+ class NotificationCenterComputePolicyConfigEventArgs:
2845
+ def __init__(__self__, *,
2846
+ event: Optional[pulumi.Input[builtins.str]] = None,
2847
+ event_type: Optional[pulumi.Input[builtins.str]] = None):
2848
+ if event is not None:
2849
+ pulumi.set(__self__, "event", event)
2850
+ if event_type is not None:
2851
+ pulumi.set(__self__, "event_type", event_type)
2852
+
2853
+ @property
2854
+ @pulumi.getter
2855
+ def event(self) -> Optional[pulumi.Input[builtins.str]]:
2856
+ return pulumi.get(self, "event")
2857
+
2858
+ @event.setter
2859
+ def event(self, value: Optional[pulumi.Input[builtins.str]]):
2860
+ pulumi.set(self, "event", value)
2861
+
2862
+ @property
2863
+ @pulumi.getter(name="eventType")
2864
+ def event_type(self) -> Optional[pulumi.Input[builtins.str]]:
2865
+ return pulumi.get(self, "event_type")
2866
+
2867
+ @event_type.setter
2868
+ def event_type(self, value: Optional[pulumi.Input[builtins.str]]):
2869
+ pulumi.set(self, "event_type", value)
2870
+
2871
+
2872
+ if not MYPY:
2873
+ class NotificationCenterRegisteredUserArgsDict(TypedDict):
2874
+ subscription_types: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
2875
+ user_email: NotRequired[pulumi.Input[builtins.str]]
2876
+ elif False:
2877
+ NotificationCenterRegisteredUserArgsDict: TypeAlias = Mapping[str, Any]
2878
+
2879
+ @pulumi.input_type
2880
+ class NotificationCenterRegisteredUserArgs:
2881
+ def __init__(__self__, *,
2882
+ subscription_types: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
2883
+ user_email: Optional[pulumi.Input[builtins.str]] = None):
2884
+ if subscription_types is not None:
2885
+ pulumi.set(__self__, "subscription_types", subscription_types)
2886
+ if user_email is not None:
2887
+ pulumi.set(__self__, "user_email", user_email)
2888
+
2889
+ @property
2890
+ @pulumi.getter(name="subscriptionTypes")
2891
+ def subscription_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
2892
+ return pulumi.get(self, "subscription_types")
2893
+
2894
+ @subscription_types.setter
2895
+ def subscription_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
2896
+ pulumi.set(self, "subscription_types", value)
2897
+
2898
+ @property
2899
+ @pulumi.getter(name="userEmail")
2900
+ def user_email(self) -> Optional[pulumi.Input[builtins.str]]:
2901
+ return pulumi.get(self, "user_email")
2902
+
2903
+ @user_email.setter
2904
+ def user_email(self, value: Optional[pulumi.Input[builtins.str]]):
2905
+ pulumi.set(self, "user_email", value)
2906
+
2907
+
2908
+ if not MYPY:
2909
+ class NotificationCenterSubscriptionArgsDict(TypedDict):
2910
+ endpoint: NotRequired[pulumi.Input[builtins.str]]
2911
+ subscription_type: NotRequired[pulumi.Input[builtins.str]]
2912
+ elif False:
2913
+ NotificationCenterSubscriptionArgsDict: TypeAlias = Mapping[str, Any]
2914
+
2915
+ @pulumi.input_type
2916
+ class NotificationCenterSubscriptionArgs:
2917
+ def __init__(__self__, *,
2918
+ endpoint: Optional[pulumi.Input[builtins.str]] = None,
2919
+ subscription_type: Optional[pulumi.Input[builtins.str]] = None):
2920
+ if endpoint is not None:
2921
+ pulumi.set(__self__, "endpoint", endpoint)
2922
+ if subscription_type is not None:
2923
+ pulumi.set(__self__, "subscription_type", subscription_type)
2924
+
2925
+ @property
2926
+ @pulumi.getter
2927
+ def endpoint(self) -> Optional[pulumi.Input[builtins.str]]:
2928
+ return pulumi.get(self, "endpoint")
2929
+
2930
+ @endpoint.setter
2931
+ def endpoint(self, value: Optional[pulumi.Input[builtins.str]]):
2932
+ pulumi.set(self, "endpoint", value)
2933
+
2934
+ @property
2935
+ @pulumi.getter(name="subscriptionType")
2936
+ def subscription_type(self) -> Optional[pulumi.Input[builtins.str]]:
2937
+ return pulumi.get(self, "subscription_type")
2938
+
2939
+ @subscription_type.setter
2940
+ def subscription_type(self, value: Optional[pulumi.Input[builtins.str]]):
2941
+ pulumi.set(self, "subscription_type", value)
2942
+
2943
+
2691
2944
  if not MYPY:
2692
2945
  class OceanRightSizingRuleAttachWorkloadArgsDict(TypedDict):
2693
2946
  namespaces: pulumi.Input[Sequence[pulumi.Input['OceanRightSizingRuleAttachWorkloadNamespaceArgsDict']]]
@@ -4863,7 +5116,7 @@ class StatefulNodeAzureSecretVaultCertificateArgs:
4863
5116
 
4864
5117
  if not MYPY:
4865
5118
  class StatefulNodeAzureSecurityArgsDict(TypedDict):
4866
- confidential_os_disk_encryption: NotRequired[pulumi.Input[builtins.bool]]
5119
+ confidential_os_disk_encryption: NotRequired[pulumi.Input[builtins.str]]
4867
5120
  encryption_at_host: NotRequired[pulumi.Input[builtins.bool]]
4868
5121
  secure_boot_enabled: NotRequired[pulumi.Input[builtins.bool]]
4869
5122
  security_type: NotRequired[pulumi.Input[builtins.str]]
@@ -4874,7 +5127,7 @@ elif False:
4874
5127
  @pulumi.input_type
4875
5128
  class StatefulNodeAzureSecurityArgs:
4876
5129
  def __init__(__self__, *,
4877
- confidential_os_disk_encryption: Optional[pulumi.Input[builtins.bool]] = None,
5130
+ confidential_os_disk_encryption: Optional[pulumi.Input[builtins.str]] = None,
4878
5131
  encryption_at_host: Optional[pulumi.Input[builtins.bool]] = None,
4879
5132
  secure_boot_enabled: Optional[pulumi.Input[builtins.bool]] = None,
4880
5133
  security_type: Optional[pulumi.Input[builtins.str]] = None,
@@ -4892,11 +5145,11 @@ class StatefulNodeAzureSecurityArgs:
4892
5145
 
4893
5146
  @property
4894
5147
  @pulumi.getter(name="confidentialOsDiskEncryption")
4895
- def confidential_os_disk_encryption(self) -> Optional[pulumi.Input[builtins.bool]]:
5148
+ def confidential_os_disk_encryption(self) -> Optional[pulumi.Input[builtins.str]]:
4896
5149
  return pulumi.get(self, "confidential_os_disk_encryption")
4897
5150
 
4898
5151
  @confidential_os_disk_encryption.setter
4899
- def confidential_os_disk_encryption(self, value: Optional[pulumi.Input[builtins.bool]]):
5152
+ def confidential_os_disk_encryption(self, value: Optional[pulumi.Input[builtins.str]]):
4900
5153
  pulumi.set(self, "confidential_os_disk_encryption", value)
4901
5154
 
4902
5155
  @property
@@ -18,6 +18,8 @@ from .. import _utilities
18
18
  __all__ = [
19
19
  'ElastigroupBackendServiceArgs',
20
20
  'ElastigroupBackendServiceArgsDict',
21
+ 'ElastigroupBackendServiceBackendBalancingArgs',
22
+ 'ElastigroupBackendServiceBackendBalancingArgsDict',
21
23
  'ElastigroupBackendServiceNamedPortArgs',
22
24
  'ElastigroupBackendServiceNamedPortArgsDict',
23
25
  'ElastigroupDiskArgs',
@@ -74,6 +76,10 @@ if not MYPY:
74
76
  """
75
77
  The name of the backend service.
76
78
  """
79
+ backend_balancing: NotRequired[pulumi.Input['ElastigroupBackendServiceBackendBalancingArgsDict']]
80
+ """
81
+ Configure how traffic is distributed across instance groups.
82
+ """
77
83
  location_type: NotRequired[pulumi.Input[builtins.str]]
78
84
  """
79
85
  Sets which location the backend services will be active. Valid values: `regional`, `global`.
@@ -93,16 +99,20 @@ elif False:
93
99
  class ElastigroupBackendServiceArgs:
94
100
  def __init__(__self__, *,
95
101
  service_name: pulumi.Input[builtins.str],
102
+ backend_balancing: Optional[pulumi.Input['ElastigroupBackendServiceBackendBalancingArgs']] = None,
96
103
  location_type: Optional[pulumi.Input[builtins.str]] = None,
97
104
  named_ports: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupBackendServiceNamedPortArgs']]]] = None,
98
105
  scheme: Optional[pulumi.Input[builtins.str]] = None):
99
106
  """
100
107
  :param pulumi.Input[builtins.str] service_name: The name of the backend service.
108
+ :param pulumi.Input['ElastigroupBackendServiceBackendBalancingArgs'] backend_balancing: Configure how traffic is distributed across instance groups.
101
109
  :param pulumi.Input[builtins.str] location_type: Sets which location the backend services will be active. Valid values: `regional`, `global`.
102
110
  :param pulumi.Input[Sequence[pulumi.Input['ElastigroupBackendServiceNamedPortArgs']]] named_ports: Describes a named port and a list of ports.
103
111
  :param pulumi.Input[builtins.str] scheme: Use when `location_type` is "regional". Set the traffic for the backend service to either between the instances in the vpc or to traffic from the internet. Valid values: `INTERNAL`, `EXTERNAL`.
104
112
  """
105
113
  pulumi.set(__self__, "service_name", service_name)
114
+ if backend_balancing is not None:
115
+ pulumi.set(__self__, "backend_balancing", backend_balancing)
106
116
  if location_type is not None:
107
117
  pulumi.set(__self__, "location_type", location_type)
108
118
  if named_ports is not None:
@@ -122,6 +132,18 @@ class ElastigroupBackendServiceArgs:
122
132
  def service_name(self, value: pulumi.Input[builtins.str]):
123
133
  pulumi.set(self, "service_name", value)
124
134
 
135
+ @property
136
+ @pulumi.getter(name="backendBalancing")
137
+ def backend_balancing(self) -> Optional[pulumi.Input['ElastigroupBackendServiceBackendBalancingArgs']]:
138
+ """
139
+ Configure how traffic is distributed across instance groups.
140
+ """
141
+ return pulumi.get(self, "backend_balancing")
142
+
143
+ @backend_balancing.setter
144
+ def backend_balancing(self, value: Optional[pulumi.Input['ElastigroupBackendServiceBackendBalancingArgs']]):
145
+ pulumi.set(self, "backend_balancing", value)
146
+
125
147
  @property
126
148
  @pulumi.getter(name="locationType")
127
149
  def location_type(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -159,6 +181,64 @@ class ElastigroupBackendServiceArgs:
159
181
  pulumi.set(self, "scheme", value)
160
182
 
161
183
 
184
+ if not MYPY:
185
+ class ElastigroupBackendServiceBackendBalancingArgsDict(TypedDict):
186
+ backend_balancing_mode: NotRequired[pulumi.Input[builtins.str]]
187
+ """
188
+ The backend balancing mode. Valid values: `RATE`, `UTILIZATION`.
189
+ """
190
+ max_rate_per_instance: NotRequired[pulumi.Input[builtins.int]]
191
+ """
192
+ If the backendBalancingMode is set to RATE, this field is required.
193
+
194
+ Usage:
195
+ """
196
+ elif False:
197
+ ElastigroupBackendServiceBackendBalancingArgsDict: TypeAlias = Mapping[str, Any]
198
+
199
+ @pulumi.input_type
200
+ class ElastigroupBackendServiceBackendBalancingArgs:
201
+ def __init__(__self__, *,
202
+ backend_balancing_mode: Optional[pulumi.Input[builtins.str]] = None,
203
+ max_rate_per_instance: Optional[pulumi.Input[builtins.int]] = None):
204
+ """
205
+ :param pulumi.Input[builtins.str] backend_balancing_mode: The backend balancing mode. Valid values: `RATE`, `UTILIZATION`.
206
+ :param pulumi.Input[builtins.int] max_rate_per_instance: If the backendBalancingMode is set to RATE, this field is required.
207
+
208
+ Usage:
209
+ """
210
+ if backend_balancing_mode is not None:
211
+ pulumi.set(__self__, "backend_balancing_mode", backend_balancing_mode)
212
+ if max_rate_per_instance is not None:
213
+ pulumi.set(__self__, "max_rate_per_instance", max_rate_per_instance)
214
+
215
+ @property
216
+ @pulumi.getter(name="backendBalancingMode")
217
+ def backend_balancing_mode(self) -> Optional[pulumi.Input[builtins.str]]:
218
+ """
219
+ The backend balancing mode. Valid values: `RATE`, `UTILIZATION`.
220
+ """
221
+ return pulumi.get(self, "backend_balancing_mode")
222
+
223
+ @backend_balancing_mode.setter
224
+ def backend_balancing_mode(self, value: Optional[pulumi.Input[builtins.str]]):
225
+ pulumi.set(self, "backend_balancing_mode", value)
226
+
227
+ @property
228
+ @pulumi.getter(name="maxRatePerInstance")
229
+ def max_rate_per_instance(self) -> Optional[pulumi.Input[builtins.int]]:
230
+ """
231
+ If the backendBalancingMode is set to RATE, this field is required.
232
+
233
+ Usage:
234
+ """
235
+ return pulumi.get(self, "max_rate_per_instance")
236
+
237
+ @max_rate_per_instance.setter
238
+ def max_rate_per_instance(self, value: Optional[pulumi.Input[builtins.int]]):
239
+ pulumi.set(self, "max_rate_per_instance", value)
240
+
241
+
162
242
  if not MYPY:
163
243
  class ElastigroupBackendServiceNamedPortArgsDict(TypedDict):
164
244
  name: pulumi.Input[builtins.str]
@@ -168,8 +248,6 @@ if not MYPY:
168
248
  ports: pulumi.Input[Sequence[pulumi.Input[builtins.str]]]
169
249
  """
170
250
  A list of ports.
171
-
172
- Usage:
173
251
  """
174
252
  elif False:
175
253
  ElastigroupBackendServiceNamedPortArgsDict: TypeAlias = Mapping[str, Any]
@@ -182,8 +260,6 @@ class ElastigroupBackendServiceNamedPortArgs:
182
260
  """
183
261
  :param pulumi.Input[builtins.str] name: The name of the port.
184
262
  :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] ports: A list of ports.
185
-
186
- Usage:
187
263
  """
188
264
  pulumi.set(__self__, "name", name)
189
265
  pulumi.set(__self__, "ports", ports)
@@ -205,8 +281,6 @@ class ElastigroupBackendServiceNamedPortArgs:
205
281
  def ports(self) -> pulumi.Input[Sequence[pulumi.Input[builtins.str]]]:
206
282
  """
207
283
  A list of ports.
208
-
209
- Usage:
210
284
  """
211
285
  return pulumi.get(self, "ports")
212
286
 
@@ -1379,6 +1379,10 @@ class Elastigroup(pulumi.CustomResource):
1379
1379
  "6000",
1380
1380
  ],
1381
1381
  }],
1382
+ "backend_balancing": {
1383
+ "backend_balancing_mode": "RATE",
1384
+ "max_rate_per_instance": 500,
1385
+ },
1382
1386
  }],
1383
1387
  disks=[{
1384
1388
  "device_name": "device",
@@ -1525,6 +1529,10 @@ class Elastigroup(pulumi.CustomResource):
1525
1529
  "6000",
1526
1530
  ],
1527
1531
  }],
1532
+ "backend_balancing": {
1533
+ "backend_balancing_mode": "RATE",
1534
+ "max_rate_per_instance": 500,
1535
+ },
1528
1536
  }],
1529
1537
  disks=[{
1530
1538
  "device_name": "device",
@@ -18,6 +18,7 @@ from . import outputs
18
18
 
19
19
  __all__ = [
20
20
  'ElastigroupBackendService',
21
+ 'ElastigroupBackendServiceBackendBalancing',
21
22
  'ElastigroupBackendServiceNamedPort',
22
23
  'ElastigroupDisk',
23
24
  'ElastigroupDiskInitializeParam',
@@ -50,6 +51,8 @@ class ElastigroupBackendService(dict):
50
51
  suggest = None
51
52
  if key == "serviceName":
52
53
  suggest = "service_name"
54
+ elif key == "backendBalancing":
55
+ suggest = "backend_balancing"
53
56
  elif key == "locationType":
54
57
  suggest = "location_type"
55
58
  elif key == "namedPorts":
@@ -68,16 +71,20 @@ class ElastigroupBackendService(dict):
68
71
 
69
72
  def __init__(__self__, *,
70
73
  service_name: builtins.str,
74
+ backend_balancing: Optional['outputs.ElastigroupBackendServiceBackendBalancing'] = None,
71
75
  location_type: Optional[builtins.str] = None,
72
76
  named_ports: Optional[Sequence['outputs.ElastigroupBackendServiceNamedPort']] = None,
73
77
  scheme: Optional[builtins.str] = None):
74
78
  """
75
79
  :param builtins.str service_name: The name of the backend service.
80
+ :param 'ElastigroupBackendServiceBackendBalancingArgs' backend_balancing: Configure how traffic is distributed across instance groups.
76
81
  :param builtins.str location_type: Sets which location the backend services will be active. Valid values: `regional`, `global`.
77
82
  :param Sequence['ElastigroupBackendServiceNamedPortArgs'] named_ports: Describes a named port and a list of ports.
78
83
  :param builtins.str scheme: Use when `location_type` is "regional". Set the traffic for the backend service to either between the instances in the vpc or to traffic from the internet. Valid values: `INTERNAL`, `EXTERNAL`.
79
84
  """
80
85
  pulumi.set(__self__, "service_name", service_name)
86
+ if backend_balancing is not None:
87
+ pulumi.set(__self__, "backend_balancing", backend_balancing)
81
88
  if location_type is not None:
82
89
  pulumi.set(__self__, "location_type", location_type)
83
90
  if named_ports is not None:
@@ -93,6 +100,14 @@ class ElastigroupBackendService(dict):
93
100
  """
94
101
  return pulumi.get(self, "service_name")
95
102
 
103
+ @property
104
+ @pulumi.getter(name="backendBalancing")
105
+ def backend_balancing(self) -> Optional['outputs.ElastigroupBackendServiceBackendBalancing']:
106
+ """
107
+ Configure how traffic is distributed across instance groups.
108
+ """
109
+ return pulumi.get(self, "backend_balancing")
110
+
96
111
  @property
97
112
  @pulumi.getter(name="locationType")
98
113
  def location_type(self) -> Optional[builtins.str]:
@@ -118,6 +133,60 @@ class ElastigroupBackendService(dict):
118
133
  return pulumi.get(self, "scheme")
119
134
 
120
135
 
136
+ @pulumi.output_type
137
+ class ElastigroupBackendServiceBackendBalancing(dict):
138
+ @staticmethod
139
+ def __key_warning(key: str):
140
+ suggest = None
141
+ if key == "backendBalancingMode":
142
+ suggest = "backend_balancing_mode"
143
+ elif key == "maxRatePerInstance":
144
+ suggest = "max_rate_per_instance"
145
+
146
+ if suggest:
147
+ pulumi.log.warn(f"Key '{key}' not found in ElastigroupBackendServiceBackendBalancing. Access the value via the '{suggest}' property getter instead.")
148
+
149
+ def __getitem__(self, key: str) -> Any:
150
+ ElastigroupBackendServiceBackendBalancing.__key_warning(key)
151
+ return super().__getitem__(key)
152
+
153
+ def get(self, key: str, default = None) -> Any:
154
+ ElastigroupBackendServiceBackendBalancing.__key_warning(key)
155
+ return super().get(key, default)
156
+
157
+ def __init__(__self__, *,
158
+ backend_balancing_mode: Optional[builtins.str] = None,
159
+ max_rate_per_instance: Optional[builtins.int] = None):
160
+ """
161
+ :param builtins.str backend_balancing_mode: The backend balancing mode. Valid values: `RATE`, `UTILIZATION`.
162
+ :param builtins.int max_rate_per_instance: If the backendBalancingMode is set to RATE, this field is required.
163
+
164
+ Usage:
165
+ """
166
+ if backend_balancing_mode is not None:
167
+ pulumi.set(__self__, "backend_balancing_mode", backend_balancing_mode)
168
+ if max_rate_per_instance is not None:
169
+ pulumi.set(__self__, "max_rate_per_instance", max_rate_per_instance)
170
+
171
+ @property
172
+ @pulumi.getter(name="backendBalancingMode")
173
+ def backend_balancing_mode(self) -> Optional[builtins.str]:
174
+ """
175
+ The backend balancing mode. Valid values: `RATE`, `UTILIZATION`.
176
+ """
177
+ return pulumi.get(self, "backend_balancing_mode")
178
+
179
+ @property
180
+ @pulumi.getter(name="maxRatePerInstance")
181
+ def max_rate_per_instance(self) -> Optional[builtins.int]:
182
+ """
183
+ If the backendBalancingMode is set to RATE, this field is required.
184
+
185
+ Usage:
186
+ """
187
+ return pulumi.get(self, "max_rate_per_instance")
188
+
189
+
121
190
  @pulumi.output_type
122
191
  class ElastigroupBackendServiceNamedPort(dict):
123
192
  def __init__(__self__, *,
@@ -126,8 +195,6 @@ class ElastigroupBackendServiceNamedPort(dict):
126
195
  """
127
196
  :param builtins.str name: The name of the port.
128
197
  :param Sequence[builtins.str] ports: A list of ports.
129
-
130
- Usage:
131
198
  """
132
199
  pulumi.set(__self__, "name", name)
133
200
  pulumi.set(__self__, "ports", ports)
@@ -145,8 +212,6 @@ class ElastigroupBackendServiceNamedPort(dict):
145
212
  def ports(self) -> Sequence[builtins.str]:
146
213
  """
147
214
  A list of ports.
148
-
149
- Usage:
150
215
  """
151
216
  return pulumi.get(self, "ports")
152
217