pulumi-snowflake 0.50.2a1709892015__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 +52854 -1662
  3. pulumi_snowflake/_utilities.py +41 -5
  4. pulumi_snowflake/account.py +188 -214
  5. pulumi_snowflake/account_authentication_policy_attachment.py +149 -0
  6. pulumi_snowflake/account_parameter.py +21 -44
  7. pulumi_snowflake/account_password_policy_attachment.py +7 -28
  8. pulumi_snowflake/account_role.py +250 -0
  9. pulumi_snowflake/alert.py +38 -43
  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 +35 -50
  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 -209
  20. pulumi_snowflake/database_role.py +81 -40
  21. pulumi_snowflake/dynamic_table.py +44 -47
  22. pulumi_snowflake/email_notification_integration.py +35 -26
  23. pulumi_snowflake/{unsafe_execute.py → execute.py} +36 -139
  24. pulumi_snowflake/external_function.py +54 -71
  25. pulumi_snowflake/external_oauth_integration.py +593 -538
  26. pulumi_snowflake/external_table.py +67 -86
  27. pulumi_snowflake/external_volume.py +382 -0
  28. pulumi_snowflake/failover_group.py +59 -96
  29. pulumi_snowflake/file_format.py +33 -24
  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 -5
  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 -9
  41. pulumi_snowflake/get_current_role.py +14 -7
  42. pulumi_snowflake/get_database.py +25 -5
  43. pulumi_snowflake/get_database_role.py +162 -0
  44. pulumi_snowflake/get_database_roles.py +79 -43
  45. pulumi_snowflake/get_databases.py +91 -69
  46. pulumi_snowflake/get_dynamic_tables.py +36 -19
  47. pulumi_snowflake/get_external_functions.py +28 -5
  48. pulumi_snowflake/get_external_tables.py +28 -5
  49. pulumi_snowflake/get_failover_groups.py +18 -7
  50. pulumi_snowflake/get_file_formats.py +28 -5
  51. pulumi_snowflake/get_functions.py +28 -5
  52. pulumi_snowflake/get_grants.py +207 -80
  53. pulumi_snowflake/get_masking_policies.py +91 -47
  54. pulumi_snowflake/get_materialized_views.py +28 -5
  55. pulumi_snowflake/get_network_policies.py +129 -0
  56. pulumi_snowflake/get_parameters.py +38 -11
  57. pulumi_snowflake/get_pipes.py +28 -5
  58. pulumi_snowflake/get_procedures.py +28 -5
  59. pulumi_snowflake/get_resource_monitors.py +37 -20
  60. pulumi_snowflake/get_row_access_policies.py +91 -47
  61. pulumi_snowflake/get_schemas.py +145 -37
  62. pulumi_snowflake/get_secrets.py +200 -0
  63. pulumi_snowflake/get_security_integrations.py +129 -0
  64. pulumi_snowflake/get_sequences.py +28 -5
  65. pulumi_snowflake/get_shares.py +18 -5
  66. pulumi_snowflake/get_stages.py +28 -5
  67. pulumi_snowflake/get_storage_integrations.py +16 -5
  68. pulumi_snowflake/get_streamlits.py +170 -0
  69. pulumi_snowflake/get_streams.py +114 -50
  70. pulumi_snowflake/get_system_generate_scim_access_token.py +18 -5
  71. pulumi_snowflake/get_system_get_aws_sns_iam_policy.py +32 -7
  72. pulumi_snowflake/get_system_get_private_link_config.py +121 -6
  73. pulumi_snowflake/get_system_get_snowflake_platform_info.py +15 -7
  74. pulumi_snowflake/get_tables.py +28 -5
  75. pulumi_snowflake/get_tags.py +130 -0
  76. pulumi_snowflake/get_tasks.py +134 -50
  77. pulumi_snowflake/get_users.py +116 -40
  78. pulumi_snowflake/get_views.py +114 -50
  79. pulumi_snowflake/get_warehouses.py +79 -22
  80. pulumi_snowflake/grant_account_role.py +28 -61
  81. pulumi_snowflake/grant_application_role.py +257 -0
  82. pulumi_snowflake/grant_database_role.py +35 -108
  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 -223
  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 +42 -9
  89. pulumi_snowflake/masking_policy.py +213 -306
  90. pulumi_snowflake/materialized_view.py +62 -67
  91. pulumi_snowflake/network_policy.py +217 -57
  92. pulumi_snowflake/network_policy_attachment.py +7 -32
  93. pulumi_snowflake/network_rule.py +473 -0
  94. pulumi_snowflake/notification_integration.py +51 -82
  95. pulumi_snowflake/oauth_integration_for_custom_clients.py +906 -0
  96. pulumi_snowflake/{oauth_integration.py → oauth_integration_for_partner_applications.py} +191 -188
  97. pulumi_snowflake/object_parameter.py +12 -99
  98. pulumi_snowflake/outputs.py +49200 -2928
  99. pulumi_snowflake/password_policy.py +41 -28
  100. pulumi_snowflake/pipe.py +33 -0
  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 -323
  110. pulumi_snowflake/row_access_policy.py +200 -145
  111. pulumi_snowflake/{saml_integration.py → saml2_integration.py} +356 -295
  112. pulumi_snowflake/schema.py +949 -174
  113. pulumi_snowflake/scim_integration.py +286 -105
  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 -30
  121. pulumi_snowflake/service_user.py +3585 -0
  122. pulumi_snowflake/share.py +35 -26
  123. pulumi_snowflake/shared_database.py +939 -0
  124. pulumi_snowflake/stage.py +95 -80
  125. pulumi_snowflake/storage_integration.py +48 -2
  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 -93
  132. pulumi_snowflake/table_column_masking_policy_application.py +7 -14
  133. pulumi_snowflake/table_constraint.py +29 -168
  134. pulumi_snowflake/tag.py +142 -70
  135. pulumi_snowflake/tag_association.py +40 -211
  136. pulumi_snowflake/task.py +3048 -414
  137. pulumi_snowflake/user.py +3351 -380
  138. pulumi_snowflake/user_authentication_policy_attachment.py +197 -0
  139. pulumi_snowflake/user_password_policy_attachment.py +7 -6
  140. pulumi_snowflake/user_public_keys.py +5 -0
  141. pulumi_snowflake/view.py +466 -211
  142. pulumi_snowflake/warehouse.py +184 -164
  143. {pulumi_snowflake-0.50.2a1709892015.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.2a1709892015.dist-info → pulumi_snowflake-1.2.0a1736835738.dist-info}/WHEEL +1 -1
  146. pulumi_snowflake/account_grant.py +0 -339
  147. pulumi_snowflake/database_grant.py +0 -491
  148. pulumi_snowflake/external_table_grant.py +0 -686
  149. pulumi_snowflake/failover_group_grant.py +0 -388
  150. pulumi_snowflake/file_format_grant.py +0 -631
  151. pulumi_snowflake/function.py +0 -868
  152. pulumi_snowflake/function_grant.py +0 -741
  153. pulumi_snowflake/get_role.py +0 -117
  154. pulumi_snowflake/get_roles.py +0 -116
  155. pulumi_snowflake/grant_privileges_to_role.py +0 -667
  156. pulumi_snowflake/integration_grant.py +0 -436
  157. pulumi_snowflake/masking_policy_grant.py +0 -538
  158. pulumi_snowflake/materialized_view_grant.py +0 -685
  159. pulumi_snowflake/pipe_grant.py +0 -583
  160. pulumi_snowflake/procedure.py +0 -883
  161. pulumi_snowflake/procedure_grant.py +0 -741
  162. pulumi_snowflake/resource_monitor_grant.py +0 -383
  163. pulumi_snowflake/role.py +0 -269
  164. pulumi_snowflake/role_grants.py +0 -348
  165. pulumi_snowflake/role_ownership_grant.py +0 -334
  166. pulumi_snowflake/row_access_policy_grant.py +0 -536
  167. pulumi_snowflake/schema_grant.py +0 -643
  168. pulumi_snowflake/sequence_grant.py +0 -631
  169. pulumi_snowflake/session_parameter.py +0 -328
  170. pulumi_snowflake/stage_grant.py +0 -631
  171. pulumi_snowflake/stream.py +0 -610
  172. pulumi_snowflake/stream_grant.py +0 -631
  173. pulumi_snowflake/table_grant.py +0 -673
  174. pulumi_snowflake/tag_grant.py +0 -528
  175. pulumi_snowflake/tag_masking_policy_association.py +0 -210
  176. pulumi_snowflake/task_grant.py +0 -631
  177. pulumi_snowflake/user_grant.py +0 -390
  178. pulumi_snowflake/user_ownership_grant.py +0 -286
  179. pulumi_snowflake/view_grant.py +0 -701
  180. pulumi_snowflake/warehouse_grant.py +0 -436
  181. pulumi_snowflake-0.50.2a1709892015.dist-info/RECORD +0 -136
  182. {pulumi_snowflake-0.50.2a1709892015.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,60 +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
- ```python
290
- import pulumi
291
- import pulumi_snowflake as snowflake
292
-
293
- simple = snowflake.Database("simple",
294
- comment="test comment",
295
- data_retention_time_in_days=3)
296
- with_replication = snowflake.Database("withReplication",
297
- comment="test comment 2",
298
- replication_configuration=snowflake.DatabaseReplicationConfigurationArgs(
299
- accounts=[
300
- "test_account1",
301
- "test_account_2",
302
- ],
303
- ignore_edition_check=True,
304
- ))
305
- from_replica = snowflake.Database("fromReplica",
306
- comment="test comment",
307
- data_retention_time_in_days=3,
308
- from_replica="\\"org1\\".\\"account1\\".\\"primary_db_name\\"")
309
- from_share = snowflake.Database("fromShare",
310
- comment="test comment",
311
- from_share={
312
- "provider": "org1.account1",
313
- "share": "share1",
314
- })
315
- ```
316
-
317
753
  ## Import
318
754
 
319
755
  ```sh
320
- $ pulumi import snowflake:index/database:Database example name
756
+ $ pulumi import snowflake:index/database:Database example '"<database_name>"'
321
757
  ```
322
758
 
323
759
  :param str resource_name: The name of the resource.
324
760
  :param pulumi.ResourceOptions opts: Options for the resource.
325
- :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.
326
- :param pulumi.Input[str] from_database: Specify a database to create a clone from.
327
- :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"
328
- :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.
329
- :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.
330
- :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).
331
782
  """
332
783
  ...
333
784
  @overload
@@ -336,40 +787,10 @@ class Database(pulumi.CustomResource):
336
787
  args: Optional[DatabaseArgs] = None,
337
788
  opts: Optional[pulumi.ResourceOptions] = None):
338
789
  """
339
- ## Example Usage
340
-
341
- ```python
342
- import pulumi
343
- import pulumi_snowflake as snowflake
344
-
345
- simple = snowflake.Database("simple",
346
- comment="test comment",
347
- data_retention_time_in_days=3)
348
- with_replication = snowflake.Database("withReplication",
349
- comment="test comment 2",
350
- replication_configuration=snowflake.DatabaseReplicationConfigurationArgs(
351
- accounts=[
352
- "test_account1",
353
- "test_account_2",
354
- ],
355
- ignore_edition_check=True,
356
- ))
357
- from_replica = snowflake.Database("fromReplica",
358
- comment="test comment",
359
- data_retention_time_in_days=3,
360
- from_replica="\\"org1\\".\\"account1\\".\\"primary_db_name\\"")
361
- from_share = snowflake.Database("fromShare",
362
- comment="test comment",
363
- from_share={
364
- "provider": "org1.account1",
365
- "share": "share1",
366
- })
367
- ```
368
-
369
790
  ## Import
370
791
 
371
792
  ```sh
372
- $ pulumi import snowflake:index/database:Database example name
793
+ $ pulumi import snowflake:index/database:Database example '"<database_name>"'
373
794
  ```
374
795
 
375
796
  :param str resource_name: The name of the resource.
@@ -387,14 +808,27 @@ class Database(pulumi.CustomResource):
387
808
  def _internal_init(__self__,
388
809
  resource_name: str,
389
810
  opts: Optional[pulumi.ResourceOptions] = None,
811
+ catalog: Optional[pulumi.Input[str]] = None,
390
812
  comment: Optional[pulumi.Input[str]] = None,
391
813
  data_retention_time_in_days: Optional[pulumi.Input[int]] = None,
392
- from_database: Optional[pulumi.Input[str]] = None,
393
- from_replica: Optional[pulumi.Input[str]] = None,
394
- 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,
395
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,
396
821
  name: Optional[pulumi.Input[str]] = None,
397
- 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,
398
832
  __props__=None):
399
833
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
400
834
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -404,14 +838,28 @@ class Database(pulumi.CustomResource):
404
838
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
405
839
  __props__ = DatabaseArgs.__new__(DatabaseArgs)
406
840
 
841
+ __props__.__dict__["catalog"] = catalog
407
842
  __props__.__dict__["comment"] = comment
408
843
  __props__.__dict__["data_retention_time_in_days"] = data_retention_time_in_days
409
- __props__.__dict__["from_database"] = from_database
410
- __props__.__dict__["from_replica"] = from_replica
411
- __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
412
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
413
851
  __props__.__dict__["name"] = name
414
- __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
415
863
  super(Database, __self__).__init__(
416
864
  'snowflake:index/database:Database',
417
865
  resource_name,
@@ -422,14 +870,28 @@ class Database(pulumi.CustomResource):
422
870
  def get(resource_name: str,
423
871
  id: pulumi.Input[str],
424
872
  opts: Optional[pulumi.ResourceOptions] = None,
873
+ catalog: Optional[pulumi.Input[str]] = None,
425
874
  comment: Optional[pulumi.Input[str]] = None,
426
875
  data_retention_time_in_days: Optional[pulumi.Input[int]] = None,
427
- from_database: Optional[pulumi.Input[str]] = None,
428
- from_replica: Optional[pulumi.Input[str]] = None,
429
- 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,
430
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,
431
884
  name: Optional[pulumi.Input[str]] = None,
432
- 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':
433
895
  """
434
896
  Get an existing Database resource's state with the given name, id, and optional extra
435
897
  properties used to qualify the lookup.
@@ -437,82 +899,230 @@ class Database(pulumi.CustomResource):
437
899
  :param str resource_name: The unique name of the resulting resource.
438
900
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
439
901
  :param pulumi.ResourceOptions opts: Options for the resource.
440
- :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.
441
- :param pulumi.Input[str] from_database: Specify a database to create a clone from.
442
- :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"
443
- :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.
444
- :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.
445
- :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).
446
924
  """
447
925
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
448
926
 
449
927
  __props__ = _DatabaseState.__new__(_DatabaseState)
450
928
 
929
+ __props__.__dict__["catalog"] = catalog
451
930
  __props__.__dict__["comment"] = comment
452
931
  __props__.__dict__["data_retention_time_in_days"] = data_retention_time_in_days
453
- __props__.__dict__["from_database"] = from_database
454
- __props__.__dict__["from_replica"] = from_replica
455
- __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
456
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
457
940
  __props__.__dict__["name"] = name
458
- __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
459
951
  return Database(resource_name, opts=opts, __props__=__props__)
460
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
+
461
961
  @property
462
962
  @pulumi.getter
463
963
  def comment(self) -> pulumi.Output[Optional[str]]:
964
+ """
965
+ Specifies a comment for the database.
966
+ """
464
967
  return pulumi.get(self, "comment")
465
968
 
466
969
  @property
467
970
  @pulumi.getter(name="dataRetentionTimeInDays")
468
- def data_retention_time_in_days(self) -> pulumi.Output[Optional[int]]:
971
+ def data_retention_time_in_days(self) -> pulumi.Output[int]:
469
972
  """
470
- 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).
471
974
  """
472
975
  return pulumi.get(self, "data_retention_time_in_days")
473
976
 
474
977
  @property
475
- @pulumi.getter(name="fromDatabase")
476
- 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]]:
477
988
  """
478
- 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.
479
990
  """
480
- return pulumi.get(self, "from_database")
991
+ return pulumi.get(self, "drop_public_schema_on_creation")
481
992
 
482
993
  @property
483
- @pulumi.getter(name="fromReplica")
484
- def from_replica(self) -> pulumi.Output[Optional[str]]:
994
+ @pulumi.getter(name="enableConsoleOutput")
995
+ def enable_console_output(self) -> pulumi.Output[bool]:
485
996
  """
486
- 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.
487
998
  """
488
- return pulumi.get(self, "from_replica")
999
+ return pulumi.get(self, "enable_console_output")
489
1000
 
490
1001
  @property
491
- @pulumi.getter(name="fromShare")
492
- def from_share(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
1002
+ @pulumi.getter(name="externalVolume")
1003
+ def external_volume(self) -> pulumi.Output[str]:
493
1004
  """
494
- 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).
495
1006
  """
496
- 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")
497
1016
 
498
1017
  @property
499
1018
  @pulumi.getter(name="isTransient")
500
1019
  def is_transient(self) -> pulumi.Output[Optional[bool]]:
501
1020
  """
502
- 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.
503
1022
  """
504
1023
  return pulumi.get(self, "is_transient")
505
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
+
506
1041
  @property
507
1042
  @pulumi.getter
508
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
+ """
509
1047
  return pulumi.get(self, "name")
510
1048
 
511
1049
  @property
512
- @pulumi.getter(name="replicationConfiguration")
513
- 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]:
514
1124
  """
515
- 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).
516
1126
  """
517
- return pulumi.get(self, "replication_configuration")
1127
+ return pulumi.get(self, "user_task_timeout_ms")
518
1128