pulumi-snowflake 0.50.3a1710160126__py3-none-any.whl → 1.2.0a1736835738__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.

Files changed (182) hide show
  1. pulumi_snowflake/__init__.py +224 -172
  2. pulumi_snowflake/_inputs.py +52857 -1665
  3. pulumi_snowflake/_utilities.py +41 -5
  4. pulumi_snowflake/account.py +188 -218
  5. pulumi_snowflake/account_authentication_policy_attachment.py +149 -0
  6. pulumi_snowflake/account_parameter.py +21 -48
  7. pulumi_snowflake/account_password_policy_attachment.py +7 -32
  8. pulumi_snowflake/account_role.py +250 -0
  9. pulumi_snowflake/alert.py +38 -47
  10. pulumi_snowflake/api_authentication_integration_with_authorization_code_grant.py +704 -0
  11. pulumi_snowflake/api_authentication_integration_with_client_credentials.py +657 -0
  12. pulumi_snowflake/api_authentication_integration_with_jwt_bearer.py +692 -0
  13. pulumi_snowflake/api_integration.py +33 -52
  14. pulumi_snowflake/authentication_policy.py +622 -0
  15. pulumi_snowflake/config/__init__.pyi +76 -99
  16. pulumi_snowflake/config/outputs.py +5 -0
  17. pulumi_snowflake/config/vars.py +93 -124
  18. pulumi_snowflake/cortex_search_service.py +596 -0
  19. pulumi_snowflake/database.py +819 -213
  20. pulumi_snowflake/database_role.py +81 -44
  21. pulumi_snowflake/dynamic_table.py +42 -49
  22. pulumi_snowflake/email_notification_integration.py +33 -28
  23. pulumi_snowflake/{unsafe_execute.py → execute.py} +36 -39
  24. pulumi_snowflake/external_function.py +54 -75
  25. pulumi_snowflake/external_oauth_integration.py +593 -542
  26. pulumi_snowflake/external_table.py +67 -90
  27. pulumi_snowflake/external_volume.py +382 -0
  28. pulumi_snowflake/failover_group.py +57 -98
  29. pulumi_snowflake/file_format.py +33 -28
  30. pulumi_snowflake/function_java.py +1211 -0
  31. pulumi_snowflake/function_javascript.py +882 -0
  32. pulumi_snowflake/function_python.py +1212 -0
  33. pulumi_snowflake/function_scala.py +1212 -0
  34. pulumi_snowflake/function_sql.py +835 -0
  35. pulumi_snowflake/get_account_roles.py +129 -0
  36. pulumi_snowflake/get_accounts.py +53 -22
  37. pulumi_snowflake/get_alerts.py +22 -9
  38. pulumi_snowflake/get_connections.py +109 -0
  39. pulumi_snowflake/get_cortex_search_services.py +216 -0
  40. pulumi_snowflake/get_current_account.py +24 -13
  41. pulumi_snowflake/get_current_role.py +14 -7
  42. pulumi_snowflake/get_database.py +25 -9
  43. pulumi_snowflake/get_database_role.py +162 -0
  44. pulumi_snowflake/get_database_roles.py +79 -47
  45. pulumi_snowflake/get_databases.py +91 -73
  46. pulumi_snowflake/get_dynamic_tables.py +36 -19
  47. pulumi_snowflake/get_external_functions.py +28 -9
  48. pulumi_snowflake/get_external_tables.py +28 -9
  49. pulumi_snowflake/get_failover_groups.py +18 -7
  50. pulumi_snowflake/get_file_formats.py +28 -9
  51. pulumi_snowflake/get_functions.py +28 -9
  52. pulumi_snowflake/get_grants.py +207 -84
  53. pulumi_snowflake/get_masking_policies.py +91 -51
  54. pulumi_snowflake/get_materialized_views.py +28 -9
  55. pulumi_snowflake/get_network_policies.py +129 -0
  56. pulumi_snowflake/get_parameters.py +38 -15
  57. pulumi_snowflake/get_pipes.py +28 -9
  58. pulumi_snowflake/get_procedures.py +28 -9
  59. pulumi_snowflake/get_resource_monitors.py +37 -24
  60. pulumi_snowflake/get_row_access_policies.py +91 -51
  61. pulumi_snowflake/get_schemas.py +145 -41
  62. pulumi_snowflake/get_secrets.py +200 -0
  63. pulumi_snowflake/get_security_integrations.py +129 -0
  64. pulumi_snowflake/get_sequences.py +28 -9
  65. pulumi_snowflake/get_shares.py +18 -9
  66. pulumi_snowflake/get_stages.py +28 -9
  67. pulumi_snowflake/get_storage_integrations.py +16 -9
  68. pulumi_snowflake/get_streamlits.py +170 -0
  69. pulumi_snowflake/get_streams.py +114 -54
  70. pulumi_snowflake/get_system_generate_scim_access_token.py +18 -9
  71. pulumi_snowflake/get_system_get_aws_sns_iam_policy.py +32 -7
  72. pulumi_snowflake/get_system_get_private_link_config.py +120 -5
  73. pulumi_snowflake/get_system_get_snowflake_platform_info.py +15 -7
  74. pulumi_snowflake/get_tables.py +28 -9
  75. pulumi_snowflake/get_tags.py +130 -0
  76. pulumi_snowflake/get_tasks.py +134 -54
  77. pulumi_snowflake/get_users.py +116 -44
  78. pulumi_snowflake/get_views.py +114 -54
  79. pulumi_snowflake/get_warehouses.py +79 -26
  80. pulumi_snowflake/grant_account_role.py +28 -75
  81. pulumi_snowflake/grant_application_role.py +257 -0
  82. pulumi_snowflake/grant_database_role.py +35 -94
  83. pulumi_snowflake/grant_ownership.py +382 -0
  84. pulumi_snowflake/grant_privileges_to_account_role.py +42 -78
  85. pulumi_snowflake/grant_privileges_to_database_role.py +37 -383
  86. pulumi_snowflake/grant_privileges_to_share.py +96 -44
  87. pulumi_snowflake/legacy_service_user.py +3670 -0
  88. pulumi_snowflake/managed_account.py +40 -11
  89. pulumi_snowflake/masking_policy.py +213 -310
  90. pulumi_snowflake/materialized_view.py +62 -71
  91. pulumi_snowflake/network_policy.py +217 -61
  92. pulumi_snowflake/network_policy_attachment.py +5 -34
  93. pulumi_snowflake/network_rule.py +473 -0
  94. pulumi_snowflake/notification_integration.py +49 -84
  95. pulumi_snowflake/oauth_integration_for_custom_clients.py +906 -0
  96. pulumi_snowflake/{oauth_integration.py → oauth_integration_for_partner_applications.py} +191 -192
  97. pulumi_snowflake/object_parameter.py +10 -101
  98. pulumi_snowflake/outputs.py +49200 -2928
  99. pulumi_snowflake/password_policy.py +41 -28
  100. pulumi_snowflake/pipe.py +33 -4
  101. pulumi_snowflake/primary_connection.py +330 -0
  102. pulumi_snowflake/procedure_java.py +1273 -0
  103. pulumi_snowflake/procedure_javascript.py +895 -0
  104. pulumi_snowflake/procedure_python.py +1226 -0
  105. pulumi_snowflake/procedure_scala.py +1273 -0
  106. pulumi_snowflake/procedure_sql.py +895 -0
  107. pulumi_snowflake/provider.py +378 -613
  108. pulumi_snowflake/pulumi-plugin.json +2 -1
  109. pulumi_snowflake/resource_monitor.py +118 -327
  110. pulumi_snowflake/row_access_policy.py +200 -149
  111. pulumi_snowflake/{saml_integration.py → saml2_integration.py} +356 -299
  112. pulumi_snowflake/schema.py +949 -178
  113. pulumi_snowflake/scim_integration.py +286 -109
  114. pulumi_snowflake/secondary_connection.py +339 -0
  115. pulumi_snowflake/secondary_database.py +1080 -0
  116. pulumi_snowflake/secret_with_authorization_code_grant.py +548 -0
  117. pulumi_snowflake/secret_with_basic_authentication.py +500 -0
  118. pulumi_snowflake/secret_with_client_credentials.py +511 -0
  119. pulumi_snowflake/secret_with_generic_string.py +452 -0
  120. pulumi_snowflake/sequence.py +9 -34
  121. pulumi_snowflake/service_user.py +3585 -0
  122. pulumi_snowflake/share.py +33 -28
  123. pulumi_snowflake/shared_database.py +939 -0
  124. pulumi_snowflake/stage.py +95 -84
  125. pulumi_snowflake/storage_integration.py +46 -4
  126. pulumi_snowflake/stream_on_directory_table.py +517 -0
  127. pulumi_snowflake/stream_on_external_table.py +632 -0
  128. pulumi_snowflake/stream_on_table.py +666 -0
  129. pulumi_snowflake/stream_on_view.py +666 -0
  130. pulumi_snowflake/streamlit.py +671 -0
  131. pulumi_snowflake/table.py +86 -97
  132. pulumi_snowflake/table_column_masking_policy_application.py +7 -14
  133. pulumi_snowflake/table_constraint.py +29 -172
  134. pulumi_snowflake/tag.py +142 -74
  135. pulumi_snowflake/tag_association.py +40 -215
  136. pulumi_snowflake/task.py +3048 -418
  137. pulumi_snowflake/user.py +3351 -384
  138. pulumi_snowflake/user_authentication_policy_attachment.py +197 -0
  139. pulumi_snowflake/user_password_policy_attachment.py +5 -4
  140. pulumi_snowflake/user_public_keys.py +5 -0
  141. pulumi_snowflake/view.py +466 -215
  142. pulumi_snowflake/warehouse.py +184 -168
  143. {pulumi_snowflake-0.50.3a1710160126.dist-info → pulumi_snowflake-1.2.0a1736835738.dist-info}/METADATA +7 -6
  144. pulumi_snowflake-1.2.0a1736835738.dist-info/RECORD +148 -0
  145. {pulumi_snowflake-0.50.3a1710160126.dist-info → pulumi_snowflake-1.2.0a1736835738.dist-info}/WHEEL +1 -1
  146. pulumi_snowflake/account_grant.py +0 -343
  147. pulumi_snowflake/database_grant.py +0 -495
  148. pulumi_snowflake/external_table_grant.py +0 -690
  149. pulumi_snowflake/failover_group_grant.py +0 -388
  150. pulumi_snowflake/file_format_grant.py +0 -635
  151. pulumi_snowflake/function.py +0 -872
  152. pulumi_snowflake/function_grant.py +0 -745
  153. pulumi_snowflake/get_role.py +0 -121
  154. pulumi_snowflake/get_roles.py +0 -120
  155. pulumi_snowflake/grant_privileges_to_role.py +0 -825
  156. pulumi_snowflake/integration_grant.py +0 -440
  157. pulumi_snowflake/masking_policy_grant.py +0 -542
  158. pulumi_snowflake/materialized_view_grant.py +0 -689
  159. pulumi_snowflake/pipe_grant.py +0 -587
  160. pulumi_snowflake/procedure.py +0 -887
  161. pulumi_snowflake/procedure_grant.py +0 -745
  162. pulumi_snowflake/resource_monitor_grant.py +0 -387
  163. pulumi_snowflake/role.py +0 -273
  164. pulumi_snowflake/role_grants.py +0 -352
  165. pulumi_snowflake/role_ownership_grant.py +0 -338
  166. pulumi_snowflake/row_access_policy_grant.py +0 -540
  167. pulumi_snowflake/schema_grant.py +0 -647
  168. pulumi_snowflake/sequence_grant.py +0 -635
  169. pulumi_snowflake/session_parameter.py +0 -332
  170. pulumi_snowflake/stage_grant.py +0 -635
  171. pulumi_snowflake/stream.py +0 -614
  172. pulumi_snowflake/stream_grant.py +0 -635
  173. pulumi_snowflake/table_grant.py +0 -677
  174. pulumi_snowflake/tag_grant.py +0 -532
  175. pulumi_snowflake/tag_masking_policy_association.py +0 -210
  176. pulumi_snowflake/task_grant.py +0 -635
  177. pulumi_snowflake/user_grant.py +0 -394
  178. pulumi_snowflake/user_ownership_grant.py +0 -286
  179. pulumi_snowflake/view_grant.py +0 -705
  180. pulumi_snowflake/warehouse_grant.py +0 -440
  181. pulumi_snowflake-0.50.3a1710160126.dist-info/RECORD +0 -136
  182. {pulumi_snowflake-0.50.3a1710160126.dist-info → pulumi_snowflake-1.2.0a1736835738.dist-info}/top_level.txt +0 -0
@@ -4,9 +4,14 @@
4
4
 
5
5
  import copy
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,43 +21,112 @@ __all__ = ['DatabaseArgs', 'Database']
16
21
  @pulumi.input_type
17
22
  class DatabaseArgs:
18
23
  def __init__(__self__, *,
24
+ catalog: Optional[pulumi.Input[str]] = None,
19
25
  comment: Optional[pulumi.Input[str]] = None,
20
26
  data_retention_time_in_days: Optional[pulumi.Input[int]] = None,
21
- from_database: Optional[pulumi.Input[str]] = None,
22
- from_replica: Optional[pulumi.Input[str]] = None,
23
- from_share: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
27
+ default_ddl_collation: Optional[pulumi.Input[str]] = None,
28
+ drop_public_schema_on_creation: Optional[pulumi.Input[bool]] = None,
29
+ enable_console_output: Optional[pulumi.Input[bool]] = None,
30
+ external_volume: Optional[pulumi.Input[str]] = None,
24
31
  is_transient: Optional[pulumi.Input[bool]] = None,
32
+ log_level: Optional[pulumi.Input[str]] = None,
33
+ max_data_extension_time_in_days: Optional[pulumi.Input[int]] = None,
25
34
  name: Optional[pulumi.Input[str]] = None,
26
- replication_configuration: Optional[pulumi.Input['DatabaseReplicationConfigurationArgs']] = None):
35
+ quoted_identifiers_ignore_case: Optional[pulumi.Input[bool]] = None,
36
+ replace_invalid_characters: Optional[pulumi.Input[bool]] = None,
37
+ replication: Optional[pulumi.Input['DatabaseReplicationArgs']] = None,
38
+ storage_serialization_policy: Optional[pulumi.Input[str]] = None,
39
+ suspend_task_after_num_failures: Optional[pulumi.Input[int]] = None,
40
+ task_auto_retry_attempts: Optional[pulumi.Input[int]] = None,
41
+ trace_level: Optional[pulumi.Input[str]] = None,
42
+ user_task_managed_initial_warehouse_size: Optional[pulumi.Input[str]] = None,
43
+ user_task_minimum_trigger_interval_in_seconds: Optional[pulumi.Input[int]] = None,
44
+ user_task_timeout_ms: Optional[pulumi.Input[int]] = None):
27
45
  """
28
46
  The set of arguments for constructing a Database resource.
29
- :param pulumi.Input[int] data_retention_time_in_days: Number of days for which Snowflake retains historical data for performing Time Travel actions (SELECT, CLONE, UNDROP) on the object. A value of 0 effectively disables Time Travel for the specified database. Default value for this field is set to -1, which is a fallback to use Snowflake default. For more information, see Understanding & Using Time Travel.
30
- :param pulumi.Input[str] from_database: Specify a database to create a clone from.
31
- :param pulumi.Input[str] from_replica: Specify a fully-qualified path to a database to create a replica from. A fully qualified path follows the format of "\\n\\n"."\\n\\n"."\\n\\n". An example would be: "myorg1"."account1"."db1"
32
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] from_share: Specify a provider and a share in this map to create a database from a share.
33
- :param pulumi.Input[bool] is_transient: Specifies a database as transient. Transient databases do not have a Fail-safe period so they do not incur additional storage costs once they leave Time Travel; however, this means they are also not protected by Fail-safe in the event of a data loss.
34
- :param pulumi.Input['DatabaseReplicationConfigurationArgs'] replication_configuration: When set, specifies the configurations for database replication.
47
+ :param pulumi.Input[str] catalog: The database parameter that specifies the default catalog to use for Iceberg tables. For more information, see [CATALOG](https://docs.snowflake.com/en/sql-reference/parameters#catalog).
48
+ :param pulumi.Input[str] comment: Specifies a comment for the database.
49
+ :param pulumi.Input[int] data_retention_time_in_days: Specifies the number of days for which Time Travel actions (CLONE and UNDROP) can be performed on the database, as well as specifying the default Time Travel retention time for all schemas created in the database. For more details, see [Understanding & Using Time Travel](https://docs.snowflake.com/en/user-guide/data-time-travel).
50
+ :param pulumi.Input[str] default_ddl_collation: Specifies a default collation specification for all schemas and tables added to the database. It can be overridden on schema or table level. For more information, see [collation specification](https://docs.snowflake.com/en/sql-reference/collation#label-collation-specification).
51
+ :param pulumi.Input[bool] drop_public_schema_on_creation: Specifies whether to drop public schema on creation or not. Modifying the parameter after database is already created won't have any effect.
52
+ :param pulumi.Input[bool] enable_console_output: If true, enables stdout/stderr fast path logging for anonymous stored procedures.
53
+ :param pulumi.Input[str] external_volume: The database parameter that specifies the default external volume to use for Iceberg tables. For more information, see [EXTERNAL_VOLUME](https://docs.snowflake.com/en/sql-reference/parameters#external-volume).
54
+ :param pulumi.Input[bool] is_transient: Specifies the database as transient. Transient databases do not have a Fail-safe period so they do not incur additional storage costs once they leave Time Travel; however, this means they are also not protected by Fail-safe in the event of a data loss.
55
+ :param pulumi.Input[str] log_level: Specifies the severity level of messages that should be ingested and made available in the active event table. Valid options are: [TRACE DEBUG INFO WARN ERROR FATAL OFF]. Messages at the specified level (and at more severe levels) are ingested. For more information, see [LOG_LEVEL](https://docs.snowflake.com/en/sql-reference/parameters.html#label-log-level).
56
+ :param pulumi.Input[int] max_data_extension_time_in_days: Object parameter that specifies the maximum number of days for which Snowflake can extend the data retention period for tables in the database to prevent streams on the tables from becoming stale. For a detailed description of this parameter, see [MAX*DATA*EXTENSION*TIME*IN_DAYS](https://docs.snowflake.com/en/sql-reference/parameters.html#label-max-data-extension-time-in-days).
57
+ :param pulumi.Input[str] name: Specifies the identifier for the database; must be unique for your account. As a best practice for [Database Replication and Failover](https://docs.snowflake.com/en/user-guide/db-replication-intro), it is recommended to give each secondary database the same name as its primary database. This practice supports referencing fully-qualified objects (i.e. '\\n\\n.\\n\\n.\\n\\n') by other objects in the same database, such as querying a fully-qualified table name in a view. If a secondary database has a different name from the primary database, then these object references would break in the secondary database. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
58
+ :param pulumi.Input[bool] quoted_identifiers_ignore_case: If true, the case of quoted identifiers is ignored. For more information, see [QUOTED*IDENTIFIERS*IGNORE_CASE](https://docs.snowflake.com/en/sql-reference/parameters#quoted-identifiers-ignore-case).
59
+ :param pulumi.Input[bool] replace_invalid_characters: Specifies whether to replace invalid UTF-8 characters with the Unicode replacement character (�) in query results for an Iceberg table. You can only set this parameter for tables that use an external Iceberg catalog. For more information, see [REPLACE*INVALID*CHARACTERS](https://docs.snowflake.com/en/sql-reference/parameters#replace-invalid-characters).
60
+ :param pulumi.Input['DatabaseReplicationArgs'] replication: Configures replication for a given database. When specified, this database will be promoted to serve as a primary database for replication. A primary database can be replicated in one or more accounts, allowing users in those accounts to query objects in each secondary (i.e. replica) database.
61
+ :param pulumi.Input[str] storage_serialization_policy: The storage serialization policy for Iceberg tables that use Snowflake as the catalog. Valid options are: [COMPATIBLE OPTIMIZED]. COMPATIBLE: Snowflake performs encoding and compression of data files that ensures interoperability with third-party compute engines. OPTIMIZED: Snowflake performs encoding and compression of data files that ensures the best table performance within Snowflake. For more information, see [STORAGE*SERIALIZATION*POLICY](https://docs.snowflake.com/en/sql-reference/parameters#storage-serialization-policy).
62
+ :param pulumi.Input[int] suspend_task_after_num_failures: How many times a task must fail in a row before it is automatically suspended. 0 disables auto-suspending. For more information, see [SUSPEND*TASK*AFTER*NUM*FAILURES](https://docs.snowflake.com/en/sql-reference/parameters#suspend-task-after-num-failures).
63
+ :param pulumi.Input[int] task_auto_retry_attempts: Maximum automatic retries allowed for a user task. For more information, see [TASK*AUTO*RETRY_ATTEMPTS](https://docs.snowflake.com/en/sql-reference/parameters#task-auto-retry-attempts).
64
+ :param pulumi.Input[str] trace_level: Controls how trace events are ingested into the event table. Valid options are: [ALWAYS ON*EVENT OFF]. For information about levels, see [TRACE*LEVEL](https://docs.snowflake.com/en/sql-reference/parameters.html#label-trace-level).
65
+ :param pulumi.Input[str] user_task_managed_initial_warehouse_size: The initial size of warehouse to use for managed warehouses in the absence of history. For more information, see [USER*TASK*MANAGED*INITIAL*WAREHOUSE_SIZE](https://docs.snowflake.com/en/sql-reference/parameters#user-task-managed-initial-warehouse-size).
66
+ :param pulumi.Input[int] user_task_minimum_trigger_interval_in_seconds: Minimum amount of time between Triggered Task executions in seconds.
67
+ :param pulumi.Input[int] user_task_timeout_ms: User task execution timeout in milliseconds. For more information, see [USER*TASK*TIMEOUT_MS](https://docs.snowflake.com/en/sql-reference/parameters#user-task-timeout-ms).
35
68
  """
69
+ if catalog is not None:
70
+ pulumi.set(__self__, "catalog", catalog)
36
71
  if comment is not None:
37
72
  pulumi.set(__self__, "comment", comment)
38
73
  if data_retention_time_in_days is not None:
39
74
  pulumi.set(__self__, "data_retention_time_in_days", data_retention_time_in_days)
40
- if from_database is not None:
41
- pulumi.set(__self__, "from_database", from_database)
42
- if from_replica is not None:
43
- pulumi.set(__self__, "from_replica", from_replica)
44
- if from_share is not None:
45
- pulumi.set(__self__, "from_share", from_share)
75
+ if default_ddl_collation is not None:
76
+ pulumi.set(__self__, "default_ddl_collation", default_ddl_collation)
77
+ if drop_public_schema_on_creation is not None:
78
+ pulumi.set(__self__, "drop_public_schema_on_creation", drop_public_schema_on_creation)
79
+ if enable_console_output is not None:
80
+ pulumi.set(__self__, "enable_console_output", enable_console_output)
81
+ if external_volume is not None:
82
+ pulumi.set(__self__, "external_volume", external_volume)
46
83
  if is_transient is not None:
47
84
  pulumi.set(__self__, "is_transient", is_transient)
85
+ if log_level is not None:
86
+ pulumi.set(__self__, "log_level", log_level)
87
+ if max_data_extension_time_in_days is not None:
88
+ pulumi.set(__self__, "max_data_extension_time_in_days", max_data_extension_time_in_days)
48
89
  if name is not None:
49
90
  pulumi.set(__self__, "name", name)
50
- if replication_configuration is not None:
51
- pulumi.set(__self__, "replication_configuration", replication_configuration)
91
+ if quoted_identifiers_ignore_case is not None:
92
+ pulumi.set(__self__, "quoted_identifiers_ignore_case", quoted_identifiers_ignore_case)
93
+ if replace_invalid_characters is not None:
94
+ pulumi.set(__self__, "replace_invalid_characters", replace_invalid_characters)
95
+ if replication is not None:
96
+ pulumi.set(__self__, "replication", replication)
97
+ if storage_serialization_policy is not None:
98
+ pulumi.set(__self__, "storage_serialization_policy", storage_serialization_policy)
99
+ if suspend_task_after_num_failures is not None:
100
+ pulumi.set(__self__, "suspend_task_after_num_failures", suspend_task_after_num_failures)
101
+ if task_auto_retry_attempts is not None:
102
+ pulumi.set(__self__, "task_auto_retry_attempts", task_auto_retry_attempts)
103
+ if trace_level is not None:
104
+ pulumi.set(__self__, "trace_level", trace_level)
105
+ if user_task_managed_initial_warehouse_size is not None:
106
+ pulumi.set(__self__, "user_task_managed_initial_warehouse_size", user_task_managed_initial_warehouse_size)
107
+ if user_task_minimum_trigger_interval_in_seconds is not None:
108
+ pulumi.set(__self__, "user_task_minimum_trigger_interval_in_seconds", user_task_minimum_trigger_interval_in_seconds)
109
+ if user_task_timeout_ms is not None:
110
+ pulumi.set(__self__, "user_task_timeout_ms", user_task_timeout_ms)
111
+
112
+ @property
113
+ @pulumi.getter
114
+ def catalog(self) -> Optional[pulumi.Input[str]]:
115
+ """
116
+ The database parameter that specifies the default catalog to use for Iceberg tables. For more information, see [CATALOG](https://docs.snowflake.com/en/sql-reference/parameters#catalog).
117
+ """
118
+ return pulumi.get(self, "catalog")
119
+
120
+ @catalog.setter
121
+ def catalog(self, value: Optional[pulumi.Input[str]]):
122
+ pulumi.set(self, "catalog", value)
52
123
 
53
124
  @property
54
125
  @pulumi.getter
55
126
  def comment(self) -> Optional[pulumi.Input[str]]:
127
+ """
128
+ Specifies a comment for the database.
129
+ """
56
130
  return pulumi.get(self, "comment")
57
131
 
58
132
  @comment.setter
@@ -63,7 +137,7 @@ class DatabaseArgs:
63
137
  @pulumi.getter(name="dataRetentionTimeInDays")
64
138
  def data_retention_time_in_days(self) -> Optional[pulumi.Input[int]]:
65
139
  """
66
- Number of days for which Snowflake retains historical data for performing Time Travel actions (SELECT, CLONE, UNDROP) on the object. A value of 0 effectively disables Time Travel for the specified database. Default value for this field is set to -1, which is a fallback to use Snowflake default. For more information, see Understanding & Using Time Travel.
140
+ Specifies the number of days for which Time Travel actions (CLONE and UNDROP) can be performed on the database, as well as specifying the default Time Travel retention time for all schemas created in the database. For more details, see [Understanding & Using Time Travel](https://docs.snowflake.com/en/user-guide/data-time-travel).
67
141
  """
68
142
  return pulumi.get(self, "data_retention_time_in_days")
69
143
 
@@ -72,46 +146,58 @@ class DatabaseArgs:
72
146
  pulumi.set(self, "data_retention_time_in_days", value)
73
147
 
74
148
  @property
75
- @pulumi.getter(name="fromDatabase")
76
- def from_database(self) -> Optional[pulumi.Input[str]]:
149
+ @pulumi.getter(name="defaultDdlCollation")
150
+ def default_ddl_collation(self) -> Optional[pulumi.Input[str]]:
77
151
  """
78
- Specify a database to create a clone from.
152
+ Specifies a default collation specification for all schemas and tables added to the database. It can be overridden on schema or table level. For more information, see [collation specification](https://docs.snowflake.com/en/sql-reference/collation#label-collation-specification).
79
153
  """
80
- return pulumi.get(self, "from_database")
154
+ return pulumi.get(self, "default_ddl_collation")
81
155
 
82
- @from_database.setter
83
- def from_database(self, value: Optional[pulumi.Input[str]]):
84
- pulumi.set(self, "from_database", value)
156
+ @default_ddl_collation.setter
157
+ def default_ddl_collation(self, value: Optional[pulumi.Input[str]]):
158
+ pulumi.set(self, "default_ddl_collation", value)
85
159
 
86
160
  @property
87
- @pulumi.getter(name="fromReplica")
88
- def from_replica(self) -> Optional[pulumi.Input[str]]:
161
+ @pulumi.getter(name="dropPublicSchemaOnCreation")
162
+ def drop_public_schema_on_creation(self) -> Optional[pulumi.Input[bool]]:
89
163
  """
90
- Specify a fully-qualified path to a database to create a replica from. A fully qualified path follows the format of "\\n\\n"."\\n\\n"."\\n\\n". An example would be: "myorg1"."account1"."db1"
164
+ Specifies whether to drop public schema on creation or not. Modifying the parameter after database is already created won't have any effect.
91
165
  """
92
- return pulumi.get(self, "from_replica")
166
+ return pulumi.get(self, "drop_public_schema_on_creation")
93
167
 
94
- @from_replica.setter
95
- def from_replica(self, value: Optional[pulumi.Input[str]]):
96
- pulumi.set(self, "from_replica", value)
168
+ @drop_public_schema_on_creation.setter
169
+ def drop_public_schema_on_creation(self, value: Optional[pulumi.Input[bool]]):
170
+ pulumi.set(self, "drop_public_schema_on_creation", value)
97
171
 
98
172
  @property
99
- @pulumi.getter(name="fromShare")
100
- def from_share(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
173
+ @pulumi.getter(name="enableConsoleOutput")
174
+ def enable_console_output(self) -> Optional[pulumi.Input[bool]]:
101
175
  """
102
- Specify a provider and a share in this map to create a database from a share.
176
+ If true, enables stdout/stderr fast path logging for anonymous stored procedures.
103
177
  """
104
- return pulumi.get(self, "from_share")
178
+ return pulumi.get(self, "enable_console_output")
105
179
 
106
- @from_share.setter
107
- def from_share(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
108
- pulumi.set(self, "from_share", value)
180
+ @enable_console_output.setter
181
+ def enable_console_output(self, value: Optional[pulumi.Input[bool]]):
182
+ pulumi.set(self, "enable_console_output", value)
183
+
184
+ @property
185
+ @pulumi.getter(name="externalVolume")
186
+ def external_volume(self) -> Optional[pulumi.Input[str]]:
187
+ """
188
+ The database parameter that specifies the default external volume to use for Iceberg tables. For more information, see [EXTERNAL_VOLUME](https://docs.snowflake.com/en/sql-reference/parameters#external-volume).
189
+ """
190
+ return pulumi.get(self, "external_volume")
191
+
192
+ @external_volume.setter
193
+ def external_volume(self, value: Optional[pulumi.Input[str]]):
194
+ pulumi.set(self, "external_volume", value)
109
195
 
110
196
  @property
111
197
  @pulumi.getter(name="isTransient")
112
198
  def is_transient(self) -> Optional[pulumi.Input[bool]]:
113
199
  """
114
- Specifies a database as transient. Transient databases do not have a Fail-safe period so they do not incur additional storage costs once they leave Time Travel; however, this means they are also not protected by Fail-safe in the event of a data loss.
200
+ Specifies the database as transient. Transient databases do not have a Fail-safe period so they do not incur additional storage costs once they leave Time Travel; however, this means they are also not protected by Fail-safe in the event of a data loss.
115
201
  """
116
202
  return pulumi.get(self, "is_transient")
117
203
 
@@ -119,9 +205,36 @@ class DatabaseArgs:
119
205
  def is_transient(self, value: Optional[pulumi.Input[bool]]):
120
206
  pulumi.set(self, "is_transient", value)
121
207
 
208
+ @property
209
+ @pulumi.getter(name="logLevel")
210
+ def log_level(self) -> Optional[pulumi.Input[str]]:
211
+ """
212
+ Specifies the severity level of messages that should be ingested and made available in the active event table. Valid options are: [TRACE DEBUG INFO WARN ERROR FATAL OFF]. Messages at the specified level (and at more severe levels) are ingested. For more information, see [LOG_LEVEL](https://docs.snowflake.com/en/sql-reference/parameters.html#label-log-level).
213
+ """
214
+ return pulumi.get(self, "log_level")
215
+
216
+ @log_level.setter
217
+ def log_level(self, value: Optional[pulumi.Input[str]]):
218
+ pulumi.set(self, "log_level", value)
219
+
220
+ @property
221
+ @pulumi.getter(name="maxDataExtensionTimeInDays")
222
+ def max_data_extension_time_in_days(self) -> Optional[pulumi.Input[int]]:
223
+ """
224
+ Object parameter that specifies the maximum number of days for which Snowflake can extend the data retention period for tables in the database to prevent streams on the tables from becoming stale. For a detailed description of this parameter, see [MAX*DATA*EXTENSION*TIME*IN_DAYS](https://docs.snowflake.com/en/sql-reference/parameters.html#label-max-data-extension-time-in-days).
225
+ """
226
+ return pulumi.get(self, "max_data_extension_time_in_days")
227
+
228
+ @max_data_extension_time_in_days.setter
229
+ def max_data_extension_time_in_days(self, value: Optional[pulumi.Input[int]]):
230
+ pulumi.set(self, "max_data_extension_time_in_days", value)
231
+
122
232
  @property
123
233
  @pulumi.getter
124
234
  def name(self) -> Optional[pulumi.Input[str]]:
235
+ """
236
+ Specifies the identifier for the database; must be unique for your account. As a best practice for [Database Replication and Failover](https://docs.snowflake.com/en/user-guide/db-replication-intro), it is recommended to give each secondary database the same name as its primary database. This practice supports referencing fully-qualified objects (i.e. '\\n\\n.\\n\\n.\\n\\n') by other objects in the same database, such as querying a fully-qualified table name in a view. If a secondary database has a different name from the primary database, then these object references would break in the secondary database. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
237
+ """
125
238
  return pulumi.get(self, "name")
126
239
 
127
240
  @name.setter
@@ -129,58 +242,239 @@ class DatabaseArgs:
129
242
  pulumi.set(self, "name", value)
130
243
 
131
244
  @property
132
- @pulumi.getter(name="replicationConfiguration")
133
- def replication_configuration(self) -> Optional[pulumi.Input['DatabaseReplicationConfigurationArgs']]:
245
+ @pulumi.getter(name="quotedIdentifiersIgnoreCase")
246
+ def quoted_identifiers_ignore_case(self) -> Optional[pulumi.Input[bool]]:
247
+ """
248
+ If true, the case of quoted identifiers is ignored. For more information, see [QUOTED*IDENTIFIERS*IGNORE_CASE](https://docs.snowflake.com/en/sql-reference/parameters#quoted-identifiers-ignore-case).
249
+ """
250
+ return pulumi.get(self, "quoted_identifiers_ignore_case")
251
+
252
+ @quoted_identifiers_ignore_case.setter
253
+ def quoted_identifiers_ignore_case(self, value: Optional[pulumi.Input[bool]]):
254
+ pulumi.set(self, "quoted_identifiers_ignore_case", value)
255
+
256
+ @property
257
+ @pulumi.getter(name="replaceInvalidCharacters")
258
+ def replace_invalid_characters(self) -> Optional[pulumi.Input[bool]]:
259
+ """
260
+ Specifies whether to replace invalid UTF-8 characters with the Unicode replacement character (�) in query results for an Iceberg table. You can only set this parameter for tables that use an external Iceberg catalog. For more information, see [REPLACE*INVALID*CHARACTERS](https://docs.snowflake.com/en/sql-reference/parameters#replace-invalid-characters).
261
+ """
262
+ return pulumi.get(self, "replace_invalid_characters")
263
+
264
+ @replace_invalid_characters.setter
265
+ def replace_invalid_characters(self, value: Optional[pulumi.Input[bool]]):
266
+ pulumi.set(self, "replace_invalid_characters", value)
267
+
268
+ @property
269
+ @pulumi.getter
270
+ def replication(self) -> Optional[pulumi.Input['DatabaseReplicationArgs']]:
271
+ """
272
+ Configures replication for a given database. When specified, this database will be promoted to serve as a primary database for replication. A primary database can be replicated in one or more accounts, allowing users in those accounts to query objects in each secondary (i.e. replica) database.
273
+ """
274
+ return pulumi.get(self, "replication")
275
+
276
+ @replication.setter
277
+ def replication(self, value: Optional[pulumi.Input['DatabaseReplicationArgs']]):
278
+ pulumi.set(self, "replication", value)
279
+
280
+ @property
281
+ @pulumi.getter(name="storageSerializationPolicy")
282
+ def storage_serialization_policy(self) -> Optional[pulumi.Input[str]]:
134
283
  """
135
- When set, specifies the configurations for database replication.
284
+ The storage serialization policy for Iceberg tables that use Snowflake as the catalog. Valid options are: [COMPATIBLE OPTIMIZED]. COMPATIBLE: Snowflake performs encoding and compression of data files that ensures interoperability with third-party compute engines. OPTIMIZED: Snowflake performs encoding and compression of data files that ensures the best table performance within Snowflake. For more information, see [STORAGE*SERIALIZATION*POLICY](https://docs.snowflake.com/en/sql-reference/parameters#storage-serialization-policy).
136
285
  """
137
- return pulumi.get(self, "replication_configuration")
286
+ return pulumi.get(self, "storage_serialization_policy")
138
287
 
139
- @replication_configuration.setter
140
- def replication_configuration(self, value: Optional[pulumi.Input['DatabaseReplicationConfigurationArgs']]):
141
- pulumi.set(self, "replication_configuration", value)
288
+ @storage_serialization_policy.setter
289
+ def storage_serialization_policy(self, value: Optional[pulumi.Input[str]]):
290
+ pulumi.set(self, "storage_serialization_policy", value)
291
+
292
+ @property
293
+ @pulumi.getter(name="suspendTaskAfterNumFailures")
294
+ def suspend_task_after_num_failures(self) -> Optional[pulumi.Input[int]]:
295
+ """
296
+ How many times a task must fail in a row before it is automatically suspended. 0 disables auto-suspending. For more information, see [SUSPEND*TASK*AFTER*NUM*FAILURES](https://docs.snowflake.com/en/sql-reference/parameters#suspend-task-after-num-failures).
297
+ """
298
+ return pulumi.get(self, "suspend_task_after_num_failures")
299
+
300
+ @suspend_task_after_num_failures.setter
301
+ def suspend_task_after_num_failures(self, value: Optional[pulumi.Input[int]]):
302
+ pulumi.set(self, "suspend_task_after_num_failures", value)
303
+
304
+ @property
305
+ @pulumi.getter(name="taskAutoRetryAttempts")
306
+ def task_auto_retry_attempts(self) -> Optional[pulumi.Input[int]]:
307
+ """
308
+ Maximum automatic retries allowed for a user task. For more information, see [TASK*AUTO*RETRY_ATTEMPTS](https://docs.snowflake.com/en/sql-reference/parameters#task-auto-retry-attempts).
309
+ """
310
+ return pulumi.get(self, "task_auto_retry_attempts")
311
+
312
+ @task_auto_retry_attempts.setter
313
+ def task_auto_retry_attempts(self, value: Optional[pulumi.Input[int]]):
314
+ pulumi.set(self, "task_auto_retry_attempts", value)
315
+
316
+ @property
317
+ @pulumi.getter(name="traceLevel")
318
+ def trace_level(self) -> Optional[pulumi.Input[str]]:
319
+ """
320
+ Controls how trace events are ingested into the event table. Valid options are: [ALWAYS ON*EVENT OFF]. For information about levels, see [TRACE*LEVEL](https://docs.snowflake.com/en/sql-reference/parameters.html#label-trace-level).
321
+ """
322
+ return pulumi.get(self, "trace_level")
323
+
324
+ @trace_level.setter
325
+ def trace_level(self, value: Optional[pulumi.Input[str]]):
326
+ pulumi.set(self, "trace_level", value)
327
+
328
+ @property
329
+ @pulumi.getter(name="userTaskManagedInitialWarehouseSize")
330
+ def user_task_managed_initial_warehouse_size(self) -> Optional[pulumi.Input[str]]:
331
+ """
332
+ The initial size of warehouse to use for managed warehouses in the absence of history. For more information, see [USER*TASK*MANAGED*INITIAL*WAREHOUSE_SIZE](https://docs.snowflake.com/en/sql-reference/parameters#user-task-managed-initial-warehouse-size).
333
+ """
334
+ return pulumi.get(self, "user_task_managed_initial_warehouse_size")
335
+
336
+ @user_task_managed_initial_warehouse_size.setter
337
+ def user_task_managed_initial_warehouse_size(self, value: Optional[pulumi.Input[str]]):
338
+ pulumi.set(self, "user_task_managed_initial_warehouse_size", value)
339
+
340
+ @property
341
+ @pulumi.getter(name="userTaskMinimumTriggerIntervalInSeconds")
342
+ def user_task_minimum_trigger_interval_in_seconds(self) -> Optional[pulumi.Input[int]]:
343
+ """
344
+ Minimum amount of time between Triggered Task executions in seconds.
345
+ """
346
+ return pulumi.get(self, "user_task_minimum_trigger_interval_in_seconds")
347
+
348
+ @user_task_minimum_trigger_interval_in_seconds.setter
349
+ def user_task_minimum_trigger_interval_in_seconds(self, value: Optional[pulumi.Input[int]]):
350
+ pulumi.set(self, "user_task_minimum_trigger_interval_in_seconds", value)
351
+
352
+ @property
353
+ @pulumi.getter(name="userTaskTimeoutMs")
354
+ def user_task_timeout_ms(self) -> Optional[pulumi.Input[int]]:
355
+ """
356
+ User task execution timeout in milliseconds. For more information, see [USER*TASK*TIMEOUT_MS](https://docs.snowflake.com/en/sql-reference/parameters#user-task-timeout-ms).
357
+ """
358
+ return pulumi.get(self, "user_task_timeout_ms")
359
+
360
+ @user_task_timeout_ms.setter
361
+ def user_task_timeout_ms(self, value: Optional[pulumi.Input[int]]):
362
+ pulumi.set(self, "user_task_timeout_ms", value)
142
363
 
143
364
 
144
365
  @pulumi.input_type
145
366
  class _DatabaseState:
146
367
  def __init__(__self__, *,
368
+ catalog: Optional[pulumi.Input[str]] = None,
147
369
  comment: Optional[pulumi.Input[str]] = None,
148
370
  data_retention_time_in_days: Optional[pulumi.Input[int]] = None,
149
- from_database: Optional[pulumi.Input[str]] = None,
150
- from_replica: Optional[pulumi.Input[str]] = None,
151
- from_share: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
371
+ default_ddl_collation: Optional[pulumi.Input[str]] = None,
372
+ drop_public_schema_on_creation: Optional[pulumi.Input[bool]] = None,
373
+ enable_console_output: Optional[pulumi.Input[bool]] = None,
374
+ external_volume: Optional[pulumi.Input[str]] = None,
375
+ fully_qualified_name: Optional[pulumi.Input[str]] = None,
152
376
  is_transient: Optional[pulumi.Input[bool]] = None,
377
+ log_level: Optional[pulumi.Input[str]] = None,
378
+ max_data_extension_time_in_days: Optional[pulumi.Input[int]] = None,
153
379
  name: Optional[pulumi.Input[str]] = None,
154
- replication_configuration: Optional[pulumi.Input['DatabaseReplicationConfigurationArgs']] = None):
380
+ quoted_identifiers_ignore_case: Optional[pulumi.Input[bool]] = None,
381
+ replace_invalid_characters: Optional[pulumi.Input[bool]] = None,
382
+ replication: Optional[pulumi.Input['DatabaseReplicationArgs']] = None,
383
+ storage_serialization_policy: Optional[pulumi.Input[str]] = None,
384
+ suspend_task_after_num_failures: Optional[pulumi.Input[int]] = None,
385
+ task_auto_retry_attempts: Optional[pulumi.Input[int]] = None,
386
+ trace_level: Optional[pulumi.Input[str]] = None,
387
+ user_task_managed_initial_warehouse_size: Optional[pulumi.Input[str]] = None,
388
+ user_task_minimum_trigger_interval_in_seconds: Optional[pulumi.Input[int]] = None,
389
+ user_task_timeout_ms: Optional[pulumi.Input[int]] = None):
155
390
  """
156
391
  Input properties used for looking up and filtering Database resources.
157
- :param pulumi.Input[int] data_retention_time_in_days: Number of days for which Snowflake retains historical data for performing Time Travel actions (SELECT, CLONE, UNDROP) on the object. A value of 0 effectively disables Time Travel for the specified database. Default value for this field is set to -1, which is a fallback to use Snowflake default. For more information, see Understanding & Using Time Travel.
158
- :param pulumi.Input[str] from_database: Specify a database to create a clone from.
159
- :param pulumi.Input[str] from_replica: Specify a fully-qualified path to a database to create a replica from. A fully qualified path follows the format of "\\n\\n"."\\n\\n"."\\n\\n". An example would be: "myorg1"."account1"."db1"
160
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] from_share: Specify a provider and a share in this map to create a database from a share.
161
- :param pulumi.Input[bool] is_transient: Specifies a database as transient. Transient databases do not have a Fail-safe period so they do not incur additional storage costs once they leave Time Travel; however, this means they are also not protected by Fail-safe in the event of a data loss.
162
- :param pulumi.Input['DatabaseReplicationConfigurationArgs'] replication_configuration: When set, specifies the configurations for database replication.
392
+ :param pulumi.Input[str] catalog: The database parameter that specifies the default catalog to use for Iceberg tables. For more information, see [CATALOG](https://docs.snowflake.com/en/sql-reference/parameters#catalog).
393
+ :param pulumi.Input[str] comment: Specifies a comment for the database.
394
+ :param pulumi.Input[int] data_retention_time_in_days: Specifies the number of days for which Time Travel actions (CLONE and UNDROP) can be performed on the database, as well as specifying the default Time Travel retention time for all schemas created in the database. For more details, see [Understanding & Using Time Travel](https://docs.snowflake.com/en/user-guide/data-time-travel).
395
+ :param pulumi.Input[str] default_ddl_collation: Specifies a default collation specification for all schemas and tables added to the database. It can be overridden on schema or table level. For more information, see [collation specification](https://docs.snowflake.com/en/sql-reference/collation#label-collation-specification).
396
+ :param pulumi.Input[bool] drop_public_schema_on_creation: Specifies whether to drop public schema on creation or not. Modifying the parameter after database is already created won't have any effect.
397
+ :param pulumi.Input[bool] enable_console_output: If true, enables stdout/stderr fast path logging for anonymous stored procedures.
398
+ :param pulumi.Input[str] external_volume: The database parameter that specifies the default external volume to use for Iceberg tables. For more information, see [EXTERNAL_VOLUME](https://docs.snowflake.com/en/sql-reference/parameters#external-volume).
399
+ :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).
400
+ :param pulumi.Input[bool] is_transient: Specifies the database as transient. Transient databases do not have a Fail-safe period so they do not incur additional storage costs once they leave Time Travel; however, this means they are also not protected by Fail-safe in the event of a data loss.
401
+ :param pulumi.Input[str] log_level: Specifies the severity level of messages that should be ingested and made available in the active event table. Valid options are: [TRACE DEBUG INFO WARN ERROR FATAL OFF]. Messages at the specified level (and at more severe levels) are ingested. For more information, see [LOG_LEVEL](https://docs.snowflake.com/en/sql-reference/parameters.html#label-log-level).
402
+ :param pulumi.Input[int] max_data_extension_time_in_days: Object parameter that specifies the maximum number of days for which Snowflake can extend the data retention period for tables in the database to prevent streams on the tables from becoming stale. For a detailed description of this parameter, see [MAX*DATA*EXTENSION*TIME*IN_DAYS](https://docs.snowflake.com/en/sql-reference/parameters.html#label-max-data-extension-time-in-days).
403
+ :param pulumi.Input[str] name: Specifies the identifier for the database; must be unique for your account. As a best practice for [Database Replication and Failover](https://docs.snowflake.com/en/user-guide/db-replication-intro), it is recommended to give each secondary database the same name as its primary database. This practice supports referencing fully-qualified objects (i.e. '\\n\\n.\\n\\n.\\n\\n') by other objects in the same database, such as querying a fully-qualified table name in a view. If a secondary database has a different name from the primary database, then these object references would break in the secondary database. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
404
+ :param pulumi.Input[bool] quoted_identifiers_ignore_case: If true, the case of quoted identifiers is ignored. For more information, see [QUOTED*IDENTIFIERS*IGNORE_CASE](https://docs.snowflake.com/en/sql-reference/parameters#quoted-identifiers-ignore-case).
405
+ :param pulumi.Input[bool] replace_invalid_characters: Specifies whether to replace invalid UTF-8 characters with the Unicode replacement character (�) in query results for an Iceberg table. You can only set this parameter for tables that use an external Iceberg catalog. For more information, see [REPLACE*INVALID*CHARACTERS](https://docs.snowflake.com/en/sql-reference/parameters#replace-invalid-characters).
406
+ :param pulumi.Input['DatabaseReplicationArgs'] replication: Configures replication for a given database. When specified, this database will be promoted to serve as a primary database for replication. A primary database can be replicated in one or more accounts, allowing users in those accounts to query objects in each secondary (i.e. replica) database.
407
+ :param pulumi.Input[str] storage_serialization_policy: The storage serialization policy for Iceberg tables that use Snowflake as the catalog. Valid options are: [COMPATIBLE OPTIMIZED]. COMPATIBLE: Snowflake performs encoding and compression of data files that ensures interoperability with third-party compute engines. OPTIMIZED: Snowflake performs encoding and compression of data files that ensures the best table performance within Snowflake. For more information, see [STORAGE*SERIALIZATION*POLICY](https://docs.snowflake.com/en/sql-reference/parameters#storage-serialization-policy).
408
+ :param pulumi.Input[int] suspend_task_after_num_failures: How many times a task must fail in a row before it is automatically suspended. 0 disables auto-suspending. For more information, see [SUSPEND*TASK*AFTER*NUM*FAILURES](https://docs.snowflake.com/en/sql-reference/parameters#suspend-task-after-num-failures).
409
+ :param pulumi.Input[int] task_auto_retry_attempts: Maximum automatic retries allowed for a user task. For more information, see [TASK*AUTO*RETRY_ATTEMPTS](https://docs.snowflake.com/en/sql-reference/parameters#task-auto-retry-attempts).
410
+ :param pulumi.Input[str] trace_level: Controls how trace events are ingested into the event table. Valid options are: [ALWAYS ON*EVENT OFF]. For information about levels, see [TRACE*LEVEL](https://docs.snowflake.com/en/sql-reference/parameters.html#label-trace-level).
411
+ :param pulumi.Input[str] user_task_managed_initial_warehouse_size: The initial size of warehouse to use for managed warehouses in the absence of history. For more information, see [USER*TASK*MANAGED*INITIAL*WAREHOUSE_SIZE](https://docs.snowflake.com/en/sql-reference/parameters#user-task-managed-initial-warehouse-size).
412
+ :param pulumi.Input[int] user_task_minimum_trigger_interval_in_seconds: Minimum amount of time between Triggered Task executions in seconds.
413
+ :param pulumi.Input[int] user_task_timeout_ms: User task execution timeout in milliseconds. For more information, see [USER*TASK*TIMEOUT_MS](https://docs.snowflake.com/en/sql-reference/parameters#user-task-timeout-ms).
163
414
  """
415
+ if catalog is not None:
416
+ pulumi.set(__self__, "catalog", catalog)
164
417
  if comment is not None:
165
418
  pulumi.set(__self__, "comment", comment)
166
419
  if data_retention_time_in_days is not None:
167
420
  pulumi.set(__self__, "data_retention_time_in_days", data_retention_time_in_days)
168
- if from_database is not None:
169
- pulumi.set(__self__, "from_database", from_database)
170
- if from_replica is not None:
171
- pulumi.set(__self__, "from_replica", from_replica)
172
- if from_share is not None:
173
- pulumi.set(__self__, "from_share", from_share)
421
+ if default_ddl_collation is not None:
422
+ pulumi.set(__self__, "default_ddl_collation", default_ddl_collation)
423
+ if drop_public_schema_on_creation is not None:
424
+ pulumi.set(__self__, "drop_public_schema_on_creation", drop_public_schema_on_creation)
425
+ if enable_console_output is not None:
426
+ pulumi.set(__self__, "enable_console_output", enable_console_output)
427
+ if external_volume is not None:
428
+ pulumi.set(__self__, "external_volume", external_volume)
429
+ if fully_qualified_name is not None:
430
+ pulumi.set(__self__, "fully_qualified_name", fully_qualified_name)
174
431
  if is_transient is not None:
175
432
  pulumi.set(__self__, "is_transient", is_transient)
433
+ if log_level is not None:
434
+ pulumi.set(__self__, "log_level", log_level)
435
+ if max_data_extension_time_in_days is not None:
436
+ pulumi.set(__self__, "max_data_extension_time_in_days", max_data_extension_time_in_days)
176
437
  if name is not None:
177
438
  pulumi.set(__self__, "name", name)
178
- if replication_configuration is not None:
179
- pulumi.set(__self__, "replication_configuration", replication_configuration)
439
+ if quoted_identifiers_ignore_case is not None:
440
+ pulumi.set(__self__, "quoted_identifiers_ignore_case", quoted_identifiers_ignore_case)
441
+ if replace_invalid_characters is not None:
442
+ pulumi.set(__self__, "replace_invalid_characters", replace_invalid_characters)
443
+ if replication is not None:
444
+ pulumi.set(__self__, "replication", replication)
445
+ if storage_serialization_policy is not None:
446
+ pulumi.set(__self__, "storage_serialization_policy", storage_serialization_policy)
447
+ if suspend_task_after_num_failures is not None:
448
+ pulumi.set(__self__, "suspend_task_after_num_failures", suspend_task_after_num_failures)
449
+ if task_auto_retry_attempts is not None:
450
+ pulumi.set(__self__, "task_auto_retry_attempts", task_auto_retry_attempts)
451
+ if trace_level is not None:
452
+ pulumi.set(__self__, "trace_level", trace_level)
453
+ if user_task_managed_initial_warehouse_size is not None:
454
+ pulumi.set(__self__, "user_task_managed_initial_warehouse_size", user_task_managed_initial_warehouse_size)
455
+ if user_task_minimum_trigger_interval_in_seconds is not None:
456
+ pulumi.set(__self__, "user_task_minimum_trigger_interval_in_seconds", user_task_minimum_trigger_interval_in_seconds)
457
+ if user_task_timeout_ms is not None:
458
+ pulumi.set(__self__, "user_task_timeout_ms", user_task_timeout_ms)
459
+
460
+ @property
461
+ @pulumi.getter
462
+ def catalog(self) -> Optional[pulumi.Input[str]]:
463
+ """
464
+ The database parameter that specifies the default catalog to use for Iceberg tables. For more information, see [CATALOG](https://docs.snowflake.com/en/sql-reference/parameters#catalog).
465
+ """
466
+ return pulumi.get(self, "catalog")
467
+
468
+ @catalog.setter
469
+ def catalog(self, value: Optional[pulumi.Input[str]]):
470
+ pulumi.set(self, "catalog", value)
180
471
 
181
472
  @property
182
473
  @pulumi.getter
183
474
  def comment(self) -> Optional[pulumi.Input[str]]:
475
+ """
476
+ Specifies a comment for the database.
477
+ """
184
478
  return pulumi.get(self, "comment")
185
479
 
186
480
  @comment.setter
@@ -191,7 +485,7 @@ class _DatabaseState:
191
485
  @pulumi.getter(name="dataRetentionTimeInDays")
192
486
  def data_retention_time_in_days(self) -> Optional[pulumi.Input[int]]:
193
487
  """
194
- Number of days for which Snowflake retains historical data for performing Time Travel actions (SELECT, CLONE, UNDROP) on the object. A value of 0 effectively disables Time Travel for the specified database. Default value for this field is set to -1, which is a fallback to use Snowflake default. For more information, see Understanding & Using Time Travel.
488
+ Specifies the number of days for which Time Travel actions (CLONE and UNDROP) can be performed on the database, as well as specifying the default Time Travel retention time for all schemas created in the database. For more details, see [Understanding & Using Time Travel](https://docs.snowflake.com/en/user-guide/data-time-travel).
195
489
  """
196
490
  return pulumi.get(self, "data_retention_time_in_days")
197
491
 
@@ -200,46 +494,70 @@ class _DatabaseState:
200
494
  pulumi.set(self, "data_retention_time_in_days", value)
201
495
 
202
496
  @property
203
- @pulumi.getter(name="fromDatabase")
204
- def from_database(self) -> Optional[pulumi.Input[str]]:
497
+ @pulumi.getter(name="defaultDdlCollation")
498
+ def default_ddl_collation(self) -> Optional[pulumi.Input[str]]:
205
499
  """
206
- Specify a database to create a clone from.
500
+ Specifies a default collation specification for all schemas and tables added to the database. It can be overridden on schema or table level. For more information, see [collation specification](https://docs.snowflake.com/en/sql-reference/collation#label-collation-specification).
207
501
  """
208
- return pulumi.get(self, "from_database")
502
+ return pulumi.get(self, "default_ddl_collation")
209
503
 
210
- @from_database.setter
211
- def from_database(self, value: Optional[pulumi.Input[str]]):
212
- pulumi.set(self, "from_database", value)
504
+ @default_ddl_collation.setter
505
+ def default_ddl_collation(self, value: Optional[pulumi.Input[str]]):
506
+ pulumi.set(self, "default_ddl_collation", value)
213
507
 
214
508
  @property
215
- @pulumi.getter(name="fromReplica")
216
- def from_replica(self) -> Optional[pulumi.Input[str]]:
509
+ @pulumi.getter(name="dropPublicSchemaOnCreation")
510
+ def drop_public_schema_on_creation(self) -> Optional[pulumi.Input[bool]]:
217
511
  """
218
- Specify a fully-qualified path to a database to create a replica from. A fully qualified path follows the format of "\\n\\n"."\\n\\n"."\\n\\n". An example would be: "myorg1"."account1"."db1"
512
+ Specifies whether to drop public schema on creation or not. Modifying the parameter after database is already created won't have any effect.
219
513
  """
220
- return pulumi.get(self, "from_replica")
514
+ return pulumi.get(self, "drop_public_schema_on_creation")
221
515
 
222
- @from_replica.setter
223
- def from_replica(self, value: Optional[pulumi.Input[str]]):
224
- pulumi.set(self, "from_replica", value)
516
+ @drop_public_schema_on_creation.setter
517
+ def drop_public_schema_on_creation(self, value: Optional[pulumi.Input[bool]]):
518
+ pulumi.set(self, "drop_public_schema_on_creation", value)
225
519
 
226
520
  @property
227
- @pulumi.getter(name="fromShare")
228
- def from_share(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
521
+ @pulumi.getter(name="enableConsoleOutput")
522
+ def enable_console_output(self) -> Optional[pulumi.Input[bool]]:
229
523
  """
230
- Specify a provider and a share in this map to create a database from a share.
524
+ If true, enables stdout/stderr fast path logging for anonymous stored procedures.
231
525
  """
232
- return pulumi.get(self, "from_share")
526
+ return pulumi.get(self, "enable_console_output")
233
527
 
234
- @from_share.setter
235
- def from_share(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
236
- pulumi.set(self, "from_share", value)
528
+ @enable_console_output.setter
529
+ def enable_console_output(self, value: Optional[pulumi.Input[bool]]):
530
+ pulumi.set(self, "enable_console_output", value)
531
+
532
+ @property
533
+ @pulumi.getter(name="externalVolume")
534
+ def external_volume(self) -> Optional[pulumi.Input[str]]:
535
+ """
536
+ The database parameter that specifies the default external volume to use for Iceberg tables. For more information, see [EXTERNAL_VOLUME](https://docs.snowflake.com/en/sql-reference/parameters#external-volume).
537
+ """
538
+ return pulumi.get(self, "external_volume")
539
+
540
+ @external_volume.setter
541
+ def external_volume(self, value: Optional[pulumi.Input[str]]):
542
+ pulumi.set(self, "external_volume", value)
543
+
544
+ @property
545
+ @pulumi.getter(name="fullyQualifiedName")
546
+ def fully_qualified_name(self) -> Optional[pulumi.Input[str]]:
547
+ """
548
+ Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
549
+ """
550
+ return pulumi.get(self, "fully_qualified_name")
551
+
552
+ @fully_qualified_name.setter
553
+ def fully_qualified_name(self, value: Optional[pulumi.Input[str]]):
554
+ pulumi.set(self, "fully_qualified_name", value)
237
555
 
238
556
  @property
239
557
  @pulumi.getter(name="isTransient")
240
558
  def is_transient(self) -> Optional[pulumi.Input[bool]]:
241
559
  """
242
- Specifies a database as transient. Transient databases do not have a Fail-safe period so they do not incur additional storage costs once they leave Time Travel; however, this means they are also not protected by Fail-safe in the event of a data loss.
560
+ Specifies the database as transient. Transient databases do not have a Fail-safe period so they do not incur additional storage costs once they leave Time Travel; however, this means they are also not protected by Fail-safe in the event of a data loss.
243
561
  """
244
562
  return pulumi.get(self, "is_transient")
245
563
 
@@ -247,9 +565,36 @@ class _DatabaseState:
247
565
  def is_transient(self, value: Optional[pulumi.Input[bool]]):
248
566
  pulumi.set(self, "is_transient", value)
249
567
 
568
+ @property
569
+ @pulumi.getter(name="logLevel")
570
+ def log_level(self) -> Optional[pulumi.Input[str]]:
571
+ """
572
+ Specifies the severity level of messages that should be ingested and made available in the active event table. Valid options are: [TRACE DEBUG INFO WARN ERROR FATAL OFF]. Messages at the specified level (and at more severe levels) are ingested. For more information, see [LOG_LEVEL](https://docs.snowflake.com/en/sql-reference/parameters.html#label-log-level).
573
+ """
574
+ return pulumi.get(self, "log_level")
575
+
576
+ @log_level.setter
577
+ def log_level(self, value: Optional[pulumi.Input[str]]):
578
+ pulumi.set(self, "log_level", value)
579
+
580
+ @property
581
+ @pulumi.getter(name="maxDataExtensionTimeInDays")
582
+ def max_data_extension_time_in_days(self) -> Optional[pulumi.Input[int]]:
583
+ """
584
+ Object parameter that specifies the maximum number of days for which Snowflake can extend the data retention period for tables in the database to prevent streams on the tables from becoming stale. For a detailed description of this parameter, see [MAX*DATA*EXTENSION*TIME*IN_DAYS](https://docs.snowflake.com/en/sql-reference/parameters.html#label-max-data-extension-time-in-days).
585
+ """
586
+ return pulumi.get(self, "max_data_extension_time_in_days")
587
+
588
+ @max_data_extension_time_in_days.setter
589
+ def max_data_extension_time_in_days(self, value: Optional[pulumi.Input[int]]):
590
+ pulumi.set(self, "max_data_extension_time_in_days", value)
591
+
250
592
  @property
251
593
  @pulumi.getter
252
594
  def name(self) -> Optional[pulumi.Input[str]]:
595
+ """
596
+ Specifies the identifier for the database; must be unique for your account. As a best practice for [Database Replication and Failover](https://docs.snowflake.com/en/user-guide/db-replication-intro), it is recommended to give each secondary database the same name as its primary database. This practice supports referencing fully-qualified objects (i.e. '\\n\\n.\\n\\n.\\n\\n') by other objects in the same database, such as querying a fully-qualified table name in a view. If a secondary database has a different name from the primary database, then these object references would break in the secondary database. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
597
+ """
253
598
  return pulumi.get(self, "name")
254
599
 
255
600
  @name.setter
@@ -257,16 +602,124 @@ class _DatabaseState:
257
602
  pulumi.set(self, "name", value)
258
603
 
259
604
  @property
260
- @pulumi.getter(name="replicationConfiguration")
261
- def replication_configuration(self) -> Optional[pulumi.Input['DatabaseReplicationConfigurationArgs']]:
605
+ @pulumi.getter(name="quotedIdentifiersIgnoreCase")
606
+ def quoted_identifiers_ignore_case(self) -> Optional[pulumi.Input[bool]]:
262
607
  """
263
- When set, specifies the configurations for database replication.
608
+ If true, the case of quoted identifiers is ignored. For more information, see [QUOTED*IDENTIFIERS*IGNORE_CASE](https://docs.snowflake.com/en/sql-reference/parameters#quoted-identifiers-ignore-case).
264
609
  """
265
- return pulumi.get(self, "replication_configuration")
610
+ return pulumi.get(self, "quoted_identifiers_ignore_case")
266
611
 
267
- @replication_configuration.setter
268
- def replication_configuration(self, value: Optional[pulumi.Input['DatabaseReplicationConfigurationArgs']]):
269
- pulumi.set(self, "replication_configuration", value)
612
+ @quoted_identifiers_ignore_case.setter
613
+ def quoted_identifiers_ignore_case(self, value: Optional[pulumi.Input[bool]]):
614
+ pulumi.set(self, "quoted_identifiers_ignore_case", value)
615
+
616
+ @property
617
+ @pulumi.getter(name="replaceInvalidCharacters")
618
+ def replace_invalid_characters(self) -> Optional[pulumi.Input[bool]]:
619
+ """
620
+ Specifies whether to replace invalid UTF-8 characters with the Unicode replacement character (�) in query results for an Iceberg table. You can only set this parameter for tables that use an external Iceberg catalog. For more information, see [REPLACE*INVALID*CHARACTERS](https://docs.snowflake.com/en/sql-reference/parameters#replace-invalid-characters).
621
+ """
622
+ return pulumi.get(self, "replace_invalid_characters")
623
+
624
+ @replace_invalid_characters.setter
625
+ def replace_invalid_characters(self, value: Optional[pulumi.Input[bool]]):
626
+ pulumi.set(self, "replace_invalid_characters", value)
627
+
628
+ @property
629
+ @pulumi.getter
630
+ def replication(self) -> Optional[pulumi.Input['DatabaseReplicationArgs']]:
631
+ """
632
+ Configures replication for a given database. When specified, this database will be promoted to serve as a primary database for replication. A primary database can be replicated in one or more accounts, allowing users in those accounts to query objects in each secondary (i.e. replica) database.
633
+ """
634
+ return pulumi.get(self, "replication")
635
+
636
+ @replication.setter
637
+ def replication(self, value: Optional[pulumi.Input['DatabaseReplicationArgs']]):
638
+ pulumi.set(self, "replication", value)
639
+
640
+ @property
641
+ @pulumi.getter(name="storageSerializationPolicy")
642
+ def storage_serialization_policy(self) -> Optional[pulumi.Input[str]]:
643
+ """
644
+ The storage serialization policy for Iceberg tables that use Snowflake as the catalog. Valid options are: [COMPATIBLE OPTIMIZED]. COMPATIBLE: Snowflake performs encoding and compression of data files that ensures interoperability with third-party compute engines. OPTIMIZED: Snowflake performs encoding and compression of data files that ensures the best table performance within Snowflake. For more information, see [STORAGE*SERIALIZATION*POLICY](https://docs.snowflake.com/en/sql-reference/parameters#storage-serialization-policy).
645
+ """
646
+ return pulumi.get(self, "storage_serialization_policy")
647
+
648
+ @storage_serialization_policy.setter
649
+ def storage_serialization_policy(self, value: Optional[pulumi.Input[str]]):
650
+ pulumi.set(self, "storage_serialization_policy", value)
651
+
652
+ @property
653
+ @pulumi.getter(name="suspendTaskAfterNumFailures")
654
+ def suspend_task_after_num_failures(self) -> Optional[pulumi.Input[int]]:
655
+ """
656
+ How many times a task must fail in a row before it is automatically suspended. 0 disables auto-suspending. For more information, see [SUSPEND*TASK*AFTER*NUM*FAILURES](https://docs.snowflake.com/en/sql-reference/parameters#suspend-task-after-num-failures).
657
+ """
658
+ return pulumi.get(self, "suspend_task_after_num_failures")
659
+
660
+ @suspend_task_after_num_failures.setter
661
+ def suspend_task_after_num_failures(self, value: Optional[pulumi.Input[int]]):
662
+ pulumi.set(self, "suspend_task_after_num_failures", value)
663
+
664
+ @property
665
+ @pulumi.getter(name="taskAutoRetryAttempts")
666
+ def task_auto_retry_attempts(self) -> Optional[pulumi.Input[int]]:
667
+ """
668
+ Maximum automatic retries allowed for a user task. For more information, see [TASK*AUTO*RETRY_ATTEMPTS](https://docs.snowflake.com/en/sql-reference/parameters#task-auto-retry-attempts).
669
+ """
670
+ return pulumi.get(self, "task_auto_retry_attempts")
671
+
672
+ @task_auto_retry_attempts.setter
673
+ def task_auto_retry_attempts(self, value: Optional[pulumi.Input[int]]):
674
+ pulumi.set(self, "task_auto_retry_attempts", value)
675
+
676
+ @property
677
+ @pulumi.getter(name="traceLevel")
678
+ def trace_level(self) -> Optional[pulumi.Input[str]]:
679
+ """
680
+ Controls how trace events are ingested into the event table. Valid options are: [ALWAYS ON*EVENT OFF]. For information about levels, see [TRACE*LEVEL](https://docs.snowflake.com/en/sql-reference/parameters.html#label-trace-level).
681
+ """
682
+ return pulumi.get(self, "trace_level")
683
+
684
+ @trace_level.setter
685
+ def trace_level(self, value: Optional[pulumi.Input[str]]):
686
+ pulumi.set(self, "trace_level", value)
687
+
688
+ @property
689
+ @pulumi.getter(name="userTaskManagedInitialWarehouseSize")
690
+ def user_task_managed_initial_warehouse_size(self) -> Optional[pulumi.Input[str]]:
691
+ """
692
+ The initial size of warehouse to use for managed warehouses in the absence of history. For more information, see [USER*TASK*MANAGED*INITIAL*WAREHOUSE_SIZE](https://docs.snowflake.com/en/sql-reference/parameters#user-task-managed-initial-warehouse-size).
693
+ """
694
+ return pulumi.get(self, "user_task_managed_initial_warehouse_size")
695
+
696
+ @user_task_managed_initial_warehouse_size.setter
697
+ def user_task_managed_initial_warehouse_size(self, value: Optional[pulumi.Input[str]]):
698
+ pulumi.set(self, "user_task_managed_initial_warehouse_size", value)
699
+
700
+ @property
701
+ @pulumi.getter(name="userTaskMinimumTriggerIntervalInSeconds")
702
+ def user_task_minimum_trigger_interval_in_seconds(self) -> Optional[pulumi.Input[int]]:
703
+ """
704
+ Minimum amount of time between Triggered Task executions in seconds.
705
+ """
706
+ return pulumi.get(self, "user_task_minimum_trigger_interval_in_seconds")
707
+
708
+ @user_task_minimum_trigger_interval_in_seconds.setter
709
+ def user_task_minimum_trigger_interval_in_seconds(self, value: Optional[pulumi.Input[int]]):
710
+ pulumi.set(self, "user_task_minimum_trigger_interval_in_seconds", value)
711
+
712
+ @property
713
+ @pulumi.getter(name="userTaskTimeoutMs")
714
+ def user_task_timeout_ms(self) -> Optional[pulumi.Input[int]]:
715
+ """
716
+ User task execution timeout in milliseconds. For more information, see [USER*TASK*TIMEOUT_MS](https://docs.snowflake.com/en/sql-reference/parameters#user-task-timeout-ms).
717
+ """
718
+ return pulumi.get(self, "user_task_timeout_ms")
719
+
720
+ @user_task_timeout_ms.setter
721
+ def user_task_timeout_ms(self, value: Optional[pulumi.Input[int]]):
722
+ pulumi.set(self, "user_task_timeout_ms", value)
270
723
 
271
724
 
272
725
  class Database(pulumi.CustomResource):
@@ -274,62 +727,58 @@ class Database(pulumi.CustomResource):
274
727
  def __init__(__self__,
275
728
  resource_name: str,
276
729
  opts: Optional[pulumi.ResourceOptions] = None,
730
+ catalog: Optional[pulumi.Input[str]] = None,
277
731
  comment: Optional[pulumi.Input[str]] = None,
278
732
  data_retention_time_in_days: Optional[pulumi.Input[int]] = None,
279
- from_database: Optional[pulumi.Input[str]] = None,
280
- from_replica: Optional[pulumi.Input[str]] = None,
281
- from_share: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
733
+ default_ddl_collation: Optional[pulumi.Input[str]] = None,
734
+ drop_public_schema_on_creation: Optional[pulumi.Input[bool]] = None,
735
+ enable_console_output: Optional[pulumi.Input[bool]] = None,
736
+ external_volume: Optional[pulumi.Input[str]] = None,
282
737
  is_transient: Optional[pulumi.Input[bool]] = None,
738
+ log_level: Optional[pulumi.Input[str]] = None,
739
+ max_data_extension_time_in_days: Optional[pulumi.Input[int]] = None,
283
740
  name: Optional[pulumi.Input[str]] = None,
284
- replication_configuration: Optional[pulumi.Input[pulumi.InputType['DatabaseReplicationConfigurationArgs']]] = None,
741
+ quoted_identifiers_ignore_case: Optional[pulumi.Input[bool]] = None,
742
+ replace_invalid_characters: Optional[pulumi.Input[bool]] = None,
743
+ replication: Optional[pulumi.Input[Union['DatabaseReplicationArgs', 'DatabaseReplicationArgsDict']]] = None,
744
+ storage_serialization_policy: Optional[pulumi.Input[str]] = None,
745
+ suspend_task_after_num_failures: Optional[pulumi.Input[int]] = None,
746
+ task_auto_retry_attempts: Optional[pulumi.Input[int]] = None,
747
+ trace_level: Optional[pulumi.Input[str]] = None,
748
+ user_task_managed_initial_warehouse_size: Optional[pulumi.Input[str]] = None,
749
+ user_task_minimum_trigger_interval_in_seconds: Optional[pulumi.Input[int]] = None,
750
+ user_task_timeout_ms: Optional[pulumi.Input[int]] = None,
285
751
  __props__=None):
286
752
  """
287
- ## Example Usage
288
-
289
- <!--Start PulumiCodeChooser -->
290
- ```python
291
- import pulumi
292
- import pulumi_snowflake as snowflake
293
-
294
- simple = snowflake.Database("simple",
295
- comment="test comment",
296
- data_retention_time_in_days=3)
297
- with_replication = snowflake.Database("withReplication",
298
- comment="test comment 2",
299
- replication_configuration=snowflake.DatabaseReplicationConfigurationArgs(
300
- accounts=[
301
- "test_account1",
302
- "test_account_2",
303
- ],
304
- ignore_edition_check=True,
305
- ))
306
- from_replica = snowflake.Database("fromReplica",
307
- comment="test comment",
308
- data_retention_time_in_days=3,
309
- from_replica="\\"org1\\".\\"account1\\".\\"primary_db_name\\"")
310
- from_share = snowflake.Database("fromShare",
311
- comment="test comment",
312
- from_share={
313
- "provider": "org1.account1",
314
- "share": "share1",
315
- })
316
- ```
317
- <!--End PulumiCodeChooser -->
318
-
319
753
  ## Import
320
754
 
321
755
  ```sh
322
- $ pulumi import snowflake:index/database:Database example name
756
+ $ pulumi import snowflake:index/database:Database example '"<database_name>"'
323
757
  ```
324
758
 
325
759
  :param str resource_name: The name of the resource.
326
760
  :param pulumi.ResourceOptions opts: Options for the resource.
327
- :param pulumi.Input[int] data_retention_time_in_days: Number of days for which Snowflake retains historical data for performing Time Travel actions (SELECT, CLONE, UNDROP) on the object. A value of 0 effectively disables Time Travel for the specified database. Default value for this field is set to -1, which is a fallback to use Snowflake default. For more information, see Understanding & Using Time Travel.
328
- :param pulumi.Input[str] from_database: Specify a database to create a clone from.
329
- :param pulumi.Input[str] from_replica: Specify a fully-qualified path to a database to create a replica from. A fully qualified path follows the format of "\\n\\n"."\\n\\n"."\\n\\n". An example would be: "myorg1"."account1"."db1"
330
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] from_share: Specify a provider and a share in this map to create a database from a share.
331
- :param pulumi.Input[bool] is_transient: Specifies a database as transient. Transient databases do not have a Fail-safe period so they do not incur additional storage costs once they leave Time Travel; however, this means they are also not protected by Fail-safe in the event of a data loss.
332
- :param pulumi.Input[pulumi.InputType['DatabaseReplicationConfigurationArgs']] replication_configuration: When set, specifies the configurations for database replication.
761
+ :param pulumi.Input[str] catalog: The database parameter that specifies the default catalog to use for Iceberg tables. For more information, see [CATALOG](https://docs.snowflake.com/en/sql-reference/parameters#catalog).
762
+ :param pulumi.Input[str] comment: Specifies a comment for the database.
763
+ :param pulumi.Input[int] data_retention_time_in_days: Specifies the number of days for which Time Travel actions (CLONE and UNDROP) can be performed on the database, as well as specifying the default Time Travel retention time for all schemas created in the database. For more details, see [Understanding & Using Time Travel](https://docs.snowflake.com/en/user-guide/data-time-travel).
764
+ :param pulumi.Input[str] default_ddl_collation: Specifies a default collation specification for all schemas and tables added to the database. It can be overridden on schema or table level. For more information, see [collation specification](https://docs.snowflake.com/en/sql-reference/collation#label-collation-specification).
765
+ :param pulumi.Input[bool] drop_public_schema_on_creation: Specifies whether to drop public schema on creation or not. Modifying the parameter after database is already created won't have any effect.
766
+ :param pulumi.Input[bool] enable_console_output: If true, enables stdout/stderr fast path logging for anonymous stored procedures.
767
+ :param pulumi.Input[str] external_volume: The database parameter that specifies the default external volume to use for Iceberg tables. For more information, see [EXTERNAL_VOLUME](https://docs.snowflake.com/en/sql-reference/parameters#external-volume).
768
+ :param pulumi.Input[bool] is_transient: Specifies the database as transient. Transient databases do not have a Fail-safe period so they do not incur additional storage costs once they leave Time Travel; however, this means they are also not protected by Fail-safe in the event of a data loss.
769
+ :param pulumi.Input[str] log_level: Specifies the severity level of messages that should be ingested and made available in the active event table. Valid options are: [TRACE DEBUG INFO WARN ERROR FATAL OFF]. Messages at the specified level (and at more severe levels) are ingested. For more information, see [LOG_LEVEL](https://docs.snowflake.com/en/sql-reference/parameters.html#label-log-level).
770
+ :param pulumi.Input[int] max_data_extension_time_in_days: Object parameter that specifies the maximum number of days for which Snowflake can extend the data retention period for tables in the database to prevent streams on the tables from becoming stale. For a detailed description of this parameter, see [MAX*DATA*EXTENSION*TIME*IN_DAYS](https://docs.snowflake.com/en/sql-reference/parameters.html#label-max-data-extension-time-in-days).
771
+ :param pulumi.Input[str] name: Specifies the identifier for the database; must be unique for your account. As a best practice for [Database Replication and Failover](https://docs.snowflake.com/en/user-guide/db-replication-intro), it is recommended to give each secondary database the same name as its primary database. This practice supports referencing fully-qualified objects (i.e. '\\n\\n.\\n\\n.\\n\\n') by other objects in the same database, such as querying a fully-qualified table name in a view. If a secondary database has a different name from the primary database, then these object references would break in the secondary database. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
772
+ :param pulumi.Input[bool] quoted_identifiers_ignore_case: If true, the case of quoted identifiers is ignored. For more information, see [QUOTED*IDENTIFIERS*IGNORE_CASE](https://docs.snowflake.com/en/sql-reference/parameters#quoted-identifiers-ignore-case).
773
+ :param pulumi.Input[bool] replace_invalid_characters: Specifies whether to replace invalid UTF-8 characters with the Unicode replacement character (�) in query results for an Iceberg table. You can only set this parameter for tables that use an external Iceberg catalog. For more information, see [REPLACE*INVALID*CHARACTERS](https://docs.snowflake.com/en/sql-reference/parameters#replace-invalid-characters).
774
+ :param pulumi.Input[Union['DatabaseReplicationArgs', 'DatabaseReplicationArgsDict']] replication: Configures replication for a given database. When specified, this database will be promoted to serve as a primary database for replication. A primary database can be replicated in one or more accounts, allowing users in those accounts to query objects in each secondary (i.e. replica) database.
775
+ :param pulumi.Input[str] storage_serialization_policy: The storage serialization policy for Iceberg tables that use Snowflake as the catalog. Valid options are: [COMPATIBLE OPTIMIZED]. COMPATIBLE: Snowflake performs encoding and compression of data files that ensures interoperability with third-party compute engines. OPTIMIZED: Snowflake performs encoding and compression of data files that ensures the best table performance within Snowflake. For more information, see [STORAGE*SERIALIZATION*POLICY](https://docs.snowflake.com/en/sql-reference/parameters#storage-serialization-policy).
776
+ :param pulumi.Input[int] suspend_task_after_num_failures: How many times a task must fail in a row before it is automatically suspended. 0 disables auto-suspending. For more information, see [SUSPEND*TASK*AFTER*NUM*FAILURES](https://docs.snowflake.com/en/sql-reference/parameters#suspend-task-after-num-failures).
777
+ :param pulumi.Input[int] task_auto_retry_attempts: Maximum automatic retries allowed for a user task. For more information, see [TASK*AUTO*RETRY_ATTEMPTS](https://docs.snowflake.com/en/sql-reference/parameters#task-auto-retry-attempts).
778
+ :param pulumi.Input[str] trace_level: Controls how trace events are ingested into the event table. Valid options are: [ALWAYS ON*EVENT OFF]. For information about levels, see [TRACE*LEVEL](https://docs.snowflake.com/en/sql-reference/parameters.html#label-trace-level).
779
+ :param pulumi.Input[str] user_task_managed_initial_warehouse_size: The initial size of warehouse to use for managed warehouses in the absence of history. For more information, see [USER*TASK*MANAGED*INITIAL*WAREHOUSE_SIZE](https://docs.snowflake.com/en/sql-reference/parameters#user-task-managed-initial-warehouse-size).
780
+ :param pulumi.Input[int] user_task_minimum_trigger_interval_in_seconds: Minimum amount of time between Triggered Task executions in seconds.
781
+ :param pulumi.Input[int] user_task_timeout_ms: User task execution timeout in milliseconds. For more information, see [USER*TASK*TIMEOUT_MS](https://docs.snowflake.com/en/sql-reference/parameters#user-task-timeout-ms).
333
782
  """
334
783
  ...
335
784
  @overload
@@ -338,42 +787,10 @@ class Database(pulumi.CustomResource):
338
787
  args: Optional[DatabaseArgs] = None,
339
788
  opts: Optional[pulumi.ResourceOptions] = None):
340
789
  """
341
- ## Example Usage
342
-
343
- <!--Start PulumiCodeChooser -->
344
- ```python
345
- import pulumi
346
- import pulumi_snowflake as snowflake
347
-
348
- simple = snowflake.Database("simple",
349
- comment="test comment",
350
- data_retention_time_in_days=3)
351
- with_replication = snowflake.Database("withReplication",
352
- comment="test comment 2",
353
- replication_configuration=snowflake.DatabaseReplicationConfigurationArgs(
354
- accounts=[
355
- "test_account1",
356
- "test_account_2",
357
- ],
358
- ignore_edition_check=True,
359
- ))
360
- from_replica = snowflake.Database("fromReplica",
361
- comment="test comment",
362
- data_retention_time_in_days=3,
363
- from_replica="\\"org1\\".\\"account1\\".\\"primary_db_name\\"")
364
- from_share = snowflake.Database("fromShare",
365
- comment="test comment",
366
- from_share={
367
- "provider": "org1.account1",
368
- "share": "share1",
369
- })
370
- ```
371
- <!--End PulumiCodeChooser -->
372
-
373
790
  ## Import
374
791
 
375
792
  ```sh
376
- $ pulumi import snowflake:index/database:Database example name
793
+ $ pulumi import snowflake:index/database:Database example '"<database_name>"'
377
794
  ```
378
795
 
379
796
  :param str resource_name: The name of the resource.
@@ -391,14 +808,27 @@ class Database(pulumi.CustomResource):
391
808
  def _internal_init(__self__,
392
809
  resource_name: str,
393
810
  opts: Optional[pulumi.ResourceOptions] = None,
811
+ catalog: Optional[pulumi.Input[str]] = None,
394
812
  comment: Optional[pulumi.Input[str]] = None,
395
813
  data_retention_time_in_days: Optional[pulumi.Input[int]] = None,
396
- from_database: Optional[pulumi.Input[str]] = None,
397
- from_replica: Optional[pulumi.Input[str]] = None,
398
- from_share: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
814
+ default_ddl_collation: Optional[pulumi.Input[str]] = None,
815
+ drop_public_schema_on_creation: Optional[pulumi.Input[bool]] = None,
816
+ enable_console_output: Optional[pulumi.Input[bool]] = None,
817
+ external_volume: Optional[pulumi.Input[str]] = None,
399
818
  is_transient: Optional[pulumi.Input[bool]] = None,
819
+ log_level: Optional[pulumi.Input[str]] = None,
820
+ max_data_extension_time_in_days: Optional[pulumi.Input[int]] = None,
400
821
  name: Optional[pulumi.Input[str]] = None,
401
- replication_configuration: Optional[pulumi.Input[pulumi.InputType['DatabaseReplicationConfigurationArgs']]] = None,
822
+ quoted_identifiers_ignore_case: Optional[pulumi.Input[bool]] = None,
823
+ replace_invalid_characters: Optional[pulumi.Input[bool]] = None,
824
+ replication: Optional[pulumi.Input[Union['DatabaseReplicationArgs', 'DatabaseReplicationArgsDict']]] = None,
825
+ storage_serialization_policy: Optional[pulumi.Input[str]] = None,
826
+ suspend_task_after_num_failures: Optional[pulumi.Input[int]] = None,
827
+ task_auto_retry_attempts: Optional[pulumi.Input[int]] = None,
828
+ trace_level: Optional[pulumi.Input[str]] = None,
829
+ user_task_managed_initial_warehouse_size: Optional[pulumi.Input[str]] = None,
830
+ user_task_minimum_trigger_interval_in_seconds: Optional[pulumi.Input[int]] = None,
831
+ user_task_timeout_ms: Optional[pulumi.Input[int]] = None,
402
832
  __props__=None):
403
833
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
404
834
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -408,14 +838,28 @@ class Database(pulumi.CustomResource):
408
838
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
409
839
  __props__ = DatabaseArgs.__new__(DatabaseArgs)
410
840
 
841
+ __props__.__dict__["catalog"] = catalog
411
842
  __props__.__dict__["comment"] = comment
412
843
  __props__.__dict__["data_retention_time_in_days"] = data_retention_time_in_days
413
- __props__.__dict__["from_database"] = from_database
414
- __props__.__dict__["from_replica"] = from_replica
415
- __props__.__dict__["from_share"] = from_share
844
+ __props__.__dict__["default_ddl_collation"] = default_ddl_collation
845
+ __props__.__dict__["drop_public_schema_on_creation"] = drop_public_schema_on_creation
846
+ __props__.__dict__["enable_console_output"] = enable_console_output
847
+ __props__.__dict__["external_volume"] = external_volume
416
848
  __props__.__dict__["is_transient"] = is_transient
849
+ __props__.__dict__["log_level"] = log_level
850
+ __props__.__dict__["max_data_extension_time_in_days"] = max_data_extension_time_in_days
417
851
  __props__.__dict__["name"] = name
418
- __props__.__dict__["replication_configuration"] = replication_configuration
852
+ __props__.__dict__["quoted_identifiers_ignore_case"] = quoted_identifiers_ignore_case
853
+ __props__.__dict__["replace_invalid_characters"] = replace_invalid_characters
854
+ __props__.__dict__["replication"] = replication
855
+ __props__.__dict__["storage_serialization_policy"] = storage_serialization_policy
856
+ __props__.__dict__["suspend_task_after_num_failures"] = suspend_task_after_num_failures
857
+ __props__.__dict__["task_auto_retry_attempts"] = task_auto_retry_attempts
858
+ __props__.__dict__["trace_level"] = trace_level
859
+ __props__.__dict__["user_task_managed_initial_warehouse_size"] = user_task_managed_initial_warehouse_size
860
+ __props__.__dict__["user_task_minimum_trigger_interval_in_seconds"] = user_task_minimum_trigger_interval_in_seconds
861
+ __props__.__dict__["user_task_timeout_ms"] = user_task_timeout_ms
862
+ __props__.__dict__["fully_qualified_name"] = None
419
863
  super(Database, __self__).__init__(
420
864
  'snowflake:index/database:Database',
421
865
  resource_name,
@@ -426,14 +870,28 @@ class Database(pulumi.CustomResource):
426
870
  def get(resource_name: str,
427
871
  id: pulumi.Input[str],
428
872
  opts: Optional[pulumi.ResourceOptions] = None,
873
+ catalog: Optional[pulumi.Input[str]] = None,
429
874
  comment: Optional[pulumi.Input[str]] = None,
430
875
  data_retention_time_in_days: Optional[pulumi.Input[int]] = None,
431
- from_database: Optional[pulumi.Input[str]] = None,
432
- from_replica: Optional[pulumi.Input[str]] = None,
433
- from_share: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
876
+ default_ddl_collation: Optional[pulumi.Input[str]] = None,
877
+ drop_public_schema_on_creation: Optional[pulumi.Input[bool]] = None,
878
+ enable_console_output: Optional[pulumi.Input[bool]] = None,
879
+ external_volume: Optional[pulumi.Input[str]] = None,
880
+ fully_qualified_name: Optional[pulumi.Input[str]] = None,
434
881
  is_transient: Optional[pulumi.Input[bool]] = None,
882
+ log_level: Optional[pulumi.Input[str]] = None,
883
+ max_data_extension_time_in_days: Optional[pulumi.Input[int]] = None,
435
884
  name: Optional[pulumi.Input[str]] = None,
436
- replication_configuration: Optional[pulumi.Input[pulumi.InputType['DatabaseReplicationConfigurationArgs']]] = None) -> 'Database':
885
+ quoted_identifiers_ignore_case: Optional[pulumi.Input[bool]] = None,
886
+ replace_invalid_characters: Optional[pulumi.Input[bool]] = None,
887
+ replication: Optional[pulumi.Input[Union['DatabaseReplicationArgs', 'DatabaseReplicationArgsDict']]] = None,
888
+ storage_serialization_policy: Optional[pulumi.Input[str]] = None,
889
+ suspend_task_after_num_failures: Optional[pulumi.Input[int]] = None,
890
+ task_auto_retry_attempts: Optional[pulumi.Input[int]] = None,
891
+ trace_level: Optional[pulumi.Input[str]] = None,
892
+ user_task_managed_initial_warehouse_size: Optional[pulumi.Input[str]] = None,
893
+ user_task_minimum_trigger_interval_in_seconds: Optional[pulumi.Input[int]] = None,
894
+ user_task_timeout_ms: Optional[pulumi.Input[int]] = None) -> 'Database':
437
895
  """
438
896
  Get an existing Database resource's state with the given name, id, and optional extra
439
897
  properties used to qualify the lookup.
@@ -441,82 +899,230 @@ class Database(pulumi.CustomResource):
441
899
  :param str resource_name: The unique name of the resulting resource.
442
900
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
443
901
  :param pulumi.ResourceOptions opts: Options for the resource.
444
- :param pulumi.Input[int] data_retention_time_in_days: Number of days for which Snowflake retains historical data for performing Time Travel actions (SELECT, CLONE, UNDROP) on the object. A value of 0 effectively disables Time Travel for the specified database. Default value for this field is set to -1, which is a fallback to use Snowflake default. For more information, see Understanding & Using Time Travel.
445
- :param pulumi.Input[str] from_database: Specify a database to create a clone from.
446
- :param pulumi.Input[str] from_replica: Specify a fully-qualified path to a database to create a replica from. A fully qualified path follows the format of "\\n\\n"."\\n\\n"."\\n\\n". An example would be: "myorg1"."account1"."db1"
447
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] from_share: Specify a provider and a share in this map to create a database from a share.
448
- :param pulumi.Input[bool] is_transient: Specifies a database as transient. Transient databases do not have a Fail-safe period so they do not incur additional storage costs once they leave Time Travel; however, this means they are also not protected by Fail-safe in the event of a data loss.
449
- :param pulumi.Input[pulumi.InputType['DatabaseReplicationConfigurationArgs']] replication_configuration: When set, specifies the configurations for database replication.
902
+ :param pulumi.Input[str] catalog: The database parameter that specifies the default catalog to use for Iceberg tables. For more information, see [CATALOG](https://docs.snowflake.com/en/sql-reference/parameters#catalog).
903
+ :param pulumi.Input[str] comment: Specifies a comment for the database.
904
+ :param pulumi.Input[int] data_retention_time_in_days: Specifies the number of days for which Time Travel actions (CLONE and UNDROP) can be performed on the database, as well as specifying the default Time Travel retention time for all schemas created in the database. For more details, see [Understanding & Using Time Travel](https://docs.snowflake.com/en/user-guide/data-time-travel).
905
+ :param pulumi.Input[str] default_ddl_collation: Specifies a default collation specification for all schemas and tables added to the database. It can be overridden on schema or table level. For more information, see [collation specification](https://docs.snowflake.com/en/sql-reference/collation#label-collation-specification).
906
+ :param pulumi.Input[bool] drop_public_schema_on_creation: Specifies whether to drop public schema on creation or not. Modifying the parameter after database is already created won't have any effect.
907
+ :param pulumi.Input[bool] enable_console_output: If true, enables stdout/stderr fast path logging for anonymous stored procedures.
908
+ :param pulumi.Input[str] external_volume: The database parameter that specifies the default external volume to use for Iceberg tables. For more information, see [EXTERNAL_VOLUME](https://docs.snowflake.com/en/sql-reference/parameters#external-volume).
909
+ :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).
910
+ :param pulumi.Input[bool] is_transient: Specifies the database as transient. Transient databases do not have a Fail-safe period so they do not incur additional storage costs once they leave Time Travel; however, this means they are also not protected by Fail-safe in the event of a data loss.
911
+ :param pulumi.Input[str] log_level: Specifies the severity level of messages that should be ingested and made available in the active event table. Valid options are: [TRACE DEBUG INFO WARN ERROR FATAL OFF]. Messages at the specified level (and at more severe levels) are ingested. For more information, see [LOG_LEVEL](https://docs.snowflake.com/en/sql-reference/parameters.html#label-log-level).
912
+ :param pulumi.Input[int] max_data_extension_time_in_days: Object parameter that specifies the maximum number of days for which Snowflake can extend the data retention period for tables in the database to prevent streams on the tables from becoming stale. For a detailed description of this parameter, see [MAX*DATA*EXTENSION*TIME*IN_DAYS](https://docs.snowflake.com/en/sql-reference/parameters.html#label-max-data-extension-time-in-days).
913
+ :param pulumi.Input[str] name: Specifies the identifier for the database; must be unique for your account. As a best practice for [Database Replication and Failover](https://docs.snowflake.com/en/user-guide/db-replication-intro), it is recommended to give each secondary database the same name as its primary database. This practice supports referencing fully-qualified objects (i.e. '\\n\\n.\\n\\n.\\n\\n') by other objects in the same database, such as querying a fully-qualified table name in a view. If a secondary database has a different name from the primary database, then these object references would break in the secondary database. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
914
+ :param pulumi.Input[bool] quoted_identifiers_ignore_case: If true, the case of quoted identifiers is ignored. For more information, see [QUOTED*IDENTIFIERS*IGNORE_CASE](https://docs.snowflake.com/en/sql-reference/parameters#quoted-identifiers-ignore-case).
915
+ :param pulumi.Input[bool] replace_invalid_characters: Specifies whether to replace invalid UTF-8 characters with the Unicode replacement character (�) in query results for an Iceberg table. You can only set this parameter for tables that use an external Iceberg catalog. For more information, see [REPLACE*INVALID*CHARACTERS](https://docs.snowflake.com/en/sql-reference/parameters#replace-invalid-characters).
916
+ :param pulumi.Input[Union['DatabaseReplicationArgs', 'DatabaseReplicationArgsDict']] replication: Configures replication for a given database. When specified, this database will be promoted to serve as a primary database for replication. A primary database can be replicated in one or more accounts, allowing users in those accounts to query objects in each secondary (i.e. replica) database.
917
+ :param pulumi.Input[str] storage_serialization_policy: The storage serialization policy for Iceberg tables that use Snowflake as the catalog. Valid options are: [COMPATIBLE OPTIMIZED]. COMPATIBLE: Snowflake performs encoding and compression of data files that ensures interoperability with third-party compute engines. OPTIMIZED: Snowflake performs encoding and compression of data files that ensures the best table performance within Snowflake. For more information, see [STORAGE*SERIALIZATION*POLICY](https://docs.snowflake.com/en/sql-reference/parameters#storage-serialization-policy).
918
+ :param pulumi.Input[int] suspend_task_after_num_failures: How many times a task must fail in a row before it is automatically suspended. 0 disables auto-suspending. For more information, see [SUSPEND*TASK*AFTER*NUM*FAILURES](https://docs.snowflake.com/en/sql-reference/parameters#suspend-task-after-num-failures).
919
+ :param pulumi.Input[int] task_auto_retry_attempts: Maximum automatic retries allowed for a user task. For more information, see [TASK*AUTO*RETRY_ATTEMPTS](https://docs.snowflake.com/en/sql-reference/parameters#task-auto-retry-attempts).
920
+ :param pulumi.Input[str] trace_level: Controls how trace events are ingested into the event table. Valid options are: [ALWAYS ON*EVENT OFF]. For information about levels, see [TRACE*LEVEL](https://docs.snowflake.com/en/sql-reference/parameters.html#label-trace-level).
921
+ :param pulumi.Input[str] user_task_managed_initial_warehouse_size: The initial size of warehouse to use for managed warehouses in the absence of history. For more information, see [USER*TASK*MANAGED*INITIAL*WAREHOUSE_SIZE](https://docs.snowflake.com/en/sql-reference/parameters#user-task-managed-initial-warehouse-size).
922
+ :param pulumi.Input[int] user_task_minimum_trigger_interval_in_seconds: Minimum amount of time between Triggered Task executions in seconds.
923
+ :param pulumi.Input[int] user_task_timeout_ms: User task execution timeout in milliseconds. For more information, see [USER*TASK*TIMEOUT_MS](https://docs.snowflake.com/en/sql-reference/parameters#user-task-timeout-ms).
450
924
  """
451
925
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
452
926
 
453
927
  __props__ = _DatabaseState.__new__(_DatabaseState)
454
928
 
929
+ __props__.__dict__["catalog"] = catalog
455
930
  __props__.__dict__["comment"] = comment
456
931
  __props__.__dict__["data_retention_time_in_days"] = data_retention_time_in_days
457
- __props__.__dict__["from_database"] = from_database
458
- __props__.__dict__["from_replica"] = from_replica
459
- __props__.__dict__["from_share"] = from_share
932
+ __props__.__dict__["default_ddl_collation"] = default_ddl_collation
933
+ __props__.__dict__["drop_public_schema_on_creation"] = drop_public_schema_on_creation
934
+ __props__.__dict__["enable_console_output"] = enable_console_output
935
+ __props__.__dict__["external_volume"] = external_volume
936
+ __props__.__dict__["fully_qualified_name"] = fully_qualified_name
460
937
  __props__.__dict__["is_transient"] = is_transient
938
+ __props__.__dict__["log_level"] = log_level
939
+ __props__.__dict__["max_data_extension_time_in_days"] = max_data_extension_time_in_days
461
940
  __props__.__dict__["name"] = name
462
- __props__.__dict__["replication_configuration"] = replication_configuration
941
+ __props__.__dict__["quoted_identifiers_ignore_case"] = quoted_identifiers_ignore_case
942
+ __props__.__dict__["replace_invalid_characters"] = replace_invalid_characters
943
+ __props__.__dict__["replication"] = replication
944
+ __props__.__dict__["storage_serialization_policy"] = storage_serialization_policy
945
+ __props__.__dict__["suspend_task_after_num_failures"] = suspend_task_after_num_failures
946
+ __props__.__dict__["task_auto_retry_attempts"] = task_auto_retry_attempts
947
+ __props__.__dict__["trace_level"] = trace_level
948
+ __props__.__dict__["user_task_managed_initial_warehouse_size"] = user_task_managed_initial_warehouse_size
949
+ __props__.__dict__["user_task_minimum_trigger_interval_in_seconds"] = user_task_minimum_trigger_interval_in_seconds
950
+ __props__.__dict__["user_task_timeout_ms"] = user_task_timeout_ms
463
951
  return Database(resource_name, opts=opts, __props__=__props__)
464
952
 
953
+ @property
954
+ @pulumi.getter
955
+ def catalog(self) -> pulumi.Output[str]:
956
+ """
957
+ The database parameter that specifies the default catalog to use for Iceberg tables. For more information, see [CATALOG](https://docs.snowflake.com/en/sql-reference/parameters#catalog).
958
+ """
959
+ return pulumi.get(self, "catalog")
960
+
465
961
  @property
466
962
  @pulumi.getter
467
963
  def comment(self) -> pulumi.Output[Optional[str]]:
964
+ """
965
+ Specifies a comment for the database.
966
+ """
468
967
  return pulumi.get(self, "comment")
469
968
 
470
969
  @property
471
970
  @pulumi.getter(name="dataRetentionTimeInDays")
472
- def data_retention_time_in_days(self) -> pulumi.Output[Optional[int]]:
971
+ def data_retention_time_in_days(self) -> pulumi.Output[int]:
473
972
  """
474
- Number of days for which Snowflake retains historical data for performing Time Travel actions (SELECT, CLONE, UNDROP) on the object. A value of 0 effectively disables Time Travel for the specified database. Default value for this field is set to -1, which is a fallback to use Snowflake default. For more information, see Understanding & Using Time Travel.
973
+ Specifies the number of days for which Time Travel actions (CLONE and UNDROP) can be performed on the database, as well as specifying the default Time Travel retention time for all schemas created in the database. For more details, see [Understanding & Using Time Travel](https://docs.snowflake.com/en/user-guide/data-time-travel).
475
974
  """
476
975
  return pulumi.get(self, "data_retention_time_in_days")
477
976
 
478
977
  @property
479
- @pulumi.getter(name="fromDatabase")
480
- def from_database(self) -> pulumi.Output[Optional[str]]:
978
+ @pulumi.getter(name="defaultDdlCollation")
979
+ def default_ddl_collation(self) -> pulumi.Output[str]:
980
+ """
981
+ Specifies a default collation specification for all schemas and tables added to the database. It can be overridden on schema or table level. For more information, see [collation specification](https://docs.snowflake.com/en/sql-reference/collation#label-collation-specification).
982
+ """
983
+ return pulumi.get(self, "default_ddl_collation")
984
+
985
+ @property
986
+ @pulumi.getter(name="dropPublicSchemaOnCreation")
987
+ def drop_public_schema_on_creation(self) -> pulumi.Output[Optional[bool]]:
481
988
  """
482
- Specify a database to create a clone from.
989
+ Specifies whether to drop public schema on creation or not. Modifying the parameter after database is already created won't have any effect.
483
990
  """
484
- return pulumi.get(self, "from_database")
991
+ return pulumi.get(self, "drop_public_schema_on_creation")
485
992
 
486
993
  @property
487
- @pulumi.getter(name="fromReplica")
488
- def from_replica(self) -> pulumi.Output[Optional[str]]:
994
+ @pulumi.getter(name="enableConsoleOutput")
995
+ def enable_console_output(self) -> pulumi.Output[bool]:
489
996
  """
490
- Specify a fully-qualified path to a database to create a replica from. A fully qualified path follows the format of "\\n\\n"."\\n\\n"."\\n\\n". An example would be: "myorg1"."account1"."db1"
997
+ If true, enables stdout/stderr fast path logging for anonymous stored procedures.
491
998
  """
492
- return pulumi.get(self, "from_replica")
999
+ return pulumi.get(self, "enable_console_output")
493
1000
 
494
1001
  @property
495
- @pulumi.getter(name="fromShare")
496
- def from_share(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
1002
+ @pulumi.getter(name="externalVolume")
1003
+ def external_volume(self) -> pulumi.Output[str]:
497
1004
  """
498
- Specify a provider and a share in this map to create a database from a share.
1005
+ The database parameter that specifies the default external volume to use for Iceberg tables. For more information, see [EXTERNAL_VOLUME](https://docs.snowflake.com/en/sql-reference/parameters#external-volume).
499
1006
  """
500
- return pulumi.get(self, "from_share")
1007
+ return pulumi.get(self, "external_volume")
1008
+
1009
+ @property
1010
+ @pulumi.getter(name="fullyQualifiedName")
1011
+ def fully_qualified_name(self) -> pulumi.Output[str]:
1012
+ """
1013
+ Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
1014
+ """
1015
+ return pulumi.get(self, "fully_qualified_name")
501
1016
 
502
1017
  @property
503
1018
  @pulumi.getter(name="isTransient")
504
1019
  def is_transient(self) -> pulumi.Output[Optional[bool]]:
505
1020
  """
506
- Specifies a database as transient. Transient databases do not have a Fail-safe period so they do not incur additional storage costs once they leave Time Travel; however, this means they are also not protected by Fail-safe in the event of a data loss.
1021
+ Specifies the database as transient. Transient databases do not have a Fail-safe period so they do not incur additional storage costs once they leave Time Travel; however, this means they are also not protected by Fail-safe in the event of a data loss.
507
1022
  """
508
1023
  return pulumi.get(self, "is_transient")
509
1024
 
1025
+ @property
1026
+ @pulumi.getter(name="logLevel")
1027
+ def log_level(self) -> pulumi.Output[str]:
1028
+ """
1029
+ Specifies the severity level of messages that should be ingested and made available in the active event table. Valid options are: [TRACE DEBUG INFO WARN ERROR FATAL OFF]. Messages at the specified level (and at more severe levels) are ingested. For more information, see [LOG_LEVEL](https://docs.snowflake.com/en/sql-reference/parameters.html#label-log-level).
1030
+ """
1031
+ return pulumi.get(self, "log_level")
1032
+
1033
+ @property
1034
+ @pulumi.getter(name="maxDataExtensionTimeInDays")
1035
+ def max_data_extension_time_in_days(self) -> pulumi.Output[int]:
1036
+ """
1037
+ Object parameter that specifies the maximum number of days for which Snowflake can extend the data retention period for tables in the database to prevent streams on the tables from becoming stale. For a detailed description of this parameter, see [MAX*DATA*EXTENSION*TIME*IN_DAYS](https://docs.snowflake.com/en/sql-reference/parameters.html#label-max-data-extension-time-in-days).
1038
+ """
1039
+ return pulumi.get(self, "max_data_extension_time_in_days")
1040
+
510
1041
  @property
511
1042
  @pulumi.getter
512
1043
  def name(self) -> pulumi.Output[str]:
1044
+ """
1045
+ Specifies the identifier for the database; must be unique for your account. As a best practice for [Database Replication and Failover](https://docs.snowflake.com/en/user-guide/db-replication-intro), it is recommended to give each secondary database the same name as its primary database. This practice supports referencing fully-qualified objects (i.e. '\\n\\n.\\n\\n.\\n\\n') by other objects in the same database, such as querying a fully-qualified table name in a view. If a secondary database has a different name from the primary database, then these object references would break in the secondary database. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
1046
+ """
513
1047
  return pulumi.get(self, "name")
514
1048
 
515
1049
  @property
516
- @pulumi.getter(name="replicationConfiguration")
517
- def replication_configuration(self) -> pulumi.Output[Optional['outputs.DatabaseReplicationConfiguration']]:
1050
+ @pulumi.getter(name="quotedIdentifiersIgnoreCase")
1051
+ def quoted_identifiers_ignore_case(self) -> pulumi.Output[bool]:
1052
+ """
1053
+ If true, the case of quoted identifiers is ignored. For more information, see [QUOTED*IDENTIFIERS*IGNORE_CASE](https://docs.snowflake.com/en/sql-reference/parameters#quoted-identifiers-ignore-case).
1054
+ """
1055
+ return pulumi.get(self, "quoted_identifiers_ignore_case")
1056
+
1057
+ @property
1058
+ @pulumi.getter(name="replaceInvalidCharacters")
1059
+ def replace_invalid_characters(self) -> pulumi.Output[bool]:
1060
+ """
1061
+ Specifies whether to replace invalid UTF-8 characters with the Unicode replacement character (�) in query results for an Iceberg table. You can only set this parameter for tables that use an external Iceberg catalog. For more information, see [REPLACE*INVALID*CHARACTERS](https://docs.snowflake.com/en/sql-reference/parameters#replace-invalid-characters).
1062
+ """
1063
+ return pulumi.get(self, "replace_invalid_characters")
1064
+
1065
+ @property
1066
+ @pulumi.getter
1067
+ def replication(self) -> pulumi.Output[Optional['outputs.DatabaseReplication']]:
1068
+ """
1069
+ Configures replication for a given database. When specified, this database will be promoted to serve as a primary database for replication. A primary database can be replicated in one or more accounts, allowing users in those accounts to query objects in each secondary (i.e. replica) database.
1070
+ """
1071
+ return pulumi.get(self, "replication")
1072
+
1073
+ @property
1074
+ @pulumi.getter(name="storageSerializationPolicy")
1075
+ def storage_serialization_policy(self) -> pulumi.Output[str]:
1076
+ """
1077
+ The storage serialization policy for Iceberg tables that use Snowflake as the catalog. Valid options are: [COMPATIBLE OPTIMIZED]. COMPATIBLE: Snowflake performs encoding and compression of data files that ensures interoperability with third-party compute engines. OPTIMIZED: Snowflake performs encoding and compression of data files that ensures the best table performance within Snowflake. For more information, see [STORAGE*SERIALIZATION*POLICY](https://docs.snowflake.com/en/sql-reference/parameters#storage-serialization-policy).
1078
+ """
1079
+ return pulumi.get(self, "storage_serialization_policy")
1080
+
1081
+ @property
1082
+ @pulumi.getter(name="suspendTaskAfterNumFailures")
1083
+ def suspend_task_after_num_failures(self) -> pulumi.Output[int]:
1084
+ """
1085
+ How many times a task must fail in a row before it is automatically suspended. 0 disables auto-suspending. For more information, see [SUSPEND*TASK*AFTER*NUM*FAILURES](https://docs.snowflake.com/en/sql-reference/parameters#suspend-task-after-num-failures).
1086
+ """
1087
+ return pulumi.get(self, "suspend_task_after_num_failures")
1088
+
1089
+ @property
1090
+ @pulumi.getter(name="taskAutoRetryAttempts")
1091
+ def task_auto_retry_attempts(self) -> pulumi.Output[int]:
1092
+ """
1093
+ Maximum automatic retries allowed for a user task. For more information, see [TASK*AUTO*RETRY_ATTEMPTS](https://docs.snowflake.com/en/sql-reference/parameters#task-auto-retry-attempts).
1094
+ """
1095
+ return pulumi.get(self, "task_auto_retry_attempts")
1096
+
1097
+ @property
1098
+ @pulumi.getter(name="traceLevel")
1099
+ def trace_level(self) -> pulumi.Output[str]:
1100
+ """
1101
+ Controls how trace events are ingested into the event table. Valid options are: [ALWAYS ON*EVENT OFF]. For information about levels, see [TRACE*LEVEL](https://docs.snowflake.com/en/sql-reference/parameters.html#label-trace-level).
1102
+ """
1103
+ return pulumi.get(self, "trace_level")
1104
+
1105
+ @property
1106
+ @pulumi.getter(name="userTaskManagedInitialWarehouseSize")
1107
+ def user_task_managed_initial_warehouse_size(self) -> pulumi.Output[str]:
1108
+ """
1109
+ The initial size of warehouse to use for managed warehouses in the absence of history. For more information, see [USER*TASK*MANAGED*INITIAL*WAREHOUSE_SIZE](https://docs.snowflake.com/en/sql-reference/parameters#user-task-managed-initial-warehouse-size).
1110
+ """
1111
+ return pulumi.get(self, "user_task_managed_initial_warehouse_size")
1112
+
1113
+ @property
1114
+ @pulumi.getter(name="userTaskMinimumTriggerIntervalInSeconds")
1115
+ def user_task_minimum_trigger_interval_in_seconds(self) -> pulumi.Output[int]:
1116
+ """
1117
+ Minimum amount of time between Triggered Task executions in seconds.
1118
+ """
1119
+ return pulumi.get(self, "user_task_minimum_trigger_interval_in_seconds")
1120
+
1121
+ @property
1122
+ @pulumi.getter(name="userTaskTimeoutMs")
1123
+ def user_task_timeout_ms(self) -> pulumi.Output[int]:
518
1124
  """
519
- When set, specifies the configurations for database replication.
1125
+ User task execution timeout in milliseconds. For more information, see [USER*TASK*TIMEOUT_MS](https://docs.snowflake.com/en/sql-reference/parameters#user-task-timeout-ms).
520
1126
  """
521
- return pulumi.get(self, "replication_configuration")
1127
+ return pulumi.get(self, "user_task_timeout_ms")
522
1128