pulumi-spotinst 3.83.0a1720524486__py3-none-any.whl → 3.128.0a1767140134__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.
Files changed (77) hide show
  1. pulumi_spotinst/__init__.py +38 -1
  2. pulumi_spotinst/_inputs.py +4082 -846
  3. pulumi_spotinst/_utilities.py +15 -10
  4. pulumi_spotinst/account.py +171 -0
  5. pulumi_spotinst/aws/__init__.py +2 -1
  6. pulumi_spotinst/aws/_inputs.py +7292 -2871
  7. pulumi_spotinst/aws/account.py +25 -19
  8. pulumi_spotinst/aws/beanstalk.py +272 -190
  9. pulumi_spotinst/aws/credentials.py +42 -36
  10. pulumi_spotinst/aws/elastigroup.py +1321 -1176
  11. pulumi_spotinst/aws/managed_instance.py +633 -526
  12. pulumi_spotinst/aws/mr_scalar.py +827 -983
  13. pulumi_spotinst/aws/ocean.py +764 -570
  14. pulumi_spotinst/aws/ocean_extended_resource_definition.py +42 -36
  15. pulumi_spotinst/aws/ocean_launch_spec.py +580 -366
  16. pulumi_spotinst/aws/outputs.py +3421 -2205
  17. pulumi_spotinst/aws/suspension.py +51 -45
  18. pulumi_spotinst/azure/__init__.py +2 -1
  19. pulumi_spotinst/azure/_inputs.py +1492 -434
  20. pulumi_spotinst/azure/ocean_np.py +518 -464
  21. pulumi_spotinst/azure/ocean_np_virtual_node_group.py +479 -408
  22. pulumi_spotinst/azure/outputs.py +840 -345
  23. pulumi_spotinst/config/__init__.py +2 -1
  24. pulumi_spotinst/config/__init__.pyi +7 -2
  25. pulumi_spotinst/config/vars.py +11 -6
  26. pulumi_spotinst/credentials_azure.py +423 -0
  27. pulumi_spotinst/credentials_gcp.py +632 -0
  28. pulumi_spotinst/data_integration.py +58 -52
  29. pulumi_spotinst/ecs/__init__.py +2 -1
  30. pulumi_spotinst/ecs/_inputs.py +1164 -469
  31. pulumi_spotinst/ecs/ocean.py +711 -446
  32. pulumi_spotinst/ecs/ocean_launch_spec.py +367 -341
  33. pulumi_spotinst/ecs/outputs.py +463 -374
  34. pulumi_spotinst/elastigroup_azure_v3.py +985 -197
  35. pulumi_spotinst/gcp/__init__.py +2 -1
  36. pulumi_spotinst/gcp/_inputs.py +1061 -381
  37. pulumi_spotinst/gcp/elastigroup.py +885 -567
  38. pulumi_spotinst/gcp/outputs.py +542 -301
  39. pulumi_spotinst/gke/__init__.py +2 -1
  40. pulumi_spotinst/gke/_inputs.py +2071 -715
  41. pulumi_spotinst/gke/elastigroup.py +558 -382
  42. pulumi_spotinst/gke/ocean_import.py +379 -255
  43. pulumi_spotinst/gke/ocean_launch_spec.py +501 -384
  44. pulumi_spotinst/gke/ocean_launch_spec_import.py +42 -36
  45. pulumi_spotinst/gke/outputs.py +1063 -528
  46. pulumi_spotinst/health_check.py +116 -70
  47. pulumi_spotinst/notification_center.py +344 -0
  48. pulumi_spotinst/ocean_right_sizing_rule.py +515 -95
  49. pulumi_spotinst/oceancd/__init__.py +2 -1
  50. pulumi_spotinst/oceancd/_inputs.py +1709 -651
  51. pulumi_spotinst/oceancd/outputs.py +537 -526
  52. pulumi_spotinst/oceancd/rollout_spec.py +65 -59
  53. pulumi_spotinst/oceancd/strategy.py +37 -31
  54. pulumi_spotinst/oceancd/verification_provider.py +128 -122
  55. pulumi_spotinst/oceancd/verification_template.py +265 -259
  56. pulumi_spotinst/organization/__init__.py +2 -1
  57. pulumi_spotinst/organization/_inputs.py +151 -57
  58. pulumi_spotinst/organization/outputs.py +51 -46
  59. pulumi_spotinst/organization/policy.py +76 -70
  60. pulumi_spotinst/organization/programmatic_user.py +83 -77
  61. pulumi_spotinst/organization/user.py +126 -120
  62. pulumi_spotinst/organization/user_group.py +75 -69
  63. pulumi_spotinst/outputs.py +3005 -832
  64. pulumi_spotinst/provider.py +66 -40
  65. pulumi_spotinst/pulumi-plugin.json +1 -1
  66. pulumi_spotinst/spark/__init__.py +2 -1
  67. pulumi_spotinst/spark/_inputs.py +290 -81
  68. pulumi_spotinst/spark/ocean.py +169 -115
  69. pulumi_spotinst/spark/ocean_virtual_node_group.py +34 -28
  70. pulumi_spotinst/spark/outputs.py +136 -66
  71. pulumi_spotinst/stateful_node_azure.py +820 -784
  72. pulumi_spotinst/subscription.py +93 -87
  73. {pulumi_spotinst-3.83.0a1720524486.dist-info → pulumi_spotinst-3.128.0a1767140134.dist-info}/METADATA +7 -6
  74. pulumi_spotinst-3.128.0a1767140134.dist-info/RECORD +77 -0
  75. {pulumi_spotinst-3.83.0a1720524486.dist-info → pulumi_spotinst-3.128.0a1767140134.dist-info}/WHEEL +1 -1
  76. pulumi_spotinst-3.83.0a1720524486.dist-info/RECORD +0 -73
  77. {pulumi_spotinst-3.83.0a1720524486.dist-info → pulumi_spotinst-3.128.0a1767140134.dist-info}/top_level.txt +0 -0
@@ -1,12 +1,17 @@
1
1
  # coding=utf-8
2
- # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
3
  # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
4
 
5
- import copy
5
+ import builtins as _builtins
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
10
  from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
10
15
  from .. import _utilities
11
16
  from . import outputs
12
17
  from ._inputs import *
@@ -16,15 +21,16 @@ __all__ = ['OceanArgs', 'Ocean']
16
21
  @pulumi.input_type
17
22
  class OceanArgs:
18
23
  def __init__(__self__, *,
19
- ocean_cluster_id: pulumi.Input[str],
24
+ ocean_cluster_id: pulumi.Input[_builtins.str],
20
25
  compute: Optional[pulumi.Input['OceanComputeArgs']] = None,
21
26
  ingress: Optional[pulumi.Input['OceanIngressArgs']] = None,
22
27
  log_collection: Optional[pulumi.Input['OceanLogCollectionArgs']] = None,
23
28
  spark: Optional[pulumi.Input['OceanSparkArgs']] = None,
24
- webhook: Optional[pulumi.Input['OceanWebhookArgs']] = None):
29
+ webhook: Optional[pulumi.Input['OceanWebhookArgs']] = None,
30
+ workspaces: Optional[pulumi.Input['OceanWorkspacesArgs']] = None):
25
31
  """
26
32
  The set of arguments for constructing a Ocean resource.
27
- :param pulumi.Input[str] ocean_cluster_id: - The ID of the Ocean cluster that Ocean for Apache Spark should be installed on.
33
+ :param pulumi.Input[_builtins.str] ocean_cluster_id: - The ID of the Ocean cluster that Ocean for Apache Spark should be installed on.
28
34
  """
29
35
  pulumi.set(__self__, "ocean_cluster_id", ocean_cluster_id)
30
36
  if compute is not None:
@@ -37,20 +43,22 @@ class OceanArgs:
37
43
  pulumi.set(__self__, "spark", spark)
38
44
  if webhook is not None:
39
45
  pulumi.set(__self__, "webhook", webhook)
46
+ if workspaces is not None:
47
+ pulumi.set(__self__, "workspaces", workspaces)
40
48
 
41
- @property
49
+ @_builtins.property
42
50
  @pulumi.getter(name="oceanClusterId")
43
- def ocean_cluster_id(self) -> pulumi.Input[str]:
51
+ def ocean_cluster_id(self) -> pulumi.Input[_builtins.str]:
44
52
  """
45
53
  - The ID of the Ocean cluster that Ocean for Apache Spark should be installed on.
46
54
  """
47
55
  return pulumi.get(self, "ocean_cluster_id")
48
56
 
49
57
  @ocean_cluster_id.setter
50
- def ocean_cluster_id(self, value: pulumi.Input[str]):
58
+ def ocean_cluster_id(self, value: pulumi.Input[_builtins.str]):
51
59
  pulumi.set(self, "ocean_cluster_id", value)
52
60
 
53
- @property
61
+ @_builtins.property
54
62
  @pulumi.getter
55
63
  def compute(self) -> Optional[pulumi.Input['OceanComputeArgs']]:
56
64
  return pulumi.get(self, "compute")
@@ -59,7 +67,7 @@ class OceanArgs:
59
67
  def compute(self, value: Optional[pulumi.Input['OceanComputeArgs']]):
60
68
  pulumi.set(self, "compute", value)
61
69
 
62
- @property
70
+ @_builtins.property
63
71
  @pulumi.getter
64
72
  def ingress(self) -> Optional[pulumi.Input['OceanIngressArgs']]:
65
73
  return pulumi.get(self, "ingress")
@@ -68,7 +76,7 @@ class OceanArgs:
68
76
  def ingress(self, value: Optional[pulumi.Input['OceanIngressArgs']]):
69
77
  pulumi.set(self, "ingress", value)
70
78
 
71
- @property
79
+ @_builtins.property
72
80
  @pulumi.getter(name="logCollection")
73
81
  def log_collection(self) -> Optional[pulumi.Input['OceanLogCollectionArgs']]:
74
82
  return pulumi.get(self, "log_collection")
@@ -77,7 +85,7 @@ class OceanArgs:
77
85
  def log_collection(self, value: Optional[pulumi.Input['OceanLogCollectionArgs']]):
78
86
  pulumi.set(self, "log_collection", value)
79
87
 
80
- @property
88
+ @_builtins.property
81
89
  @pulumi.getter
82
90
  def spark(self) -> Optional[pulumi.Input['OceanSparkArgs']]:
83
91
  return pulumi.get(self, "spark")
@@ -86,7 +94,7 @@ class OceanArgs:
86
94
  def spark(self, value: Optional[pulumi.Input['OceanSparkArgs']]):
87
95
  pulumi.set(self, "spark", value)
88
96
 
89
- @property
97
+ @_builtins.property
90
98
  @pulumi.getter
91
99
  def webhook(self) -> Optional[pulumi.Input['OceanWebhookArgs']]:
92
100
  return pulumi.get(self, "webhook")
@@ -95,6 +103,15 @@ class OceanArgs:
95
103
  def webhook(self, value: Optional[pulumi.Input['OceanWebhookArgs']]):
96
104
  pulumi.set(self, "webhook", value)
97
105
 
106
+ @_builtins.property
107
+ @pulumi.getter
108
+ def workspaces(self) -> Optional[pulumi.Input['OceanWorkspacesArgs']]:
109
+ return pulumi.get(self, "workspaces")
110
+
111
+ @workspaces.setter
112
+ def workspaces(self, value: Optional[pulumi.Input['OceanWorkspacesArgs']]):
113
+ pulumi.set(self, "workspaces", value)
114
+
98
115
 
99
116
  @pulumi.input_type
100
117
  class _OceanState:
@@ -102,12 +119,13 @@ class _OceanState:
102
119
  compute: Optional[pulumi.Input['OceanComputeArgs']] = None,
103
120
  ingress: Optional[pulumi.Input['OceanIngressArgs']] = None,
104
121
  log_collection: Optional[pulumi.Input['OceanLogCollectionArgs']] = None,
105
- ocean_cluster_id: Optional[pulumi.Input[str]] = None,
122
+ ocean_cluster_id: Optional[pulumi.Input[_builtins.str]] = None,
106
123
  spark: Optional[pulumi.Input['OceanSparkArgs']] = None,
107
- webhook: Optional[pulumi.Input['OceanWebhookArgs']] = None):
124
+ webhook: Optional[pulumi.Input['OceanWebhookArgs']] = None,
125
+ workspaces: Optional[pulumi.Input['OceanWorkspacesArgs']] = None):
108
126
  """
109
127
  Input properties used for looking up and filtering Ocean resources.
110
- :param pulumi.Input[str] ocean_cluster_id: - The ID of the Ocean cluster that Ocean for Apache Spark should be installed on.
128
+ :param pulumi.Input[_builtins.str] ocean_cluster_id: - The ID of the Ocean cluster that Ocean for Apache Spark should be installed on.
111
129
  """
112
130
  if compute is not None:
113
131
  pulumi.set(__self__, "compute", compute)
@@ -121,8 +139,10 @@ class _OceanState:
121
139
  pulumi.set(__self__, "spark", spark)
122
140
  if webhook is not None:
123
141
  pulumi.set(__self__, "webhook", webhook)
142
+ if workspaces is not None:
143
+ pulumi.set(__self__, "workspaces", workspaces)
124
144
 
125
- @property
145
+ @_builtins.property
126
146
  @pulumi.getter
127
147
  def compute(self) -> Optional[pulumi.Input['OceanComputeArgs']]:
128
148
  return pulumi.get(self, "compute")
@@ -131,7 +151,7 @@ class _OceanState:
131
151
  def compute(self, value: Optional[pulumi.Input['OceanComputeArgs']]):
132
152
  pulumi.set(self, "compute", value)
133
153
 
134
- @property
154
+ @_builtins.property
135
155
  @pulumi.getter
136
156
  def ingress(self) -> Optional[pulumi.Input['OceanIngressArgs']]:
137
157
  return pulumi.get(self, "ingress")
@@ -140,7 +160,7 @@ class _OceanState:
140
160
  def ingress(self, value: Optional[pulumi.Input['OceanIngressArgs']]):
141
161
  pulumi.set(self, "ingress", value)
142
162
 
143
- @property
163
+ @_builtins.property
144
164
  @pulumi.getter(name="logCollection")
145
165
  def log_collection(self) -> Optional[pulumi.Input['OceanLogCollectionArgs']]:
146
166
  return pulumi.get(self, "log_collection")
@@ -149,19 +169,19 @@ class _OceanState:
149
169
  def log_collection(self, value: Optional[pulumi.Input['OceanLogCollectionArgs']]):
150
170
  pulumi.set(self, "log_collection", value)
151
171
 
152
- @property
172
+ @_builtins.property
153
173
  @pulumi.getter(name="oceanClusterId")
154
- def ocean_cluster_id(self) -> Optional[pulumi.Input[str]]:
174
+ def ocean_cluster_id(self) -> Optional[pulumi.Input[_builtins.str]]:
155
175
  """
156
176
  - The ID of the Ocean cluster that Ocean for Apache Spark should be installed on.
157
177
  """
158
178
  return pulumi.get(self, "ocean_cluster_id")
159
179
 
160
180
  @ocean_cluster_id.setter
161
- def ocean_cluster_id(self, value: Optional[pulumi.Input[str]]):
181
+ def ocean_cluster_id(self, value: Optional[pulumi.Input[_builtins.str]]):
162
182
  pulumi.set(self, "ocean_cluster_id", value)
163
183
 
164
- @property
184
+ @_builtins.property
165
185
  @pulumi.getter
166
186
  def spark(self) -> Optional[pulumi.Input['OceanSparkArgs']]:
167
187
  return pulumi.get(self, "spark")
@@ -170,7 +190,7 @@ class _OceanState:
170
190
  def spark(self, value: Optional[pulumi.Input['OceanSparkArgs']]):
171
191
  pulumi.set(self, "spark", value)
172
192
 
173
- @property
193
+ @_builtins.property
174
194
  @pulumi.getter
175
195
  def webhook(self) -> Optional[pulumi.Input['OceanWebhookArgs']]:
176
196
  return pulumi.get(self, "webhook")
@@ -179,18 +199,29 @@ class _OceanState:
179
199
  def webhook(self, value: Optional[pulumi.Input['OceanWebhookArgs']]):
180
200
  pulumi.set(self, "webhook", value)
181
201
 
202
+ @_builtins.property
203
+ @pulumi.getter
204
+ def workspaces(self) -> Optional[pulumi.Input['OceanWorkspacesArgs']]:
205
+ return pulumi.get(self, "workspaces")
206
+
207
+ @workspaces.setter
208
+ def workspaces(self, value: Optional[pulumi.Input['OceanWorkspacesArgs']]):
209
+ pulumi.set(self, "workspaces", value)
182
210
 
211
+
212
+ @pulumi.type_token("spotinst:spark/ocean:Ocean")
183
213
  class Ocean(pulumi.CustomResource):
184
214
  @overload
185
215
  def __init__(__self__,
186
216
  resource_name: str,
187
217
  opts: Optional[pulumi.ResourceOptions] = None,
188
- compute: Optional[pulumi.Input[pulumi.InputType['OceanComputeArgs']]] = None,
189
- ingress: Optional[pulumi.Input[pulumi.InputType['OceanIngressArgs']]] = None,
190
- log_collection: Optional[pulumi.Input[pulumi.InputType['OceanLogCollectionArgs']]] = None,
191
- ocean_cluster_id: Optional[pulumi.Input[str]] = None,
192
- spark: Optional[pulumi.Input[pulumi.InputType['OceanSparkArgs']]] = None,
193
- webhook: Optional[pulumi.Input[pulumi.InputType['OceanWebhookArgs']]] = None,
218
+ compute: Optional[pulumi.Input[Union['OceanComputeArgs', 'OceanComputeArgsDict']]] = None,
219
+ ingress: Optional[pulumi.Input[Union['OceanIngressArgs', 'OceanIngressArgsDict']]] = None,
220
+ log_collection: Optional[pulumi.Input[Union['OceanLogCollectionArgs', 'OceanLogCollectionArgsDict']]] = None,
221
+ ocean_cluster_id: Optional[pulumi.Input[_builtins.str]] = None,
222
+ spark: Optional[pulumi.Input[Union['OceanSparkArgs', 'OceanSparkArgsDict']]] = None,
223
+ webhook: Optional[pulumi.Input[Union['OceanWebhookArgs', 'OceanWebhookArgsDict']]] = None,
224
+ workspaces: Optional[pulumi.Input[Union['OceanWorkspacesArgs', 'OceanWorkspacesArgsDict']]] = None,
194
225
  __props__=None):
195
226
  """
196
227
  Manages a Spotinst Ocean Spark resource on AWS or GCP.
@@ -207,49 +238,56 @@ class Ocean(pulumi.CustomResource):
207
238
 
208
239
  example = spotinst.spark.Ocean("example",
209
240
  ocean_cluster_id="ocean-cluster-id",
210
- ingress=spotinst.spark.OceanIngressArgs(
211
- controller=spotinst.spark.OceanIngressControllerArgs(
212
- managed=True,
213
- ),
214
- load_balancer=spotinst.spark.OceanIngressLoadBalancerArgs(
215
- managed=True,
216
- target_group_arn="arn:aws:elasticloadbalancing:eu-north-1:XXXXXXXXXXXX:targetgroup/my-spark-cluster-nlb-tg/a38c2b83XXXXXXXX",
217
- service_annotations={
241
+ ingress={
242
+ "controller": {
243
+ "managed": True,
244
+ },
245
+ "load_balancer": {
246
+ "managed": True,
247
+ "target_group_arn": "arn:aws:elasticloadbalancing:eu-north-1:XXXXXXXXXXXX:targetgroup/my-spark-cluster-nlb-tg/a38c2b83XXXXXXXX",
248
+ "service_annotations": {
218
249
  "service.beta.kubernetes.io/aws-load-balancer-security-groups": "sg-XXXXXXXXXXXXXXXXX",
219
250
  "some-service-annotation-2": "some-service-annotation-value-2",
220
251
  },
221
- ),
222
- custom_endpoint=spotinst.spark.OceanIngressCustomEndpointArgs(
223
- enabled=False,
224
- address="my-spark-cluster-nlb-8cbb8da7XXXXXXXX.elb.us-east-1.amazonaws.com",
225
- ),
226
- private_link=spotinst.spark.OceanIngressPrivateLinkArgs(
227
- enabled=False,
228
- vpc_endpoint_service="com.amazonaws.vpce.eu-north-1.vpce-svc-XXXXXXXXXXXXXXXXX",
229
- ),
230
- ),
231
- compute=spotinst.spark.OceanComputeArgs(
232
- create_vngs=True,
233
- use_taints=True,
234
- ),
235
- log_collection=spotinst.spark.OceanLogCollectionArgs(
236
- collect_app_logs=True,
237
- ),
238
- webhook=spotinst.spark.OceanWebhookArgs(
239
- use_host_network=False,
240
- host_network_ports=[25554],
241
- ),
242
- spark=spotinst.spark.OceanSparkArgs(
243
- additional_app_namespaces=[
252
+ },
253
+ "custom_endpoint": {
254
+ "enabled": False,
255
+ "address": "my-spark-cluster-nlb-8cbb8da7XXXXXXXX.elb.us-east-1.amazonaws.com",
256
+ },
257
+ "private_link": {
258
+ "enabled": False,
259
+ "vpc_endpoint_service": "com.amazonaws.vpce.eu-north-1.vpce-svc-XXXXXXXXXXXXXXXXX",
260
+ },
261
+ },
262
+ compute={
263
+ "create_vngs": True,
264
+ "use_taints": True,
265
+ },
266
+ log_collection={
267
+ "collect_app_logs": True,
268
+ },
269
+ webhook={
270
+ "use_host_network": False,
271
+ "host_network_ports": [25554],
272
+ },
273
+ spark={
274
+ "additional_app_namespaces": [
244
275
  "extra-spark-app-ns-1",
245
276
  "extra-spark-app-ns-2",
246
277
  ],
247
- ))
278
+ },
279
+ workspaces={
280
+ "storage": {
281
+ "defaults": {
282
+ "storage_class_name": "my-custom-storage-class",
283
+ },
284
+ },
285
+ })
248
286
  ```
249
287
 
250
288
  :param str resource_name: The name of the resource.
251
289
  :param pulumi.ResourceOptions opts: Options for the resource.
252
- :param pulumi.Input[str] ocean_cluster_id: - The ID of the Ocean cluster that Ocean for Apache Spark should be installed on.
290
+ :param pulumi.Input[_builtins.str] ocean_cluster_id: - The ID of the Ocean cluster that Ocean for Apache Spark should be installed on.
253
291
  """
254
292
  ...
255
293
  @overload
@@ -272,44 +310,51 @@ class Ocean(pulumi.CustomResource):
272
310
 
273
311
  example = spotinst.spark.Ocean("example",
274
312
  ocean_cluster_id="ocean-cluster-id",
275
- ingress=spotinst.spark.OceanIngressArgs(
276
- controller=spotinst.spark.OceanIngressControllerArgs(
277
- managed=True,
278
- ),
279
- load_balancer=spotinst.spark.OceanIngressLoadBalancerArgs(
280
- managed=True,
281
- target_group_arn="arn:aws:elasticloadbalancing:eu-north-1:XXXXXXXXXXXX:targetgroup/my-spark-cluster-nlb-tg/a38c2b83XXXXXXXX",
282
- service_annotations={
313
+ ingress={
314
+ "controller": {
315
+ "managed": True,
316
+ },
317
+ "load_balancer": {
318
+ "managed": True,
319
+ "target_group_arn": "arn:aws:elasticloadbalancing:eu-north-1:XXXXXXXXXXXX:targetgroup/my-spark-cluster-nlb-tg/a38c2b83XXXXXXXX",
320
+ "service_annotations": {
283
321
  "service.beta.kubernetes.io/aws-load-balancer-security-groups": "sg-XXXXXXXXXXXXXXXXX",
284
322
  "some-service-annotation-2": "some-service-annotation-value-2",
285
323
  },
286
- ),
287
- custom_endpoint=spotinst.spark.OceanIngressCustomEndpointArgs(
288
- enabled=False,
289
- address="my-spark-cluster-nlb-8cbb8da7XXXXXXXX.elb.us-east-1.amazonaws.com",
290
- ),
291
- private_link=spotinst.spark.OceanIngressPrivateLinkArgs(
292
- enabled=False,
293
- vpc_endpoint_service="com.amazonaws.vpce.eu-north-1.vpce-svc-XXXXXXXXXXXXXXXXX",
294
- ),
295
- ),
296
- compute=spotinst.spark.OceanComputeArgs(
297
- create_vngs=True,
298
- use_taints=True,
299
- ),
300
- log_collection=spotinst.spark.OceanLogCollectionArgs(
301
- collect_app_logs=True,
302
- ),
303
- webhook=spotinst.spark.OceanWebhookArgs(
304
- use_host_network=False,
305
- host_network_ports=[25554],
306
- ),
307
- spark=spotinst.spark.OceanSparkArgs(
308
- additional_app_namespaces=[
324
+ },
325
+ "custom_endpoint": {
326
+ "enabled": False,
327
+ "address": "my-spark-cluster-nlb-8cbb8da7XXXXXXXX.elb.us-east-1.amazonaws.com",
328
+ },
329
+ "private_link": {
330
+ "enabled": False,
331
+ "vpc_endpoint_service": "com.amazonaws.vpce.eu-north-1.vpce-svc-XXXXXXXXXXXXXXXXX",
332
+ },
333
+ },
334
+ compute={
335
+ "create_vngs": True,
336
+ "use_taints": True,
337
+ },
338
+ log_collection={
339
+ "collect_app_logs": True,
340
+ },
341
+ webhook={
342
+ "use_host_network": False,
343
+ "host_network_ports": [25554],
344
+ },
345
+ spark={
346
+ "additional_app_namespaces": [
309
347
  "extra-spark-app-ns-1",
310
348
  "extra-spark-app-ns-2",
311
349
  ],
312
- ))
350
+ },
351
+ workspaces={
352
+ "storage": {
353
+ "defaults": {
354
+ "storage_class_name": "my-custom-storage-class",
355
+ },
356
+ },
357
+ })
313
358
  ```
314
359
 
315
360
  :param str resource_name: The name of the resource.
@@ -327,12 +372,13 @@ class Ocean(pulumi.CustomResource):
327
372
  def _internal_init(__self__,
328
373
  resource_name: str,
329
374
  opts: Optional[pulumi.ResourceOptions] = None,
330
- compute: Optional[pulumi.Input[pulumi.InputType['OceanComputeArgs']]] = None,
331
- ingress: Optional[pulumi.Input[pulumi.InputType['OceanIngressArgs']]] = None,
332
- log_collection: Optional[pulumi.Input[pulumi.InputType['OceanLogCollectionArgs']]] = None,
333
- ocean_cluster_id: Optional[pulumi.Input[str]] = None,
334
- spark: Optional[pulumi.Input[pulumi.InputType['OceanSparkArgs']]] = None,
335
- webhook: Optional[pulumi.Input[pulumi.InputType['OceanWebhookArgs']]] = None,
375
+ compute: Optional[pulumi.Input[Union['OceanComputeArgs', 'OceanComputeArgsDict']]] = None,
376
+ ingress: Optional[pulumi.Input[Union['OceanIngressArgs', 'OceanIngressArgsDict']]] = None,
377
+ log_collection: Optional[pulumi.Input[Union['OceanLogCollectionArgs', 'OceanLogCollectionArgsDict']]] = None,
378
+ ocean_cluster_id: Optional[pulumi.Input[_builtins.str]] = None,
379
+ spark: Optional[pulumi.Input[Union['OceanSparkArgs', 'OceanSparkArgsDict']]] = None,
380
+ webhook: Optional[pulumi.Input[Union['OceanWebhookArgs', 'OceanWebhookArgsDict']]] = None,
381
+ workspaces: Optional[pulumi.Input[Union['OceanWorkspacesArgs', 'OceanWorkspacesArgsDict']]] = None,
336
382
  __props__=None):
337
383
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
338
384
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -350,6 +396,7 @@ class Ocean(pulumi.CustomResource):
350
396
  __props__.__dict__["ocean_cluster_id"] = ocean_cluster_id
351
397
  __props__.__dict__["spark"] = spark
352
398
  __props__.__dict__["webhook"] = webhook
399
+ __props__.__dict__["workspaces"] = workspaces
353
400
  super(Ocean, __self__).__init__(
354
401
  'spotinst:spark/ocean:Ocean',
355
402
  resource_name,
@@ -360,12 +407,13 @@ class Ocean(pulumi.CustomResource):
360
407
  def get(resource_name: str,
361
408
  id: pulumi.Input[str],
362
409
  opts: Optional[pulumi.ResourceOptions] = None,
363
- compute: Optional[pulumi.Input[pulumi.InputType['OceanComputeArgs']]] = None,
364
- ingress: Optional[pulumi.Input[pulumi.InputType['OceanIngressArgs']]] = None,
365
- log_collection: Optional[pulumi.Input[pulumi.InputType['OceanLogCollectionArgs']]] = None,
366
- ocean_cluster_id: Optional[pulumi.Input[str]] = None,
367
- spark: Optional[pulumi.Input[pulumi.InputType['OceanSparkArgs']]] = None,
368
- webhook: Optional[pulumi.Input[pulumi.InputType['OceanWebhookArgs']]] = None) -> 'Ocean':
410
+ compute: Optional[pulumi.Input[Union['OceanComputeArgs', 'OceanComputeArgsDict']]] = None,
411
+ ingress: Optional[pulumi.Input[Union['OceanIngressArgs', 'OceanIngressArgsDict']]] = None,
412
+ log_collection: Optional[pulumi.Input[Union['OceanLogCollectionArgs', 'OceanLogCollectionArgsDict']]] = None,
413
+ ocean_cluster_id: Optional[pulumi.Input[_builtins.str]] = None,
414
+ spark: Optional[pulumi.Input[Union['OceanSparkArgs', 'OceanSparkArgsDict']]] = None,
415
+ webhook: Optional[pulumi.Input[Union['OceanWebhookArgs', 'OceanWebhookArgsDict']]] = None,
416
+ workspaces: Optional[pulumi.Input[Union['OceanWorkspacesArgs', 'OceanWorkspacesArgsDict']]] = None) -> 'Ocean':
369
417
  """
370
418
  Get an existing Ocean resource's state with the given name, id, and optional extra
371
419
  properties used to qualify the lookup.
@@ -373,7 +421,7 @@ class Ocean(pulumi.CustomResource):
373
421
  :param str resource_name: The unique name of the resulting resource.
374
422
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
375
423
  :param pulumi.ResourceOptions opts: Options for the resource.
376
- :param pulumi.Input[str] ocean_cluster_id: - The ID of the Ocean cluster that Ocean for Apache Spark should be installed on.
424
+ :param pulumi.Input[_builtins.str] ocean_cluster_id: - The ID of the Ocean cluster that Ocean for Apache Spark should be installed on.
377
425
  """
378
426
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
379
427
 
@@ -385,38 +433,44 @@ class Ocean(pulumi.CustomResource):
385
433
  __props__.__dict__["ocean_cluster_id"] = ocean_cluster_id
386
434
  __props__.__dict__["spark"] = spark
387
435
  __props__.__dict__["webhook"] = webhook
436
+ __props__.__dict__["workspaces"] = workspaces
388
437
  return Ocean(resource_name, opts=opts, __props__=__props__)
389
438
 
390
- @property
439
+ @_builtins.property
391
440
  @pulumi.getter
392
441
  def compute(self) -> pulumi.Output['outputs.OceanCompute']:
393
442
  return pulumi.get(self, "compute")
394
443
 
395
- @property
444
+ @_builtins.property
396
445
  @pulumi.getter
397
446
  def ingress(self) -> pulumi.Output['outputs.OceanIngress']:
398
447
  return pulumi.get(self, "ingress")
399
448
 
400
- @property
449
+ @_builtins.property
401
450
  @pulumi.getter(name="logCollection")
402
451
  def log_collection(self) -> pulumi.Output['outputs.OceanLogCollection']:
403
452
  return pulumi.get(self, "log_collection")
404
453
 
405
- @property
454
+ @_builtins.property
406
455
  @pulumi.getter(name="oceanClusterId")
407
- def ocean_cluster_id(self) -> pulumi.Output[str]:
456
+ def ocean_cluster_id(self) -> pulumi.Output[_builtins.str]:
408
457
  """
409
458
  - The ID of the Ocean cluster that Ocean for Apache Spark should be installed on.
410
459
  """
411
460
  return pulumi.get(self, "ocean_cluster_id")
412
461
 
413
- @property
462
+ @_builtins.property
414
463
  @pulumi.getter
415
464
  def spark(self) -> pulumi.Output['outputs.OceanSpark']:
416
465
  return pulumi.get(self, "spark")
417
466
 
418
- @property
467
+ @_builtins.property
419
468
  @pulumi.getter
420
469
  def webhook(self) -> pulumi.Output['outputs.OceanWebhook']:
421
470
  return pulumi.get(self, "webhook")
422
471
 
472
+ @_builtins.property
473
+ @pulumi.getter
474
+ def workspaces(self) -> pulumi.Output['outputs.OceanWorkspaces']:
475
+ return pulumi.get(self, "workspaces")
476
+
@@ -1,12 +1,17 @@
1
1
  # coding=utf-8
2
- # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
3
  # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
4
 
5
- import copy
5
+ import builtins as _builtins
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
10
  from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
10
15
  from .. import _utilities
11
16
 
12
17
  __all__ = ['OceanVirtualNodeGroupArgs', 'OceanVirtualNodeGroup']
@@ -14,38 +19,38 @@ __all__ = ['OceanVirtualNodeGroupArgs', 'OceanVirtualNodeGroup']
14
19
  @pulumi.input_type
15
20
  class OceanVirtualNodeGroupArgs:
16
21
  def __init__(__self__, *,
17
- ocean_spark_cluster_id: pulumi.Input[str],
18
- virtual_node_group_id: pulumi.Input[str]):
22
+ ocean_spark_cluster_id: pulumi.Input[_builtins.str],
23
+ virtual_node_group_id: pulumi.Input[_builtins.str]):
19
24
  """
20
25
  The set of arguments for constructing a OceanVirtualNodeGroup resource.
21
26
  """
22
27
  pulumi.set(__self__, "ocean_spark_cluster_id", ocean_spark_cluster_id)
23
28
  pulumi.set(__self__, "virtual_node_group_id", virtual_node_group_id)
24
29
 
25
- @property
30
+ @_builtins.property
26
31
  @pulumi.getter(name="oceanSparkClusterId")
27
- def ocean_spark_cluster_id(self) -> pulumi.Input[str]:
32
+ def ocean_spark_cluster_id(self) -> pulumi.Input[_builtins.str]:
28
33
  return pulumi.get(self, "ocean_spark_cluster_id")
29
34
 
30
35
  @ocean_spark_cluster_id.setter
31
- def ocean_spark_cluster_id(self, value: pulumi.Input[str]):
36
+ def ocean_spark_cluster_id(self, value: pulumi.Input[_builtins.str]):
32
37
  pulumi.set(self, "ocean_spark_cluster_id", value)
33
38
 
34
- @property
39
+ @_builtins.property
35
40
  @pulumi.getter(name="virtualNodeGroupId")
36
- def virtual_node_group_id(self) -> pulumi.Input[str]:
41
+ def virtual_node_group_id(self) -> pulumi.Input[_builtins.str]:
37
42
  return pulumi.get(self, "virtual_node_group_id")
38
43
 
39
44
  @virtual_node_group_id.setter
40
- def virtual_node_group_id(self, value: pulumi.Input[str]):
45
+ def virtual_node_group_id(self, value: pulumi.Input[_builtins.str]):
41
46
  pulumi.set(self, "virtual_node_group_id", value)
42
47
 
43
48
 
44
49
  @pulumi.input_type
45
50
  class _OceanVirtualNodeGroupState:
46
51
  def __init__(__self__, *,
47
- ocean_spark_cluster_id: Optional[pulumi.Input[str]] = None,
48
- virtual_node_group_id: Optional[pulumi.Input[str]] = None):
52
+ ocean_spark_cluster_id: Optional[pulumi.Input[_builtins.str]] = None,
53
+ virtual_node_group_id: Optional[pulumi.Input[_builtins.str]] = None):
49
54
  """
50
55
  Input properties used for looking up and filtering OceanVirtualNodeGroup resources.
51
56
  """
@@ -54,32 +59,33 @@ class _OceanVirtualNodeGroupState:
54
59
  if virtual_node_group_id is not None:
55
60
  pulumi.set(__self__, "virtual_node_group_id", virtual_node_group_id)
56
61
 
57
- @property
62
+ @_builtins.property
58
63
  @pulumi.getter(name="oceanSparkClusterId")
59
- def ocean_spark_cluster_id(self) -> Optional[pulumi.Input[str]]:
64
+ def ocean_spark_cluster_id(self) -> Optional[pulumi.Input[_builtins.str]]:
60
65
  return pulumi.get(self, "ocean_spark_cluster_id")
61
66
 
62
67
  @ocean_spark_cluster_id.setter
63
- def ocean_spark_cluster_id(self, value: Optional[pulumi.Input[str]]):
68
+ def ocean_spark_cluster_id(self, value: Optional[pulumi.Input[_builtins.str]]):
64
69
  pulumi.set(self, "ocean_spark_cluster_id", value)
65
70
 
66
- @property
71
+ @_builtins.property
67
72
  @pulumi.getter(name="virtualNodeGroupId")
68
- def virtual_node_group_id(self) -> Optional[pulumi.Input[str]]:
73
+ def virtual_node_group_id(self) -> Optional[pulumi.Input[_builtins.str]]:
69
74
  return pulumi.get(self, "virtual_node_group_id")
70
75
 
71
76
  @virtual_node_group_id.setter
72
- def virtual_node_group_id(self, value: Optional[pulumi.Input[str]]):
77
+ def virtual_node_group_id(self, value: Optional[pulumi.Input[_builtins.str]]):
73
78
  pulumi.set(self, "virtual_node_group_id", value)
74
79
 
75
80
 
81
+ @pulumi.type_token("spotinst:spark/oceanVirtualNodeGroup:OceanVirtualNodeGroup")
76
82
  class OceanVirtualNodeGroup(pulumi.CustomResource):
77
83
  @overload
78
84
  def __init__(__self__,
79
85
  resource_name: str,
80
86
  opts: Optional[pulumi.ResourceOptions] = None,
81
- ocean_spark_cluster_id: Optional[pulumi.Input[str]] = None,
82
- virtual_node_group_id: Optional[pulumi.Input[str]] = None,
87
+ ocean_spark_cluster_id: Optional[pulumi.Input[_builtins.str]] = None,
88
+ virtual_node_group_id: Optional[pulumi.Input[_builtins.str]] = None,
83
89
  __props__=None):
84
90
  """
85
91
  Manage a dedicated Spotinst Ocean Spark Virtual Node Group resource
@@ -141,8 +147,8 @@ class OceanVirtualNodeGroup(pulumi.CustomResource):
141
147
  def _internal_init(__self__,
142
148
  resource_name: str,
143
149
  opts: Optional[pulumi.ResourceOptions] = None,
144
- ocean_spark_cluster_id: Optional[pulumi.Input[str]] = None,
145
- virtual_node_group_id: Optional[pulumi.Input[str]] = None,
150
+ ocean_spark_cluster_id: Optional[pulumi.Input[_builtins.str]] = None,
151
+ virtual_node_group_id: Optional[pulumi.Input[_builtins.str]] = None,
146
152
  __props__=None):
147
153
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
148
154
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -168,8 +174,8 @@ class OceanVirtualNodeGroup(pulumi.CustomResource):
168
174
  def get(resource_name: str,
169
175
  id: pulumi.Input[str],
170
176
  opts: Optional[pulumi.ResourceOptions] = None,
171
- ocean_spark_cluster_id: Optional[pulumi.Input[str]] = None,
172
- virtual_node_group_id: Optional[pulumi.Input[str]] = None) -> 'OceanVirtualNodeGroup':
177
+ ocean_spark_cluster_id: Optional[pulumi.Input[_builtins.str]] = None,
178
+ virtual_node_group_id: Optional[pulumi.Input[_builtins.str]] = None) -> 'OceanVirtualNodeGroup':
173
179
  """
174
180
  Get an existing OceanVirtualNodeGroup resource's state with the given name, id, and optional extra
175
181
  properties used to qualify the lookup.
@@ -186,13 +192,13 @@ class OceanVirtualNodeGroup(pulumi.CustomResource):
186
192
  __props__.__dict__["virtual_node_group_id"] = virtual_node_group_id
187
193
  return OceanVirtualNodeGroup(resource_name, opts=opts, __props__=__props__)
188
194
 
189
- @property
195
+ @_builtins.property
190
196
  @pulumi.getter(name="oceanSparkClusterId")
191
- def ocean_spark_cluster_id(self) -> pulumi.Output[str]:
197
+ def ocean_spark_cluster_id(self) -> pulumi.Output[_builtins.str]:
192
198
  return pulumi.get(self, "ocean_spark_cluster_id")
193
199
 
194
- @property
200
+ @_builtins.property
195
201
  @pulumi.getter(name="virtualNodeGroupId")
196
- def virtual_node_group_id(self) -> pulumi.Output[str]:
202
+ def virtual_node_group_id(self) -> pulumi.Output[_builtins.str]:
197
203
  return pulumi.get(self, "virtual_node_group_id")
198
204