pulumi-snowflake 0.58.0__py3-none-any.whl → 0.58.0a1722527984__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-snowflake might be problematic. Click here for more details.
- pulumi_snowflake/_inputs.py +125 -5857
- pulumi_snowflake/account.py +50 -28
- pulumi_snowflake/account_parameter.py +28 -0
- pulumi_snowflake/account_password_policy_attachment.py +30 -2
- pulumi_snowflake/account_role.py +32 -51
- pulumi_snowflake/alert.py +45 -33
- pulumi_snowflake/api_authentication_integration_with_authorization_code_grant.py +19 -39
- pulumi_snowflake/api_authentication_integration_with_client_credentials.py +19 -39
- pulumi_snowflake/api_authentication_integration_with_jwt_bearer.py +19 -39
- pulumi_snowflake/api_integration.py +54 -28
- pulumi_snowflake/cortex_search_service.py +0 -28
- pulumi_snowflake/database.py +148 -97
- pulumi_snowflake/database_old.py +77 -5
- pulumi_snowflake/database_role.py +42 -76
- pulumi_snowflake/dynamic_table.py +43 -33
- pulumi_snowflake/email_notification_integration.py +26 -28
- pulumi_snowflake/external_function.py +62 -38
- pulumi_snowflake/external_oauth_integration.py +21 -41
- pulumi_snowflake/external_table.py +58 -38
- pulumi_snowflake/failover_group.py +82 -38
- pulumi_snowflake/file_format.py +26 -28
- pulumi_snowflake/function.py +9 -33
- pulumi_snowflake/get_cortex_search_services.py +16 -16
- pulumi_snowflake/get_database_roles.py +38 -61
- pulumi_snowflake/get_databases.py +6 -6
- pulumi_snowflake/get_dynamic_tables.py +12 -12
- pulumi_snowflake/get_grants.py +138 -138
- pulumi_snowflake/get_network_policies.py +2 -2
- pulumi_snowflake/get_roles.py +2 -2
- pulumi_snowflake/get_schemas.py +8 -12
- pulumi_snowflake/get_security_integrations.py +2 -2
- pulumi_snowflake/get_streamlits.py +10 -10
- pulumi_snowflake/get_users.py +33 -96
- pulumi_snowflake/get_views.py +53 -92
- pulumi_snowflake/get_warehouses.py +2 -2
- pulumi_snowflake/grant_account_role.py +4 -0
- pulumi_snowflake/grant_application_role.py +4 -0
- pulumi_snowflake/grant_database_role.py +4 -0
- pulumi_snowflake/grant_ownership.py +5 -5
- pulumi_snowflake/grant_privileges_to_account_role.py +15 -15
- pulumi_snowflake/grant_privileges_to_database_role.py +12 -16
- pulumi_snowflake/grant_privileges_to_share.py +0 -47
- pulumi_snowflake/managed_account.py +4 -28
- pulumi_snowflake/masking_policy.py +89 -33
- pulumi_snowflake/materialized_view.py +39 -33
- pulumi_snowflake/network_policy.py +49 -47
- pulumi_snowflake/network_policy_attachment.py +30 -0
- pulumi_snowflake/network_rule.py +66 -28
- pulumi_snowflake/notification_integration.py +34 -28
- pulumi_snowflake/oauth_integration.py +34 -0
- pulumi_snowflake/oauth_integration_for_custom_clients.py +105 -39
- pulumi_snowflake/oauth_integration_for_partner_applications.py +19 -39
- pulumi_snowflake/object_parameter.py +103 -5
- pulumi_snowflake/outputs.py +4207 -12013
- pulumi_snowflake/password_policy.py +28 -28
- pulumi_snowflake/pipe.py +4 -28
- pulumi_snowflake/procedure.py +9 -33
- pulumi_snowflake/provider.py +16 -16
- pulumi_snowflake/pulumi-plugin.json +1 -1
- pulumi_snowflake/resource_monitor.py +48 -28
- pulumi_snowflake/role.py +32 -51
- pulumi_snowflake/row_access_policy.py +34 -28
- pulumi_snowflake/saml2_integration.py +19 -39
- pulumi_snowflake/saml_integration.py +34 -0
- pulumi_snowflake/schema.py +28 -52
- pulumi_snowflake/scim_integration.py +19 -39
- pulumi_snowflake/secondary_database.py +19 -35
- pulumi_snowflake/sequence.py +36 -4
- pulumi_snowflake/session_parameter.py +32 -0
- pulumi_snowflake/share.py +28 -28
- pulumi_snowflake/shared_database.py +15 -35
- pulumi_snowflake/stage.py +33 -33
- pulumi_snowflake/storage_integration.py +4 -28
- pulumi_snowflake/stream.py +4 -28
- pulumi_snowflake/streamlit.py +19 -39
- pulumi_snowflake/table.py +47 -43
- pulumi_snowflake/table_column_masking_policy_application.py +14 -2
- pulumi_snowflake/table_constraint.py +157 -5
- pulumi_snowflake/tag.py +40 -28
- pulumi_snowflake/tag_association.py +125 -5
- pulumi_snowflake/tag_masking_policy_association.py +4 -0
- pulumi_snowflake/task.py +92 -28
- pulumi_snowflake/unsafe_execute.py +20 -2
- pulumi_snowflake/user.py +373 -3346
- pulumi_snowflake/user_password_policy_attachment.py +36 -0
- pulumi_snowflake/view.py +185 -465
- pulumi_snowflake/warehouse.py +43 -39
- {pulumi_snowflake-0.58.0.dist-info → pulumi_snowflake-0.58.0a1722527984.dist-info}/METADATA +1 -1
- pulumi_snowflake-0.58.0a1722527984.dist-info/RECORD +129 -0
- {pulumi_snowflake-0.58.0.dist-info → pulumi_snowflake-0.58.0a1722527984.dist-info}/WHEEL +1 -1
- pulumi_snowflake-0.58.0.dist-info/RECORD +0 -129
- {pulumi_snowflake-0.58.0.dist-info → pulumi_snowflake-0.58.0a1722527984.dist-info}/top_level.txt +0 -0
pulumi_snowflake/table.py
CHANGED
|
@@ -195,10 +195,10 @@ class _TableState:
|
|
|
195
195
|
comment: Optional[pulumi.Input[str]] = None,
|
|
196
196
|
data_retention_time_in_days: Optional[pulumi.Input[int]] = None,
|
|
197
197
|
database: Optional[pulumi.Input[str]] = None,
|
|
198
|
-
fully_qualified_name: Optional[pulumi.Input[str]] = None,
|
|
199
198
|
name: Optional[pulumi.Input[str]] = None,
|
|
200
199
|
owner: Optional[pulumi.Input[str]] = None,
|
|
201
200
|
primary_key: Optional[pulumi.Input['TablePrimaryKeyArgs']] = None,
|
|
201
|
+
qualified_name: Optional[pulumi.Input[str]] = None,
|
|
202
202
|
schema: Optional[pulumi.Input[str]] = None,
|
|
203
203
|
tags: Optional[pulumi.Input[Sequence[pulumi.Input['TableTagArgs']]]] = None):
|
|
204
204
|
"""
|
|
@@ -209,10 +209,10 @@ class _TableState:
|
|
|
209
209
|
:param pulumi.Input[str] comment: Specifies a comment for the table.
|
|
210
210
|
:param pulumi.Input[int] data_retention_time_in_days: Specifies the retention period for the table so that Time Travel actions (SELECT, CLONE, UNDROP) can be performed on historical data in the table. If you wish to inherit the parent schema setting then pass in the schema attribute to this argument or do not fill this parameter at all; the default value for this field is -1, which is a fallback to use Snowflake default - in this case the schema value
|
|
211
211
|
:param pulumi.Input[str] database: The database in which to create the table.
|
|
212
|
-
:param pulumi.Input[str] fully_qualified_name: Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
|
|
213
212
|
:param pulumi.Input[str] name: Specifies the identifier for the table; must be unique for the database and schema in which the table is created.
|
|
214
213
|
:param pulumi.Input[str] owner: Name of the role that owns the table.
|
|
215
214
|
:param pulumi.Input['TablePrimaryKeyArgs'] primary_key: Definitions of primary key constraint to create on table
|
|
215
|
+
:param pulumi.Input[str] qualified_name: Qualified name of the table.
|
|
216
216
|
:param pulumi.Input[str] schema: The schema in which to create the table.
|
|
217
217
|
:param pulumi.Input[Sequence[pulumi.Input['TableTagArgs']]] tags: Definitions of a tag to associate with the resource.
|
|
218
218
|
"""
|
|
@@ -228,8 +228,6 @@ class _TableState:
|
|
|
228
228
|
pulumi.set(__self__, "data_retention_time_in_days", data_retention_time_in_days)
|
|
229
229
|
if database is not None:
|
|
230
230
|
pulumi.set(__self__, "database", database)
|
|
231
|
-
if fully_qualified_name is not None:
|
|
232
|
-
pulumi.set(__self__, "fully_qualified_name", fully_qualified_name)
|
|
233
231
|
if name is not None:
|
|
234
232
|
pulumi.set(__self__, "name", name)
|
|
235
233
|
if owner is not None:
|
|
@@ -239,6 +237,8 @@ class _TableState:
|
|
|
239
237
|
pulumi.log.warn("""primary_key is deprecated: Use TableConstraint instead""")
|
|
240
238
|
if primary_key is not None:
|
|
241
239
|
pulumi.set(__self__, "primary_key", primary_key)
|
|
240
|
+
if qualified_name is not None:
|
|
241
|
+
pulumi.set(__self__, "qualified_name", qualified_name)
|
|
242
242
|
if schema is not None:
|
|
243
243
|
pulumi.set(__self__, "schema", schema)
|
|
244
244
|
if tags is not None:
|
|
@@ -319,18 +319,6 @@ class _TableState:
|
|
|
319
319
|
def database(self, value: Optional[pulumi.Input[str]]):
|
|
320
320
|
pulumi.set(self, "database", value)
|
|
321
321
|
|
|
322
|
-
@property
|
|
323
|
-
@pulumi.getter(name="fullyQualifiedName")
|
|
324
|
-
def fully_qualified_name(self) -> Optional[pulumi.Input[str]]:
|
|
325
|
-
"""
|
|
326
|
-
Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
|
|
327
|
-
"""
|
|
328
|
-
return pulumi.get(self, "fully_qualified_name")
|
|
329
|
-
|
|
330
|
-
@fully_qualified_name.setter
|
|
331
|
-
def fully_qualified_name(self, value: Optional[pulumi.Input[str]]):
|
|
332
|
-
pulumi.set(self, "fully_qualified_name", value)
|
|
333
|
-
|
|
334
322
|
@property
|
|
335
323
|
@pulumi.getter
|
|
336
324
|
def name(self) -> Optional[pulumi.Input[str]]:
|
|
@@ -368,6 +356,18 @@ class _TableState:
|
|
|
368
356
|
def primary_key(self, value: Optional[pulumi.Input['TablePrimaryKeyArgs']]):
|
|
369
357
|
pulumi.set(self, "primary_key", value)
|
|
370
358
|
|
|
359
|
+
@property
|
|
360
|
+
@pulumi.getter(name="qualifiedName")
|
|
361
|
+
def qualified_name(self) -> Optional[pulumi.Input[str]]:
|
|
362
|
+
"""
|
|
363
|
+
Qualified name of the table.
|
|
364
|
+
"""
|
|
365
|
+
return pulumi.get(self, "qualified_name")
|
|
366
|
+
|
|
367
|
+
@qualified_name.setter
|
|
368
|
+
def qualified_name(self, value: Optional[pulumi.Input[str]]):
|
|
369
|
+
pulumi.set(self, "qualified_name", value)
|
|
370
|
+
|
|
371
371
|
@property
|
|
372
372
|
@pulumi.getter
|
|
373
373
|
def schema(self) -> Optional[pulumi.Input[str]]:
|
|
@@ -401,16 +401,18 @@ class Table(pulumi.CustomResource):
|
|
|
401
401
|
opts: Optional[pulumi.ResourceOptions] = None,
|
|
402
402
|
change_tracking: Optional[pulumi.Input[bool]] = None,
|
|
403
403
|
cluster_bies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
404
|
-
columns: Optional[pulumi.Input[Sequence[pulumi.Input[
|
|
404
|
+
columns: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['TableColumnArgs']]]]] = None,
|
|
405
405
|
comment: Optional[pulumi.Input[str]] = None,
|
|
406
406
|
data_retention_time_in_days: Optional[pulumi.Input[int]] = None,
|
|
407
407
|
database: Optional[pulumi.Input[str]] = None,
|
|
408
408
|
name: Optional[pulumi.Input[str]] = None,
|
|
409
|
-
primary_key: Optional[pulumi.Input[
|
|
409
|
+
primary_key: Optional[pulumi.Input[pulumi.InputType['TablePrimaryKeyArgs']]] = None,
|
|
410
410
|
schema: Optional[pulumi.Input[str]] = None,
|
|
411
|
-
tags: Optional[pulumi.Input[Sequence[pulumi.Input[
|
|
411
|
+
tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['TableTagArgs']]]]] = None,
|
|
412
412
|
__props__=None):
|
|
413
413
|
"""
|
|
414
|
+
## Example Usage
|
|
415
|
+
|
|
414
416
|
## Import
|
|
415
417
|
|
|
416
418
|
format is database name | schema name | table name
|
|
@@ -423,14 +425,14 @@ class Table(pulumi.CustomResource):
|
|
|
423
425
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
424
426
|
:param pulumi.Input[bool] change_tracking: Specifies whether to enable change tracking on the table. Default false.
|
|
425
427
|
:param pulumi.Input[Sequence[pulumi.Input[str]]] cluster_bies: A list of one or more table columns/expressions to be used as clustering key(s) for the table
|
|
426
|
-
:param pulumi.Input[Sequence[pulumi.Input[
|
|
428
|
+
:param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['TableColumnArgs']]]] columns: Definitions of a column to create in the table. Minimum one required.
|
|
427
429
|
:param pulumi.Input[str] comment: Specifies a comment for the table.
|
|
428
430
|
:param pulumi.Input[int] data_retention_time_in_days: Specifies the retention period for the table so that Time Travel actions (SELECT, CLONE, UNDROP) can be performed on historical data in the table. If you wish to inherit the parent schema setting then pass in the schema attribute to this argument or do not fill this parameter at all; the default value for this field is -1, which is a fallback to use Snowflake default - in this case the schema value
|
|
429
431
|
:param pulumi.Input[str] database: The database in which to create the table.
|
|
430
432
|
:param pulumi.Input[str] name: Specifies the identifier for the table; must be unique for the database and schema in which the table is created.
|
|
431
|
-
:param pulumi.Input[
|
|
433
|
+
:param pulumi.Input[pulumi.InputType['TablePrimaryKeyArgs']] primary_key: Definitions of primary key constraint to create on table
|
|
432
434
|
:param pulumi.Input[str] schema: The schema in which to create the table.
|
|
433
|
-
:param pulumi.Input[Sequence[pulumi.Input[
|
|
435
|
+
:param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['TableTagArgs']]]] tags: Definitions of a tag to associate with the resource.
|
|
434
436
|
"""
|
|
435
437
|
...
|
|
436
438
|
@overload
|
|
@@ -439,6 +441,8 @@ class Table(pulumi.CustomResource):
|
|
|
439
441
|
args: TableArgs,
|
|
440
442
|
opts: Optional[pulumi.ResourceOptions] = None):
|
|
441
443
|
"""
|
|
444
|
+
## Example Usage
|
|
445
|
+
|
|
442
446
|
## Import
|
|
443
447
|
|
|
444
448
|
format is database name | schema name | table name
|
|
@@ -464,14 +468,14 @@ class Table(pulumi.CustomResource):
|
|
|
464
468
|
opts: Optional[pulumi.ResourceOptions] = None,
|
|
465
469
|
change_tracking: Optional[pulumi.Input[bool]] = None,
|
|
466
470
|
cluster_bies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
467
|
-
columns: Optional[pulumi.Input[Sequence[pulumi.Input[
|
|
471
|
+
columns: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['TableColumnArgs']]]]] = None,
|
|
468
472
|
comment: Optional[pulumi.Input[str]] = None,
|
|
469
473
|
data_retention_time_in_days: Optional[pulumi.Input[int]] = None,
|
|
470
474
|
database: Optional[pulumi.Input[str]] = None,
|
|
471
475
|
name: Optional[pulumi.Input[str]] = None,
|
|
472
|
-
primary_key: Optional[pulumi.Input[
|
|
476
|
+
primary_key: Optional[pulumi.Input[pulumi.InputType['TablePrimaryKeyArgs']]] = None,
|
|
473
477
|
schema: Optional[pulumi.Input[str]] = None,
|
|
474
|
-
tags: Optional[pulumi.Input[Sequence[pulumi.Input[
|
|
478
|
+
tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['TableTagArgs']]]]] = None,
|
|
475
479
|
__props__=None):
|
|
476
480
|
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
|
477
481
|
if not isinstance(opts, pulumi.ResourceOptions):
|
|
@@ -497,8 +501,8 @@ class Table(pulumi.CustomResource):
|
|
|
497
501
|
raise TypeError("Missing required property 'schema'")
|
|
498
502
|
__props__.__dict__["schema"] = schema
|
|
499
503
|
__props__.__dict__["tags"] = tags
|
|
500
|
-
__props__.__dict__["fully_qualified_name"] = None
|
|
501
504
|
__props__.__dict__["owner"] = None
|
|
505
|
+
__props__.__dict__["qualified_name"] = None
|
|
502
506
|
super(Table, __self__).__init__(
|
|
503
507
|
'snowflake:index/table:Table',
|
|
504
508
|
resource_name,
|
|
@@ -511,16 +515,16 @@ class Table(pulumi.CustomResource):
|
|
|
511
515
|
opts: Optional[pulumi.ResourceOptions] = None,
|
|
512
516
|
change_tracking: Optional[pulumi.Input[bool]] = None,
|
|
513
517
|
cluster_bies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
514
|
-
columns: Optional[pulumi.Input[Sequence[pulumi.Input[
|
|
518
|
+
columns: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['TableColumnArgs']]]]] = None,
|
|
515
519
|
comment: Optional[pulumi.Input[str]] = None,
|
|
516
520
|
data_retention_time_in_days: Optional[pulumi.Input[int]] = None,
|
|
517
521
|
database: Optional[pulumi.Input[str]] = None,
|
|
518
|
-
fully_qualified_name: Optional[pulumi.Input[str]] = None,
|
|
519
522
|
name: Optional[pulumi.Input[str]] = None,
|
|
520
523
|
owner: Optional[pulumi.Input[str]] = None,
|
|
521
|
-
primary_key: Optional[pulumi.Input[
|
|
524
|
+
primary_key: Optional[pulumi.Input[pulumi.InputType['TablePrimaryKeyArgs']]] = None,
|
|
525
|
+
qualified_name: Optional[pulumi.Input[str]] = None,
|
|
522
526
|
schema: Optional[pulumi.Input[str]] = None,
|
|
523
|
-
tags: Optional[pulumi.Input[Sequence[pulumi.Input[
|
|
527
|
+
tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['TableTagArgs']]]]] = None) -> 'Table':
|
|
524
528
|
"""
|
|
525
529
|
Get an existing Table resource's state with the given name, id, and optional extra
|
|
526
530
|
properties used to qualify the lookup.
|
|
@@ -530,16 +534,16 @@ class Table(pulumi.CustomResource):
|
|
|
530
534
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
531
535
|
:param pulumi.Input[bool] change_tracking: Specifies whether to enable change tracking on the table. Default false.
|
|
532
536
|
:param pulumi.Input[Sequence[pulumi.Input[str]]] cluster_bies: A list of one or more table columns/expressions to be used as clustering key(s) for the table
|
|
533
|
-
:param pulumi.Input[Sequence[pulumi.Input[
|
|
537
|
+
:param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['TableColumnArgs']]]] columns: Definitions of a column to create in the table. Minimum one required.
|
|
534
538
|
:param pulumi.Input[str] comment: Specifies a comment for the table.
|
|
535
539
|
:param pulumi.Input[int] data_retention_time_in_days: Specifies the retention period for the table so that Time Travel actions (SELECT, CLONE, UNDROP) can be performed on historical data in the table. If you wish to inherit the parent schema setting then pass in the schema attribute to this argument or do not fill this parameter at all; the default value for this field is -1, which is a fallback to use Snowflake default - in this case the schema value
|
|
536
540
|
:param pulumi.Input[str] database: The database in which to create the table.
|
|
537
|
-
:param pulumi.Input[str] fully_qualified_name: Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
|
|
538
541
|
:param pulumi.Input[str] name: Specifies the identifier for the table; must be unique for the database and schema in which the table is created.
|
|
539
542
|
:param pulumi.Input[str] owner: Name of the role that owns the table.
|
|
540
|
-
:param pulumi.Input[
|
|
543
|
+
:param pulumi.Input[pulumi.InputType['TablePrimaryKeyArgs']] primary_key: Definitions of primary key constraint to create on table
|
|
544
|
+
:param pulumi.Input[str] qualified_name: Qualified name of the table.
|
|
541
545
|
:param pulumi.Input[str] schema: The schema in which to create the table.
|
|
542
|
-
:param pulumi.Input[Sequence[pulumi.Input[
|
|
546
|
+
:param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['TableTagArgs']]]] tags: Definitions of a tag to associate with the resource.
|
|
543
547
|
"""
|
|
544
548
|
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
|
545
549
|
|
|
@@ -551,10 +555,10 @@ class Table(pulumi.CustomResource):
|
|
|
551
555
|
__props__.__dict__["comment"] = comment
|
|
552
556
|
__props__.__dict__["data_retention_time_in_days"] = data_retention_time_in_days
|
|
553
557
|
__props__.__dict__["database"] = database
|
|
554
|
-
__props__.__dict__["fully_qualified_name"] = fully_qualified_name
|
|
555
558
|
__props__.__dict__["name"] = name
|
|
556
559
|
__props__.__dict__["owner"] = owner
|
|
557
560
|
__props__.__dict__["primary_key"] = primary_key
|
|
561
|
+
__props__.__dict__["qualified_name"] = qualified_name
|
|
558
562
|
__props__.__dict__["schema"] = schema
|
|
559
563
|
__props__.__dict__["tags"] = tags
|
|
560
564
|
return Table(resource_name, opts=opts, __props__=__props__)
|
|
@@ -607,14 +611,6 @@ class Table(pulumi.CustomResource):
|
|
|
607
611
|
"""
|
|
608
612
|
return pulumi.get(self, "database")
|
|
609
613
|
|
|
610
|
-
@property
|
|
611
|
-
@pulumi.getter(name="fullyQualifiedName")
|
|
612
|
-
def fully_qualified_name(self) -> pulumi.Output[str]:
|
|
613
|
-
"""
|
|
614
|
-
Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
|
|
615
|
-
"""
|
|
616
|
-
return pulumi.get(self, "fully_qualified_name")
|
|
617
|
-
|
|
618
614
|
@property
|
|
619
615
|
@pulumi.getter
|
|
620
616
|
def name(self) -> pulumi.Output[str]:
|
|
@@ -640,6 +636,14 @@ class Table(pulumi.CustomResource):
|
|
|
640
636
|
"""
|
|
641
637
|
return pulumi.get(self, "primary_key")
|
|
642
638
|
|
|
639
|
+
@property
|
|
640
|
+
@pulumi.getter(name="qualifiedName")
|
|
641
|
+
def qualified_name(self) -> pulumi.Output[str]:
|
|
642
|
+
"""
|
|
643
|
+
Qualified name of the table.
|
|
644
|
+
"""
|
|
645
|
+
return pulumi.get(self, "qualified_name")
|
|
646
|
+
|
|
643
647
|
@property
|
|
644
648
|
@pulumi.getter
|
|
645
649
|
def schema(self) -> pulumi.Output[str]:
|
|
@@ -130,7 +130,13 @@ class TableColumnMaskingPolicyApplication(pulumi.CustomResource):
|
|
|
130
130
|
table: Optional[pulumi.Input[str]] = None,
|
|
131
131
|
__props__=None):
|
|
132
132
|
"""
|
|
133
|
-
|
|
133
|
+
Applies a masking policy to a table column.
|
|
134
|
+
|
|
135
|
+
Only one masking policy may be applied per table column, hence only one `TableColumnMaskingPolicyApplication` resources may be present per table column.
|
|
136
|
+
Using two or more `TableColumnMaskingPolicyApplication` resources for the same table column will result in the last one overriding any previously applied masking policies and unresolvable diffs in pulumi preview.
|
|
137
|
+
|
|
138
|
+
When using this resource to manage a table column's masking policy make sure to ignore changes to the column's masking policy in the table definition, otherwise the two resources would conflict. See example below.
|
|
139
|
+
|
|
134
140
|
:param str resource_name: The name of the resource.
|
|
135
141
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
136
142
|
:param pulumi.Input[str] column: The column to apply the masking policy to.
|
|
@@ -144,7 +150,13 @@ class TableColumnMaskingPolicyApplication(pulumi.CustomResource):
|
|
|
144
150
|
args: TableColumnMaskingPolicyApplicationArgs,
|
|
145
151
|
opts: Optional[pulumi.ResourceOptions] = None):
|
|
146
152
|
"""
|
|
147
|
-
|
|
153
|
+
Applies a masking policy to a table column.
|
|
154
|
+
|
|
155
|
+
Only one masking policy may be applied per table column, hence only one `TableColumnMaskingPolicyApplication` resources may be present per table column.
|
|
156
|
+
Using two or more `TableColumnMaskingPolicyApplication` resources for the same table column will result in the last one overriding any previously applied masking policies and unresolvable diffs in pulumi preview.
|
|
157
|
+
|
|
158
|
+
When using this resource to manage a table column's masking policy make sure to ignore changes to the column's masking policy in the table definition, otherwise the two resources would conflict. See example below.
|
|
159
|
+
|
|
148
160
|
:param str resource_name: The name of the resource.
|
|
149
161
|
:param TableColumnMaskingPolicyApplicationArgs args: The arguments to use to populate this resource's properties.
|
|
150
162
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
@@ -428,7 +428,7 @@ class TableConstraint(pulumi.CustomResource):
|
|
|
428
428
|
deferrable: Optional[pulumi.Input[bool]] = None,
|
|
429
429
|
enable: Optional[pulumi.Input[bool]] = None,
|
|
430
430
|
enforced: Optional[pulumi.Input[bool]] = None,
|
|
431
|
-
foreign_key_properties: Optional[pulumi.Input[
|
|
431
|
+
foreign_key_properties: Optional[pulumi.Input[pulumi.InputType['TableConstraintForeignKeyPropertiesArgs']]] = None,
|
|
432
432
|
initially: Optional[pulumi.Input[str]] = None,
|
|
433
433
|
name: Optional[pulumi.Input[str]] = None,
|
|
434
434
|
rely: Optional[pulumi.Input[bool]] = None,
|
|
@@ -437,6 +437,82 @@ class TableConstraint(pulumi.CustomResource):
|
|
|
437
437
|
validate: Optional[pulumi.Input[bool]] = None,
|
|
438
438
|
__props__=None):
|
|
439
439
|
"""
|
|
440
|
+
## Example Usage
|
|
441
|
+
|
|
442
|
+
```python
|
|
443
|
+
import pulumi
|
|
444
|
+
import pulumi_snowflake as snowflake
|
|
445
|
+
|
|
446
|
+
d = snowflake.Database("d", name="some_db")
|
|
447
|
+
s = snowflake.Schema("s",
|
|
448
|
+
name="some_schema",
|
|
449
|
+
database=d.name)
|
|
450
|
+
t = snowflake.Table("t",
|
|
451
|
+
database=d.name,
|
|
452
|
+
schema=s.name,
|
|
453
|
+
name="some_table",
|
|
454
|
+
columns=[
|
|
455
|
+
snowflake.TableColumnArgs(
|
|
456
|
+
name="col1",
|
|
457
|
+
type="text",
|
|
458
|
+
nullable=False,
|
|
459
|
+
),
|
|
460
|
+
snowflake.TableColumnArgs(
|
|
461
|
+
name="col2",
|
|
462
|
+
type="text",
|
|
463
|
+
nullable=False,
|
|
464
|
+
),
|
|
465
|
+
snowflake.TableColumnArgs(
|
|
466
|
+
name="col3",
|
|
467
|
+
type="text",
|
|
468
|
+
nullable=False,
|
|
469
|
+
),
|
|
470
|
+
])
|
|
471
|
+
fk_t = snowflake.Table("fk_t",
|
|
472
|
+
database=d.name,
|
|
473
|
+
schema=s.name,
|
|
474
|
+
name="fk_table",
|
|
475
|
+
columns=[
|
|
476
|
+
snowflake.TableColumnArgs(
|
|
477
|
+
name="fk_col1",
|
|
478
|
+
type="text",
|
|
479
|
+
nullable=False,
|
|
480
|
+
),
|
|
481
|
+
snowflake.TableColumnArgs(
|
|
482
|
+
name="fk_col2",
|
|
483
|
+
type="text",
|
|
484
|
+
nullable=False,
|
|
485
|
+
),
|
|
486
|
+
])
|
|
487
|
+
primary_key = snowflake.TableConstraint("primary_key",
|
|
488
|
+
name="myconstraint",
|
|
489
|
+
type="PRIMARY KEY",
|
|
490
|
+
table_id=t.qualified_name,
|
|
491
|
+
columns=["col1"],
|
|
492
|
+
comment="hello world")
|
|
493
|
+
foreign_key = snowflake.TableConstraint("foreign_key",
|
|
494
|
+
name="myconstraintfk",
|
|
495
|
+
type="FOREIGN KEY",
|
|
496
|
+
table_id=t.qualified_name,
|
|
497
|
+
columns=["col2"],
|
|
498
|
+
foreign_key_properties=snowflake.TableConstraintForeignKeyPropertiesArgs(
|
|
499
|
+
references=snowflake.TableConstraintForeignKeyPropertiesReferencesArgs(
|
|
500
|
+
table_id=fk_t.qualified_name,
|
|
501
|
+
columns=["fk_col1"],
|
|
502
|
+
),
|
|
503
|
+
),
|
|
504
|
+
enforced=False,
|
|
505
|
+
deferrable=False,
|
|
506
|
+
initially="IMMEDIATE",
|
|
507
|
+
comment="hello fk")
|
|
508
|
+
unique = snowflake.TableConstraint("unique",
|
|
509
|
+
name="unique",
|
|
510
|
+
type="UNIQUE",
|
|
511
|
+
table_id=t.qualified_name,
|
|
512
|
+
columns=["col3"],
|
|
513
|
+
comment="hello unique")
|
|
514
|
+
```
|
|
515
|
+
|
|
440
516
|
## Import
|
|
441
517
|
|
|
442
518
|
```sh
|
|
@@ -450,7 +526,7 @@ class TableConstraint(pulumi.CustomResource):
|
|
|
450
526
|
:param pulumi.Input[bool] deferrable: Whether the constraint is deferrable
|
|
451
527
|
:param pulumi.Input[bool] enable: Specifies whether the constraint is enabled or disabled. These properties are provided for compatibility with Oracle.
|
|
452
528
|
:param pulumi.Input[bool] enforced: Whether the constraint is enforced
|
|
453
|
-
:param pulumi.Input[
|
|
529
|
+
:param pulumi.Input[pulumi.InputType['TableConstraintForeignKeyPropertiesArgs']] foreign_key_properties: Additional properties when type is set to foreign key. Not applicable for primary/unique keys
|
|
454
530
|
:param pulumi.Input[str] initially: Whether the constraint is initially deferred or immediate
|
|
455
531
|
:param pulumi.Input[str] name: Name of constraint
|
|
456
532
|
:param pulumi.Input[bool] rely: Specifies whether a constraint in NOVALIDATE mode is taken into account during query rewrite.
|
|
@@ -465,6 +541,82 @@ class TableConstraint(pulumi.CustomResource):
|
|
|
465
541
|
args: TableConstraintArgs,
|
|
466
542
|
opts: Optional[pulumi.ResourceOptions] = None):
|
|
467
543
|
"""
|
|
544
|
+
## Example Usage
|
|
545
|
+
|
|
546
|
+
```python
|
|
547
|
+
import pulumi
|
|
548
|
+
import pulumi_snowflake as snowflake
|
|
549
|
+
|
|
550
|
+
d = snowflake.Database("d", name="some_db")
|
|
551
|
+
s = snowflake.Schema("s",
|
|
552
|
+
name="some_schema",
|
|
553
|
+
database=d.name)
|
|
554
|
+
t = snowflake.Table("t",
|
|
555
|
+
database=d.name,
|
|
556
|
+
schema=s.name,
|
|
557
|
+
name="some_table",
|
|
558
|
+
columns=[
|
|
559
|
+
snowflake.TableColumnArgs(
|
|
560
|
+
name="col1",
|
|
561
|
+
type="text",
|
|
562
|
+
nullable=False,
|
|
563
|
+
),
|
|
564
|
+
snowflake.TableColumnArgs(
|
|
565
|
+
name="col2",
|
|
566
|
+
type="text",
|
|
567
|
+
nullable=False,
|
|
568
|
+
),
|
|
569
|
+
snowflake.TableColumnArgs(
|
|
570
|
+
name="col3",
|
|
571
|
+
type="text",
|
|
572
|
+
nullable=False,
|
|
573
|
+
),
|
|
574
|
+
])
|
|
575
|
+
fk_t = snowflake.Table("fk_t",
|
|
576
|
+
database=d.name,
|
|
577
|
+
schema=s.name,
|
|
578
|
+
name="fk_table",
|
|
579
|
+
columns=[
|
|
580
|
+
snowflake.TableColumnArgs(
|
|
581
|
+
name="fk_col1",
|
|
582
|
+
type="text",
|
|
583
|
+
nullable=False,
|
|
584
|
+
),
|
|
585
|
+
snowflake.TableColumnArgs(
|
|
586
|
+
name="fk_col2",
|
|
587
|
+
type="text",
|
|
588
|
+
nullable=False,
|
|
589
|
+
),
|
|
590
|
+
])
|
|
591
|
+
primary_key = snowflake.TableConstraint("primary_key",
|
|
592
|
+
name="myconstraint",
|
|
593
|
+
type="PRIMARY KEY",
|
|
594
|
+
table_id=t.qualified_name,
|
|
595
|
+
columns=["col1"],
|
|
596
|
+
comment="hello world")
|
|
597
|
+
foreign_key = snowflake.TableConstraint("foreign_key",
|
|
598
|
+
name="myconstraintfk",
|
|
599
|
+
type="FOREIGN KEY",
|
|
600
|
+
table_id=t.qualified_name,
|
|
601
|
+
columns=["col2"],
|
|
602
|
+
foreign_key_properties=snowflake.TableConstraintForeignKeyPropertiesArgs(
|
|
603
|
+
references=snowflake.TableConstraintForeignKeyPropertiesReferencesArgs(
|
|
604
|
+
table_id=fk_t.qualified_name,
|
|
605
|
+
columns=["fk_col1"],
|
|
606
|
+
),
|
|
607
|
+
),
|
|
608
|
+
enforced=False,
|
|
609
|
+
deferrable=False,
|
|
610
|
+
initially="IMMEDIATE",
|
|
611
|
+
comment="hello fk")
|
|
612
|
+
unique = snowflake.TableConstraint("unique",
|
|
613
|
+
name="unique",
|
|
614
|
+
type="UNIQUE",
|
|
615
|
+
table_id=t.qualified_name,
|
|
616
|
+
columns=["col3"],
|
|
617
|
+
comment="hello unique")
|
|
618
|
+
```
|
|
619
|
+
|
|
468
620
|
## Import
|
|
469
621
|
|
|
470
622
|
```sh
|
|
@@ -491,7 +643,7 @@ class TableConstraint(pulumi.CustomResource):
|
|
|
491
643
|
deferrable: Optional[pulumi.Input[bool]] = None,
|
|
492
644
|
enable: Optional[pulumi.Input[bool]] = None,
|
|
493
645
|
enforced: Optional[pulumi.Input[bool]] = None,
|
|
494
|
-
foreign_key_properties: Optional[pulumi.Input[
|
|
646
|
+
foreign_key_properties: Optional[pulumi.Input[pulumi.InputType['TableConstraintForeignKeyPropertiesArgs']]] = None,
|
|
495
647
|
initially: Optional[pulumi.Input[str]] = None,
|
|
496
648
|
name: Optional[pulumi.Input[str]] = None,
|
|
497
649
|
rely: Optional[pulumi.Input[bool]] = None,
|
|
@@ -540,7 +692,7 @@ class TableConstraint(pulumi.CustomResource):
|
|
|
540
692
|
deferrable: Optional[pulumi.Input[bool]] = None,
|
|
541
693
|
enable: Optional[pulumi.Input[bool]] = None,
|
|
542
694
|
enforced: Optional[pulumi.Input[bool]] = None,
|
|
543
|
-
foreign_key_properties: Optional[pulumi.Input[
|
|
695
|
+
foreign_key_properties: Optional[pulumi.Input[pulumi.InputType['TableConstraintForeignKeyPropertiesArgs']]] = None,
|
|
544
696
|
initially: Optional[pulumi.Input[str]] = None,
|
|
545
697
|
name: Optional[pulumi.Input[str]] = None,
|
|
546
698
|
rely: Optional[pulumi.Input[bool]] = None,
|
|
@@ -559,7 +711,7 @@ class TableConstraint(pulumi.CustomResource):
|
|
|
559
711
|
:param pulumi.Input[bool] deferrable: Whether the constraint is deferrable
|
|
560
712
|
:param pulumi.Input[bool] enable: Specifies whether the constraint is enabled or disabled. These properties are provided for compatibility with Oracle.
|
|
561
713
|
:param pulumi.Input[bool] enforced: Whether the constraint is enforced
|
|
562
|
-
:param pulumi.Input[
|
|
714
|
+
:param pulumi.Input[pulumi.InputType['TableConstraintForeignKeyPropertiesArgs']] foreign_key_properties: Additional properties when type is set to foreign key. Not applicable for primary/unique keys
|
|
563
715
|
:param pulumi.Input[str] initially: Whether the constraint is initially deferred or immediate
|
|
564
716
|
:param pulumi.Input[str] name: Name of constraint
|
|
565
717
|
:param pulumi.Input[bool] rely: Specifies whether a constraint in NOVALIDATE mode is taken into account during query rewrite.
|
pulumi_snowflake/tag.py
CHANGED
|
@@ -103,7 +103,6 @@ class _TagState:
|
|
|
103
103
|
allowed_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
104
104
|
comment: Optional[pulumi.Input[str]] = None,
|
|
105
105
|
database: Optional[pulumi.Input[str]] = None,
|
|
106
|
-
fully_qualified_name: Optional[pulumi.Input[str]] = None,
|
|
107
106
|
name: Optional[pulumi.Input[str]] = None,
|
|
108
107
|
schema: Optional[pulumi.Input[str]] = None):
|
|
109
108
|
"""
|
|
@@ -111,7 +110,6 @@ class _TagState:
|
|
|
111
110
|
:param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_values: List of allowed values for the tag.
|
|
112
111
|
:param pulumi.Input[str] comment: Specifies a comment for the tag.
|
|
113
112
|
:param pulumi.Input[str] database: The database in which to create the tag.
|
|
114
|
-
:param pulumi.Input[str] fully_qualified_name: Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
|
|
115
113
|
:param pulumi.Input[str] name: Specifies the identifier for the tag; must be unique for the database in which the tag is created.
|
|
116
114
|
:param pulumi.Input[str] schema: The schema in which to create the tag.
|
|
117
115
|
"""
|
|
@@ -121,8 +119,6 @@ class _TagState:
|
|
|
121
119
|
pulumi.set(__self__, "comment", comment)
|
|
122
120
|
if database is not None:
|
|
123
121
|
pulumi.set(__self__, "database", database)
|
|
124
|
-
if fully_qualified_name is not None:
|
|
125
|
-
pulumi.set(__self__, "fully_qualified_name", fully_qualified_name)
|
|
126
122
|
if name is not None:
|
|
127
123
|
pulumi.set(__self__, "name", name)
|
|
128
124
|
if schema is not None:
|
|
@@ -164,18 +160,6 @@ class _TagState:
|
|
|
164
160
|
def database(self, value: Optional[pulumi.Input[str]]):
|
|
165
161
|
pulumi.set(self, "database", value)
|
|
166
162
|
|
|
167
|
-
@property
|
|
168
|
-
@pulumi.getter(name="fullyQualifiedName")
|
|
169
|
-
def fully_qualified_name(self) -> Optional[pulumi.Input[str]]:
|
|
170
|
-
"""
|
|
171
|
-
Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
|
|
172
|
-
"""
|
|
173
|
-
return pulumi.get(self, "fully_qualified_name")
|
|
174
|
-
|
|
175
|
-
@fully_qualified_name.setter
|
|
176
|
-
def fully_qualified_name(self, value: Optional[pulumi.Input[str]]):
|
|
177
|
-
pulumi.set(self, "fully_qualified_name", value)
|
|
178
|
-
|
|
179
163
|
@property
|
|
180
164
|
@pulumi.getter
|
|
181
165
|
def name(self) -> Optional[pulumi.Input[str]]:
|
|
@@ -213,6 +197,26 @@ class Tag(pulumi.CustomResource):
|
|
|
213
197
|
schema: Optional[pulumi.Input[str]] = None,
|
|
214
198
|
__props__=None):
|
|
215
199
|
"""
|
|
200
|
+
## Example Usage
|
|
201
|
+
|
|
202
|
+
```python
|
|
203
|
+
import pulumi
|
|
204
|
+
import pulumi_snowflake as snowflake
|
|
205
|
+
|
|
206
|
+
database = snowflake.Database("database", name="database")
|
|
207
|
+
schema = snowflake.Schema("schema",
|
|
208
|
+
name="schema",
|
|
209
|
+
database=database.name)
|
|
210
|
+
tag = snowflake.Tag("tag",
|
|
211
|
+
name="cost_center",
|
|
212
|
+
database=database.name,
|
|
213
|
+
schema=schema.name,
|
|
214
|
+
allowed_values=[
|
|
215
|
+
"finance",
|
|
216
|
+
"engineering",
|
|
217
|
+
])
|
|
218
|
+
```
|
|
219
|
+
|
|
216
220
|
## Import
|
|
217
221
|
|
|
218
222
|
format is database name | schema name | tag name
|
|
@@ -236,6 +240,26 @@ class Tag(pulumi.CustomResource):
|
|
|
236
240
|
args: TagArgs,
|
|
237
241
|
opts: Optional[pulumi.ResourceOptions] = None):
|
|
238
242
|
"""
|
|
243
|
+
## Example Usage
|
|
244
|
+
|
|
245
|
+
```python
|
|
246
|
+
import pulumi
|
|
247
|
+
import pulumi_snowflake as snowflake
|
|
248
|
+
|
|
249
|
+
database = snowflake.Database("database", name="database")
|
|
250
|
+
schema = snowflake.Schema("schema",
|
|
251
|
+
name="schema",
|
|
252
|
+
database=database.name)
|
|
253
|
+
tag = snowflake.Tag("tag",
|
|
254
|
+
name="cost_center",
|
|
255
|
+
database=database.name,
|
|
256
|
+
schema=schema.name,
|
|
257
|
+
allowed_values=[
|
|
258
|
+
"finance",
|
|
259
|
+
"engineering",
|
|
260
|
+
])
|
|
261
|
+
```
|
|
262
|
+
|
|
239
263
|
## Import
|
|
240
264
|
|
|
241
265
|
format is database name | schema name | tag name
|
|
@@ -282,7 +306,6 @@ class Tag(pulumi.CustomResource):
|
|
|
282
306
|
if schema is None and not opts.urn:
|
|
283
307
|
raise TypeError("Missing required property 'schema'")
|
|
284
308
|
__props__.__dict__["schema"] = schema
|
|
285
|
-
__props__.__dict__["fully_qualified_name"] = None
|
|
286
309
|
super(Tag, __self__).__init__(
|
|
287
310
|
'snowflake:index/tag:Tag',
|
|
288
311
|
resource_name,
|
|
@@ -296,7 +319,6 @@ class Tag(pulumi.CustomResource):
|
|
|
296
319
|
allowed_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
297
320
|
comment: Optional[pulumi.Input[str]] = None,
|
|
298
321
|
database: Optional[pulumi.Input[str]] = None,
|
|
299
|
-
fully_qualified_name: Optional[pulumi.Input[str]] = None,
|
|
300
322
|
name: Optional[pulumi.Input[str]] = None,
|
|
301
323
|
schema: Optional[pulumi.Input[str]] = None) -> 'Tag':
|
|
302
324
|
"""
|
|
@@ -309,7 +331,6 @@ class Tag(pulumi.CustomResource):
|
|
|
309
331
|
:param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_values: List of allowed values for the tag.
|
|
310
332
|
:param pulumi.Input[str] comment: Specifies a comment for the tag.
|
|
311
333
|
:param pulumi.Input[str] database: The database in which to create the tag.
|
|
312
|
-
:param pulumi.Input[str] fully_qualified_name: Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
|
|
313
334
|
:param pulumi.Input[str] name: Specifies the identifier for the tag; must be unique for the database in which the tag is created.
|
|
314
335
|
:param pulumi.Input[str] schema: The schema in which to create the tag.
|
|
315
336
|
"""
|
|
@@ -320,7 +341,6 @@ class Tag(pulumi.CustomResource):
|
|
|
320
341
|
__props__.__dict__["allowed_values"] = allowed_values
|
|
321
342
|
__props__.__dict__["comment"] = comment
|
|
322
343
|
__props__.__dict__["database"] = database
|
|
323
|
-
__props__.__dict__["fully_qualified_name"] = fully_qualified_name
|
|
324
344
|
__props__.__dict__["name"] = name
|
|
325
345
|
__props__.__dict__["schema"] = schema
|
|
326
346
|
return Tag(resource_name, opts=opts, __props__=__props__)
|
|
@@ -349,14 +369,6 @@ class Tag(pulumi.CustomResource):
|
|
|
349
369
|
"""
|
|
350
370
|
return pulumi.get(self, "database")
|
|
351
371
|
|
|
352
|
-
@property
|
|
353
|
-
@pulumi.getter(name="fullyQualifiedName")
|
|
354
|
-
def fully_qualified_name(self) -> pulumi.Output[str]:
|
|
355
|
-
"""
|
|
356
|
-
Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
|
|
357
|
-
"""
|
|
358
|
-
return pulumi.get(self, "fully_qualified_name")
|
|
359
|
-
|
|
360
372
|
@property
|
|
361
373
|
@pulumi.getter
|
|
362
374
|
def name(self) -> pulumi.Output[str]:
|