pulumi-snowflake 0.56.0a1721327760__py3-none-any.whl → 0.57.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. pulumi_snowflake/__init__.py +78 -209
  2. pulumi_snowflake/_inputs.py +12188 -1362
  3. pulumi_snowflake/_utilities.py +2 -0
  4. pulumi_snowflake/account_role.py +226 -0
  5. pulumi_snowflake/api_authentication_integration_with_authorization_code_grant.py +692 -0
  6. pulumi_snowflake/api_authentication_integration_with_client_credentials.py +645 -0
  7. pulumi_snowflake/api_authentication_integration_with_jwt_bearer.py +680 -0
  8. pulumi_snowflake/cortex_search_service.py +563 -0
  9. pulumi_snowflake/database.py +854 -232
  10. pulumi_snowflake/database_old.py +556 -0
  11. pulumi_snowflake/external_oauth_integration.py +562 -534
  12. pulumi_snowflake/failover_group.py +2 -2
  13. pulumi_snowflake/get_cortex_search_services.py +197 -0
  14. pulumi_snowflake/get_databases.py +71 -62
  15. pulumi_snowflake/get_network_policies.py +122 -0
  16. pulumi_snowflake/get_roles.py +37 -31
  17. pulumi_snowflake/get_schemas.py +115 -38
  18. pulumi_snowflake/get_security_integrations.py +122 -0
  19. pulumi_snowflake/get_streamlits.py +159 -0
  20. pulumi_snowflake/get_warehouses.py +66 -18
  21. pulumi_snowflake/grant_privileges_to_database_role.py +0 -4
  22. pulumi_snowflake/managed_account.py +7 -7
  23. pulumi_snowflake/network_policy.py +103 -19
  24. pulumi_snowflake/oauth_integration.py +4 -0
  25. pulumi_snowflake/oauth_integration_for_custom_clients.py +940 -0
  26. pulumi_snowflake/oauth_integration_for_partner_applications.py +584 -0
  27. pulumi_snowflake/outputs.py +16178 -2927
  28. pulumi_snowflake/pulumi-plugin.json +1 -1
  29. pulumi_snowflake/role.py +44 -72
  30. pulumi_snowflake/saml2_integration.py +975 -0
  31. pulumi_snowflake/saml_integration.py +4 -0
  32. pulumi_snowflake/schema.py +905 -151
  33. pulumi_snowflake/scim_integration.py +257 -103
  34. pulumi_snowflake/secondary_database.py +1059 -0
  35. pulumi_snowflake/sequence.py +6 -6
  36. pulumi_snowflake/shared_database.py +914 -0
  37. pulumi_snowflake/streamlit.py +650 -0
  38. pulumi_snowflake/table.py +0 -120
  39. pulumi_snowflake/table_constraint.py +2 -2
  40. pulumi_snowflake/tag_association.py +38 -38
  41. pulumi_snowflake/unsafe_execute.py +8 -8
  42. pulumi_snowflake/user_password_policy_attachment.py +32 -0
  43. pulumi_snowflake/warehouse.py +143 -120
  44. {pulumi_snowflake-0.56.0a1721327760.dist-info → pulumi_snowflake-0.57.0.dist-info}/METADATA +1 -1
  45. {pulumi_snowflake-0.56.0a1721327760.dist-info → pulumi_snowflake-0.57.0.dist-info}/RECORD +47 -58
  46. {pulumi_snowflake-0.56.0a1721327760.dist-info → pulumi_snowflake-0.57.0.dist-info}/WHEEL +1 -1
  47. pulumi_snowflake/account_grant.py +0 -319
  48. pulumi_snowflake/database_grant.py +0 -471
  49. pulumi_snowflake/external_table_grant.py +0 -666
  50. pulumi_snowflake/failover_group_grant.py +0 -368
  51. pulumi_snowflake/file_format_grant.py +0 -611
  52. pulumi_snowflake/function_grant.py +0 -721
  53. pulumi_snowflake/grant_privileges_to_role.py +0 -821
  54. pulumi_snowflake/integration_grant.py +0 -416
  55. pulumi_snowflake/masking_policy_grant.py +0 -518
  56. pulumi_snowflake/materialized_view_grant.py +0 -665
  57. pulumi_snowflake/pipe_grant.py +0 -563
  58. pulumi_snowflake/procedure_grant.py +0 -721
  59. pulumi_snowflake/resource_monitor_grant.py +0 -363
  60. pulumi_snowflake/role_grants.py +0 -340
  61. pulumi_snowflake/role_ownership_grant.py +0 -329
  62. pulumi_snowflake/row_access_policy_grant.py +0 -516
  63. pulumi_snowflake/schema_grant.py +0 -603
  64. pulumi_snowflake/sequence_grant.py +0 -611
  65. pulumi_snowflake/stage_grant.py +0 -611
  66. pulumi_snowflake/stream_grant.py +0 -611
  67. pulumi_snowflake/table_grant.py +0 -653
  68. pulumi_snowflake/tag_grant.py +0 -508
  69. pulumi_snowflake/task_grant.py +0 -611
  70. pulumi_snowflake/user_grant.py +0 -370
  71. pulumi_snowflake/user_ownership_grant.py +0 -275
  72. pulumi_snowflake/view_grant.py +0 -685
  73. pulumi_snowflake/warehouse_grant.py +0 -416
  74. {pulumi_snowflake-0.56.0a1721327760.dist-info → pulumi_snowflake-0.57.0.dist-info}/top_level.txt +0 -0
@@ -16,41 +16,101 @@ __all__ = ['DatabaseArgs', 'Database']
16
16
  @pulumi.input_type
17
17
  class DatabaseArgs:
18
18
  def __init__(__self__, *,
19
+ catalog: Optional[pulumi.Input[str]] = None,
19
20
  comment: Optional[pulumi.Input[str]] = None,
20
21
  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,
22
+ default_ddl_collation: Optional[pulumi.Input[str]] = None,
23
+ enable_console_output: Optional[pulumi.Input[bool]] = None,
24
+ external_volume: Optional[pulumi.Input[str]] = None,
24
25
  is_transient: Optional[pulumi.Input[bool]] = None,
26
+ log_level: Optional[pulumi.Input[str]] = None,
27
+ max_data_extension_time_in_days: Optional[pulumi.Input[int]] = None,
25
28
  name: Optional[pulumi.Input[str]] = None,
26
- replication_configuration: Optional[pulumi.Input['DatabaseReplicationConfigurationArgs']] = None):
29
+ quoted_identifiers_ignore_case: Optional[pulumi.Input[bool]] = None,
30
+ replace_invalid_characters: Optional[pulumi.Input[bool]] = None,
31
+ replication: Optional[pulumi.Input['DatabaseReplicationArgs']] = None,
32
+ storage_serialization_policy: Optional[pulumi.Input[str]] = None,
33
+ suspend_task_after_num_failures: Optional[pulumi.Input[int]] = None,
34
+ task_auto_retry_attempts: Optional[pulumi.Input[int]] = None,
35
+ trace_level: Optional[pulumi.Input[str]] = None,
36
+ user_task_managed_initial_warehouse_size: Optional[pulumi.Input[str]] = None,
37
+ user_task_minimum_trigger_interval_in_seconds: Optional[pulumi.Input[int]] = None,
38
+ user_task_timeout_ms: Optional[pulumi.Input[int]] = None):
27
39
  """
28
40
  The set of arguments for constructing a Database resource.
41
+ :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).
29
42
  :param pulumi.Input[str] comment: Specifies a comment for the database.
30
- :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](https://docs.snowflake.com/en/user-guide/data-time-travel).
31
- :param pulumi.Input[str] from_database: Specify a database to create a clone from.
32
- :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 `"<organization_name>"."<account_name>"."<db_name>"`. An example would be: `"myorg1"."account1"."db1"`
33
- :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. As of version 0.87.0, the provider field is the account locator.
34
- :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.
35
- :param pulumi.Input[str] name: Specifies the identifier for the database; must be unique for your account.
36
- :param pulumi.Input['DatabaseReplicationConfigurationArgs'] replication_configuration: When set, specifies the configurations for database replication.
43
+ :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).
44
+ :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).
45
+ :param pulumi.Input[bool] enable_console_output: If true, enables stdout/stderr fast path logging for anonymous stored procedures.
46
+ :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).
47
+ :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.
48
+ :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).
49
+ :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).
50
+ :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.
51
+ :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).
52
+ :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).
53
+ :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.
54
+ :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).
55
+ :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).
56
+ :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).
57
+ :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).
58
+ :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).
59
+ :param pulumi.Input[int] user_task_minimum_trigger_interval_in_seconds: Minimum amount of time between Triggered Task executions in seconds.
60
+ :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).
37
61
  """
62
+ if catalog is not None:
63
+ pulumi.set(__self__, "catalog", catalog)
38
64
  if comment is not None:
39
65
  pulumi.set(__self__, "comment", comment)
40
66
  if data_retention_time_in_days is not None:
41
67
  pulumi.set(__self__, "data_retention_time_in_days", data_retention_time_in_days)
42
- if from_database is not None:
43
- pulumi.set(__self__, "from_database", from_database)
44
- if from_replica is not None:
45
- pulumi.set(__self__, "from_replica", from_replica)
46
- if from_share is not None:
47
- pulumi.set(__self__, "from_share", from_share)
68
+ if default_ddl_collation is not None:
69
+ pulumi.set(__self__, "default_ddl_collation", default_ddl_collation)
70
+ if enable_console_output is not None:
71
+ pulumi.set(__self__, "enable_console_output", enable_console_output)
72
+ if external_volume is not None:
73
+ pulumi.set(__self__, "external_volume", external_volume)
48
74
  if is_transient is not None:
49
75
  pulumi.set(__self__, "is_transient", is_transient)
76
+ if log_level is not None:
77
+ pulumi.set(__self__, "log_level", log_level)
78
+ if max_data_extension_time_in_days is not None:
79
+ pulumi.set(__self__, "max_data_extension_time_in_days", max_data_extension_time_in_days)
50
80
  if name is not None:
51
81
  pulumi.set(__self__, "name", name)
52
- if replication_configuration is not None:
53
- pulumi.set(__self__, "replication_configuration", replication_configuration)
82
+ if quoted_identifiers_ignore_case is not None:
83
+ pulumi.set(__self__, "quoted_identifiers_ignore_case", quoted_identifiers_ignore_case)
84
+ if replace_invalid_characters is not None:
85
+ pulumi.set(__self__, "replace_invalid_characters", replace_invalid_characters)
86
+ if replication is not None:
87
+ pulumi.set(__self__, "replication", replication)
88
+ if storage_serialization_policy is not None:
89
+ pulumi.set(__self__, "storage_serialization_policy", storage_serialization_policy)
90
+ if suspend_task_after_num_failures is not None:
91
+ pulumi.set(__self__, "suspend_task_after_num_failures", suspend_task_after_num_failures)
92
+ if task_auto_retry_attempts is not None:
93
+ pulumi.set(__self__, "task_auto_retry_attempts", task_auto_retry_attempts)
94
+ if trace_level is not None:
95
+ pulumi.set(__self__, "trace_level", trace_level)
96
+ if user_task_managed_initial_warehouse_size is not None:
97
+ pulumi.set(__self__, "user_task_managed_initial_warehouse_size", user_task_managed_initial_warehouse_size)
98
+ if user_task_minimum_trigger_interval_in_seconds is not None:
99
+ pulumi.set(__self__, "user_task_minimum_trigger_interval_in_seconds", user_task_minimum_trigger_interval_in_seconds)
100
+ if user_task_timeout_ms is not None:
101
+ pulumi.set(__self__, "user_task_timeout_ms", user_task_timeout_ms)
102
+
103
+ @property
104
+ @pulumi.getter
105
+ def catalog(self) -> Optional[pulumi.Input[str]]:
106
+ """
107
+ 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).
108
+ """
109
+ return pulumi.get(self, "catalog")
110
+
111
+ @catalog.setter
112
+ def catalog(self, value: Optional[pulumi.Input[str]]):
113
+ pulumi.set(self, "catalog", value)
54
114
 
55
115
  @property
56
116
  @pulumi.getter
@@ -68,7 +128,7 @@ class DatabaseArgs:
68
128
  @pulumi.getter(name="dataRetentionTimeInDays")
69
129
  def data_retention_time_in_days(self) -> Optional[pulumi.Input[int]]:
70
130
  """
71
- 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](https://docs.snowflake.com/en/user-guide/data-time-travel).
131
+ 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).
72
132
  """
73
133
  return pulumi.get(self, "data_retention_time_in_days")
74
134
 
@@ -77,46 +137,46 @@ class DatabaseArgs:
77
137
  pulumi.set(self, "data_retention_time_in_days", value)
78
138
 
79
139
  @property
80
- @pulumi.getter(name="fromDatabase")
81
- def from_database(self) -> Optional[pulumi.Input[str]]:
140
+ @pulumi.getter(name="defaultDdlCollation")
141
+ def default_ddl_collation(self) -> Optional[pulumi.Input[str]]:
82
142
  """
83
- Specify a database to create a clone from.
143
+ 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).
84
144
  """
85
- return pulumi.get(self, "from_database")
145
+ return pulumi.get(self, "default_ddl_collation")
86
146
 
87
- @from_database.setter
88
- def from_database(self, value: Optional[pulumi.Input[str]]):
89
- pulumi.set(self, "from_database", value)
147
+ @default_ddl_collation.setter
148
+ def default_ddl_collation(self, value: Optional[pulumi.Input[str]]):
149
+ pulumi.set(self, "default_ddl_collation", value)
90
150
 
91
151
  @property
92
- @pulumi.getter(name="fromReplica")
93
- def from_replica(self) -> Optional[pulumi.Input[str]]:
152
+ @pulumi.getter(name="enableConsoleOutput")
153
+ def enable_console_output(self) -> Optional[pulumi.Input[bool]]:
94
154
  """
95
- Specify a fully-qualified path to a database to create a replica from. A fully qualified path follows the format of `"<organization_name>"."<account_name>"."<db_name>"`. An example would be: `"myorg1"."account1"."db1"`
155
+ If true, enables stdout/stderr fast path logging for anonymous stored procedures.
96
156
  """
97
- return pulumi.get(self, "from_replica")
157
+ return pulumi.get(self, "enable_console_output")
98
158
 
99
- @from_replica.setter
100
- def from_replica(self, value: Optional[pulumi.Input[str]]):
101
- pulumi.set(self, "from_replica", value)
159
+ @enable_console_output.setter
160
+ def enable_console_output(self, value: Optional[pulumi.Input[bool]]):
161
+ pulumi.set(self, "enable_console_output", value)
102
162
 
103
163
  @property
104
- @pulumi.getter(name="fromShare")
105
- def from_share(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
164
+ @pulumi.getter(name="externalVolume")
165
+ def external_volume(self) -> Optional[pulumi.Input[str]]:
106
166
  """
107
- Specify a provider and a share in this map to create a database from a share. As of version 0.87.0, the provider field is the account locator.
167
+ 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).
108
168
  """
109
- return pulumi.get(self, "from_share")
169
+ return pulumi.get(self, "external_volume")
110
170
 
111
- @from_share.setter
112
- def from_share(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
113
- pulumi.set(self, "from_share", value)
171
+ @external_volume.setter
172
+ def external_volume(self, value: Optional[pulumi.Input[str]]):
173
+ pulumi.set(self, "external_volume", value)
114
174
 
115
175
  @property
116
176
  @pulumi.getter(name="isTransient")
117
177
  def is_transient(self) -> Optional[pulumi.Input[bool]]:
118
178
  """
119
- 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.
179
+ 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.
120
180
  """
121
181
  return pulumi.get(self, "is_transient")
122
182
 
@@ -124,11 +184,35 @@ class DatabaseArgs:
124
184
  def is_transient(self, value: Optional[pulumi.Input[bool]]):
125
185
  pulumi.set(self, "is_transient", value)
126
186
 
187
+ @property
188
+ @pulumi.getter(name="logLevel")
189
+ def log_level(self) -> Optional[pulumi.Input[str]]:
190
+ """
191
+ 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).
192
+ """
193
+ return pulumi.get(self, "log_level")
194
+
195
+ @log_level.setter
196
+ def log_level(self, value: Optional[pulumi.Input[str]]):
197
+ pulumi.set(self, "log_level", value)
198
+
199
+ @property
200
+ @pulumi.getter(name="maxDataExtensionTimeInDays")
201
+ def max_data_extension_time_in_days(self) -> Optional[pulumi.Input[int]]:
202
+ """
203
+ 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).
204
+ """
205
+ return pulumi.get(self, "max_data_extension_time_in_days")
206
+
207
+ @max_data_extension_time_in_days.setter
208
+ def max_data_extension_time_in_days(self, value: Optional[pulumi.Input[int]]):
209
+ pulumi.set(self, "max_data_extension_time_in_days", value)
210
+
127
211
  @property
128
212
  @pulumi.getter
129
213
  def name(self) -> Optional[pulumi.Input[str]]:
130
214
  """
131
- Specifies the identifier for the database; must be unique for your account.
215
+ 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.
132
216
  """
133
217
  return pulumi.get(self, "name")
134
218
 
@@ -137,56 +221,224 @@ class DatabaseArgs:
137
221
  pulumi.set(self, "name", value)
138
222
 
139
223
  @property
140
- @pulumi.getter(name="replicationConfiguration")
141
- def replication_configuration(self) -> Optional[pulumi.Input['DatabaseReplicationConfigurationArgs']]:
224
+ @pulumi.getter(name="quotedIdentifiersIgnoreCase")
225
+ def quoted_identifiers_ignore_case(self) -> Optional[pulumi.Input[bool]]:
226
+ """
227
+ 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).
228
+ """
229
+ return pulumi.get(self, "quoted_identifiers_ignore_case")
230
+
231
+ @quoted_identifiers_ignore_case.setter
232
+ def quoted_identifiers_ignore_case(self, value: Optional[pulumi.Input[bool]]):
233
+ pulumi.set(self, "quoted_identifiers_ignore_case", value)
234
+
235
+ @property
236
+ @pulumi.getter(name="replaceInvalidCharacters")
237
+ def replace_invalid_characters(self) -> Optional[pulumi.Input[bool]]:
238
+ """
239
+ 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).
240
+ """
241
+ return pulumi.get(self, "replace_invalid_characters")
242
+
243
+ @replace_invalid_characters.setter
244
+ def replace_invalid_characters(self, value: Optional[pulumi.Input[bool]]):
245
+ pulumi.set(self, "replace_invalid_characters", value)
246
+
247
+ @property
248
+ @pulumi.getter
249
+ def replication(self) -> Optional[pulumi.Input['DatabaseReplicationArgs']]:
250
+ """
251
+ 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.
252
+ """
253
+ return pulumi.get(self, "replication")
254
+
255
+ @replication.setter
256
+ def replication(self, value: Optional[pulumi.Input['DatabaseReplicationArgs']]):
257
+ pulumi.set(self, "replication", value)
258
+
259
+ @property
260
+ @pulumi.getter(name="storageSerializationPolicy")
261
+ def storage_serialization_policy(self) -> Optional[pulumi.Input[str]]:
262
+ """
263
+ 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).
264
+ """
265
+ return pulumi.get(self, "storage_serialization_policy")
266
+
267
+ @storage_serialization_policy.setter
268
+ def storage_serialization_policy(self, value: Optional[pulumi.Input[str]]):
269
+ pulumi.set(self, "storage_serialization_policy", value)
270
+
271
+ @property
272
+ @pulumi.getter(name="suspendTaskAfterNumFailures")
273
+ def suspend_task_after_num_failures(self) -> Optional[pulumi.Input[int]]:
142
274
  """
143
- When set, specifies the configurations for database replication.
275
+ 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).
144
276
  """
145
- return pulumi.get(self, "replication_configuration")
277
+ return pulumi.get(self, "suspend_task_after_num_failures")
146
278
 
147
- @replication_configuration.setter
148
- def replication_configuration(self, value: Optional[pulumi.Input['DatabaseReplicationConfigurationArgs']]):
149
- pulumi.set(self, "replication_configuration", value)
279
+ @suspend_task_after_num_failures.setter
280
+ def suspend_task_after_num_failures(self, value: Optional[pulumi.Input[int]]):
281
+ pulumi.set(self, "suspend_task_after_num_failures", value)
282
+
283
+ @property
284
+ @pulumi.getter(name="taskAutoRetryAttempts")
285
+ def task_auto_retry_attempts(self) -> Optional[pulumi.Input[int]]:
286
+ """
287
+ 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).
288
+ """
289
+ return pulumi.get(self, "task_auto_retry_attempts")
290
+
291
+ @task_auto_retry_attempts.setter
292
+ def task_auto_retry_attempts(self, value: Optional[pulumi.Input[int]]):
293
+ pulumi.set(self, "task_auto_retry_attempts", value)
294
+
295
+ @property
296
+ @pulumi.getter(name="traceLevel")
297
+ def trace_level(self) -> Optional[pulumi.Input[str]]:
298
+ """
299
+ 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).
300
+ """
301
+ return pulumi.get(self, "trace_level")
302
+
303
+ @trace_level.setter
304
+ def trace_level(self, value: Optional[pulumi.Input[str]]):
305
+ pulumi.set(self, "trace_level", value)
306
+
307
+ @property
308
+ @pulumi.getter(name="userTaskManagedInitialWarehouseSize")
309
+ def user_task_managed_initial_warehouse_size(self) -> Optional[pulumi.Input[str]]:
310
+ """
311
+ 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).
312
+ """
313
+ return pulumi.get(self, "user_task_managed_initial_warehouse_size")
314
+
315
+ @user_task_managed_initial_warehouse_size.setter
316
+ def user_task_managed_initial_warehouse_size(self, value: Optional[pulumi.Input[str]]):
317
+ pulumi.set(self, "user_task_managed_initial_warehouse_size", value)
318
+
319
+ @property
320
+ @pulumi.getter(name="userTaskMinimumTriggerIntervalInSeconds")
321
+ def user_task_minimum_trigger_interval_in_seconds(self) -> Optional[pulumi.Input[int]]:
322
+ """
323
+ Minimum amount of time between Triggered Task executions in seconds.
324
+ """
325
+ return pulumi.get(self, "user_task_minimum_trigger_interval_in_seconds")
326
+
327
+ @user_task_minimum_trigger_interval_in_seconds.setter
328
+ def user_task_minimum_trigger_interval_in_seconds(self, value: Optional[pulumi.Input[int]]):
329
+ pulumi.set(self, "user_task_minimum_trigger_interval_in_seconds", value)
330
+
331
+ @property
332
+ @pulumi.getter(name="userTaskTimeoutMs")
333
+ def user_task_timeout_ms(self) -> Optional[pulumi.Input[int]]:
334
+ """
335
+ 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).
336
+ """
337
+ return pulumi.get(self, "user_task_timeout_ms")
338
+
339
+ @user_task_timeout_ms.setter
340
+ def user_task_timeout_ms(self, value: Optional[pulumi.Input[int]]):
341
+ pulumi.set(self, "user_task_timeout_ms", value)
150
342
 
151
343
 
152
344
  @pulumi.input_type
153
345
  class _DatabaseState:
154
346
  def __init__(__self__, *,
347
+ catalog: Optional[pulumi.Input[str]] = None,
155
348
  comment: Optional[pulumi.Input[str]] = None,
156
349
  data_retention_time_in_days: Optional[pulumi.Input[int]] = None,
157
- from_database: Optional[pulumi.Input[str]] = None,
158
- from_replica: Optional[pulumi.Input[str]] = None,
159
- from_share: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
350
+ default_ddl_collation: Optional[pulumi.Input[str]] = None,
351
+ enable_console_output: Optional[pulumi.Input[bool]] = None,
352
+ external_volume: Optional[pulumi.Input[str]] = None,
160
353
  is_transient: Optional[pulumi.Input[bool]] = None,
354
+ log_level: Optional[pulumi.Input[str]] = None,
355
+ max_data_extension_time_in_days: Optional[pulumi.Input[int]] = None,
161
356
  name: Optional[pulumi.Input[str]] = None,
162
- replication_configuration: Optional[pulumi.Input['DatabaseReplicationConfigurationArgs']] = None):
357
+ quoted_identifiers_ignore_case: Optional[pulumi.Input[bool]] = None,
358
+ replace_invalid_characters: Optional[pulumi.Input[bool]] = None,
359
+ replication: Optional[pulumi.Input['DatabaseReplicationArgs']] = None,
360
+ storage_serialization_policy: Optional[pulumi.Input[str]] = None,
361
+ suspend_task_after_num_failures: Optional[pulumi.Input[int]] = None,
362
+ task_auto_retry_attempts: Optional[pulumi.Input[int]] = None,
363
+ trace_level: Optional[pulumi.Input[str]] = None,
364
+ user_task_managed_initial_warehouse_size: Optional[pulumi.Input[str]] = None,
365
+ user_task_minimum_trigger_interval_in_seconds: Optional[pulumi.Input[int]] = None,
366
+ user_task_timeout_ms: Optional[pulumi.Input[int]] = None):
163
367
  """
164
368
  Input properties used for looking up and filtering Database resources.
369
+ :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).
165
370
  :param pulumi.Input[str] comment: Specifies a comment for the database.
166
- :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](https://docs.snowflake.com/en/user-guide/data-time-travel).
167
- :param pulumi.Input[str] from_database: Specify a database to create a clone from.
168
- :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 `"<organization_name>"."<account_name>"."<db_name>"`. An example would be: `"myorg1"."account1"."db1"`
169
- :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. As of version 0.87.0, the provider field is the account locator.
170
- :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.
171
- :param pulumi.Input[str] name: Specifies the identifier for the database; must be unique for your account.
172
- :param pulumi.Input['DatabaseReplicationConfigurationArgs'] replication_configuration: When set, specifies the configurations for database replication.
371
+ :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).
372
+ :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).
373
+ :param pulumi.Input[bool] enable_console_output: If true, enables stdout/stderr fast path logging for anonymous stored procedures.
374
+ :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).
375
+ :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.
376
+ :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).
377
+ :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).
378
+ :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.
379
+ :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).
380
+ :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).
381
+ :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.
382
+ :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).
383
+ :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).
384
+ :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).
385
+ :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).
386
+ :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).
387
+ :param pulumi.Input[int] user_task_minimum_trigger_interval_in_seconds: Minimum amount of time between Triggered Task executions in seconds.
388
+ :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).
173
389
  """
390
+ if catalog is not None:
391
+ pulumi.set(__self__, "catalog", catalog)
174
392
  if comment is not None:
175
393
  pulumi.set(__self__, "comment", comment)
176
394
  if data_retention_time_in_days is not None:
177
395
  pulumi.set(__self__, "data_retention_time_in_days", data_retention_time_in_days)
178
- if from_database is not None:
179
- pulumi.set(__self__, "from_database", from_database)
180
- if from_replica is not None:
181
- pulumi.set(__self__, "from_replica", from_replica)
182
- if from_share is not None:
183
- pulumi.set(__self__, "from_share", from_share)
396
+ if default_ddl_collation is not None:
397
+ pulumi.set(__self__, "default_ddl_collation", default_ddl_collation)
398
+ if enable_console_output is not None:
399
+ pulumi.set(__self__, "enable_console_output", enable_console_output)
400
+ if external_volume is not None:
401
+ pulumi.set(__self__, "external_volume", external_volume)
184
402
  if is_transient is not None:
185
403
  pulumi.set(__self__, "is_transient", is_transient)
404
+ if log_level is not None:
405
+ pulumi.set(__self__, "log_level", log_level)
406
+ if max_data_extension_time_in_days is not None:
407
+ pulumi.set(__self__, "max_data_extension_time_in_days", max_data_extension_time_in_days)
186
408
  if name is not None:
187
409
  pulumi.set(__self__, "name", name)
188
- if replication_configuration is not None:
189
- pulumi.set(__self__, "replication_configuration", replication_configuration)
410
+ if quoted_identifiers_ignore_case is not None:
411
+ pulumi.set(__self__, "quoted_identifiers_ignore_case", quoted_identifiers_ignore_case)
412
+ if replace_invalid_characters is not None:
413
+ pulumi.set(__self__, "replace_invalid_characters", replace_invalid_characters)
414
+ if replication is not None:
415
+ pulumi.set(__self__, "replication", replication)
416
+ if storage_serialization_policy is not None:
417
+ pulumi.set(__self__, "storage_serialization_policy", storage_serialization_policy)
418
+ if suspend_task_after_num_failures is not None:
419
+ pulumi.set(__self__, "suspend_task_after_num_failures", suspend_task_after_num_failures)
420
+ if task_auto_retry_attempts is not None:
421
+ pulumi.set(__self__, "task_auto_retry_attempts", task_auto_retry_attempts)
422
+ if trace_level is not None:
423
+ pulumi.set(__self__, "trace_level", trace_level)
424
+ if user_task_managed_initial_warehouse_size is not None:
425
+ pulumi.set(__self__, "user_task_managed_initial_warehouse_size", user_task_managed_initial_warehouse_size)
426
+ if user_task_minimum_trigger_interval_in_seconds is not None:
427
+ pulumi.set(__self__, "user_task_minimum_trigger_interval_in_seconds", user_task_minimum_trigger_interval_in_seconds)
428
+ if user_task_timeout_ms is not None:
429
+ pulumi.set(__self__, "user_task_timeout_ms", user_task_timeout_ms)
430
+
431
+ @property
432
+ @pulumi.getter
433
+ def catalog(self) -> Optional[pulumi.Input[str]]:
434
+ """
435
+ 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).
436
+ """
437
+ return pulumi.get(self, "catalog")
438
+
439
+ @catalog.setter
440
+ def catalog(self, value: Optional[pulumi.Input[str]]):
441
+ pulumi.set(self, "catalog", value)
190
442
 
191
443
  @property
192
444
  @pulumi.getter
@@ -204,7 +456,7 @@ class _DatabaseState:
204
456
  @pulumi.getter(name="dataRetentionTimeInDays")
205
457
  def data_retention_time_in_days(self) -> Optional[pulumi.Input[int]]:
206
458
  """
207
- 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](https://docs.snowflake.com/en/user-guide/data-time-travel).
459
+ 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).
208
460
  """
209
461
  return pulumi.get(self, "data_retention_time_in_days")
210
462
 
@@ -213,46 +465,46 @@ class _DatabaseState:
213
465
  pulumi.set(self, "data_retention_time_in_days", value)
214
466
 
215
467
  @property
216
- @pulumi.getter(name="fromDatabase")
217
- def from_database(self) -> Optional[pulumi.Input[str]]:
468
+ @pulumi.getter(name="defaultDdlCollation")
469
+ def default_ddl_collation(self) -> Optional[pulumi.Input[str]]:
218
470
  """
219
- Specify a database to create a clone from.
471
+ 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).
220
472
  """
221
- return pulumi.get(self, "from_database")
473
+ return pulumi.get(self, "default_ddl_collation")
222
474
 
223
- @from_database.setter
224
- def from_database(self, value: Optional[pulumi.Input[str]]):
225
- pulumi.set(self, "from_database", value)
475
+ @default_ddl_collation.setter
476
+ def default_ddl_collation(self, value: Optional[pulumi.Input[str]]):
477
+ pulumi.set(self, "default_ddl_collation", value)
226
478
 
227
479
  @property
228
- @pulumi.getter(name="fromReplica")
229
- def from_replica(self) -> Optional[pulumi.Input[str]]:
480
+ @pulumi.getter(name="enableConsoleOutput")
481
+ def enable_console_output(self) -> Optional[pulumi.Input[bool]]:
230
482
  """
231
- Specify a fully-qualified path to a database to create a replica from. A fully qualified path follows the format of `"<organization_name>"."<account_name>"."<db_name>"`. An example would be: `"myorg1"."account1"."db1"`
483
+ If true, enables stdout/stderr fast path logging for anonymous stored procedures.
232
484
  """
233
- return pulumi.get(self, "from_replica")
485
+ return pulumi.get(self, "enable_console_output")
234
486
 
235
- @from_replica.setter
236
- def from_replica(self, value: Optional[pulumi.Input[str]]):
237
- pulumi.set(self, "from_replica", value)
487
+ @enable_console_output.setter
488
+ def enable_console_output(self, value: Optional[pulumi.Input[bool]]):
489
+ pulumi.set(self, "enable_console_output", value)
238
490
 
239
491
  @property
240
- @pulumi.getter(name="fromShare")
241
- def from_share(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
492
+ @pulumi.getter(name="externalVolume")
493
+ def external_volume(self) -> Optional[pulumi.Input[str]]:
242
494
  """
243
- Specify a provider and a share in this map to create a database from a share. As of version 0.87.0, the provider field is the account locator.
495
+ 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).
244
496
  """
245
- return pulumi.get(self, "from_share")
497
+ return pulumi.get(self, "external_volume")
246
498
 
247
- @from_share.setter
248
- def from_share(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
249
- pulumi.set(self, "from_share", value)
499
+ @external_volume.setter
500
+ def external_volume(self, value: Optional[pulumi.Input[str]]):
501
+ pulumi.set(self, "external_volume", value)
250
502
 
251
503
  @property
252
504
  @pulumi.getter(name="isTransient")
253
505
  def is_transient(self) -> Optional[pulumi.Input[bool]]:
254
506
  """
255
- 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.
507
+ 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.
256
508
  """
257
509
  return pulumi.get(self, "is_transient")
258
510
 
@@ -260,11 +512,35 @@ class _DatabaseState:
260
512
  def is_transient(self, value: Optional[pulumi.Input[bool]]):
261
513
  pulumi.set(self, "is_transient", value)
262
514
 
515
+ @property
516
+ @pulumi.getter(name="logLevel")
517
+ def log_level(self) -> Optional[pulumi.Input[str]]:
518
+ """
519
+ 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).
520
+ """
521
+ return pulumi.get(self, "log_level")
522
+
523
+ @log_level.setter
524
+ def log_level(self, value: Optional[pulumi.Input[str]]):
525
+ pulumi.set(self, "log_level", value)
526
+
527
+ @property
528
+ @pulumi.getter(name="maxDataExtensionTimeInDays")
529
+ def max_data_extension_time_in_days(self) -> Optional[pulumi.Input[int]]:
530
+ """
531
+ 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).
532
+ """
533
+ return pulumi.get(self, "max_data_extension_time_in_days")
534
+
535
+ @max_data_extension_time_in_days.setter
536
+ def max_data_extension_time_in_days(self, value: Optional[pulumi.Input[int]]):
537
+ pulumi.set(self, "max_data_extension_time_in_days", value)
538
+
263
539
  @property
264
540
  @pulumi.getter
265
541
  def name(self) -> Optional[pulumi.Input[str]]:
266
542
  """
267
- Specifies the identifier for the database; must be unique for your account.
543
+ 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.
268
544
  """
269
545
  return pulumi.get(self, "name")
270
546
 
@@ -273,16 +549,124 @@ class _DatabaseState:
273
549
  pulumi.set(self, "name", value)
274
550
 
275
551
  @property
276
- @pulumi.getter(name="replicationConfiguration")
277
- def replication_configuration(self) -> Optional[pulumi.Input['DatabaseReplicationConfigurationArgs']]:
552
+ @pulumi.getter(name="quotedIdentifiersIgnoreCase")
553
+ def quoted_identifiers_ignore_case(self) -> Optional[pulumi.Input[bool]]:
554
+ """
555
+ 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).
556
+ """
557
+ return pulumi.get(self, "quoted_identifiers_ignore_case")
558
+
559
+ @quoted_identifiers_ignore_case.setter
560
+ def quoted_identifiers_ignore_case(self, value: Optional[pulumi.Input[bool]]):
561
+ pulumi.set(self, "quoted_identifiers_ignore_case", value)
562
+
563
+ @property
564
+ @pulumi.getter(name="replaceInvalidCharacters")
565
+ def replace_invalid_characters(self) -> Optional[pulumi.Input[bool]]:
566
+ """
567
+ 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).
568
+ """
569
+ return pulumi.get(self, "replace_invalid_characters")
570
+
571
+ @replace_invalid_characters.setter
572
+ def replace_invalid_characters(self, value: Optional[pulumi.Input[bool]]):
573
+ pulumi.set(self, "replace_invalid_characters", value)
574
+
575
+ @property
576
+ @pulumi.getter
577
+ def replication(self) -> Optional[pulumi.Input['DatabaseReplicationArgs']]:
578
+ """
579
+ 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.
580
+ """
581
+ return pulumi.get(self, "replication")
582
+
583
+ @replication.setter
584
+ def replication(self, value: Optional[pulumi.Input['DatabaseReplicationArgs']]):
585
+ pulumi.set(self, "replication", value)
586
+
587
+ @property
588
+ @pulumi.getter(name="storageSerializationPolicy")
589
+ def storage_serialization_policy(self) -> Optional[pulumi.Input[str]]:
590
+ """
591
+ 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).
592
+ """
593
+ return pulumi.get(self, "storage_serialization_policy")
594
+
595
+ @storage_serialization_policy.setter
596
+ def storage_serialization_policy(self, value: Optional[pulumi.Input[str]]):
597
+ pulumi.set(self, "storage_serialization_policy", value)
598
+
599
+ @property
600
+ @pulumi.getter(name="suspendTaskAfterNumFailures")
601
+ def suspend_task_after_num_failures(self) -> Optional[pulumi.Input[int]]:
602
+ """
603
+ 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).
604
+ """
605
+ return pulumi.get(self, "suspend_task_after_num_failures")
606
+
607
+ @suspend_task_after_num_failures.setter
608
+ def suspend_task_after_num_failures(self, value: Optional[pulumi.Input[int]]):
609
+ pulumi.set(self, "suspend_task_after_num_failures", value)
610
+
611
+ @property
612
+ @pulumi.getter(name="taskAutoRetryAttempts")
613
+ def task_auto_retry_attempts(self) -> Optional[pulumi.Input[int]]:
614
+ """
615
+ 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).
616
+ """
617
+ return pulumi.get(self, "task_auto_retry_attempts")
618
+
619
+ @task_auto_retry_attempts.setter
620
+ def task_auto_retry_attempts(self, value: Optional[pulumi.Input[int]]):
621
+ pulumi.set(self, "task_auto_retry_attempts", value)
622
+
623
+ @property
624
+ @pulumi.getter(name="traceLevel")
625
+ def trace_level(self) -> Optional[pulumi.Input[str]]:
278
626
  """
279
- When set, specifies the configurations for database replication.
627
+ 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).
280
628
  """
281
- return pulumi.get(self, "replication_configuration")
629
+ return pulumi.get(self, "trace_level")
282
630
 
283
- @replication_configuration.setter
284
- def replication_configuration(self, value: Optional[pulumi.Input['DatabaseReplicationConfigurationArgs']]):
285
- pulumi.set(self, "replication_configuration", value)
631
+ @trace_level.setter
632
+ def trace_level(self, value: Optional[pulumi.Input[str]]):
633
+ pulumi.set(self, "trace_level", value)
634
+
635
+ @property
636
+ @pulumi.getter(name="userTaskManagedInitialWarehouseSize")
637
+ def user_task_managed_initial_warehouse_size(self) -> Optional[pulumi.Input[str]]:
638
+ """
639
+ 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).
640
+ """
641
+ return pulumi.get(self, "user_task_managed_initial_warehouse_size")
642
+
643
+ @user_task_managed_initial_warehouse_size.setter
644
+ def user_task_managed_initial_warehouse_size(self, value: Optional[pulumi.Input[str]]):
645
+ pulumi.set(self, "user_task_managed_initial_warehouse_size", value)
646
+
647
+ @property
648
+ @pulumi.getter(name="userTaskMinimumTriggerIntervalInSeconds")
649
+ def user_task_minimum_trigger_interval_in_seconds(self) -> Optional[pulumi.Input[int]]:
650
+ """
651
+ Minimum amount of time between Triggered Task executions in seconds.
652
+ """
653
+ return pulumi.get(self, "user_task_minimum_trigger_interval_in_seconds")
654
+
655
+ @user_task_minimum_trigger_interval_in_seconds.setter
656
+ def user_task_minimum_trigger_interval_in_seconds(self, value: Optional[pulumi.Input[int]]):
657
+ pulumi.set(self, "user_task_minimum_trigger_interval_in_seconds", value)
658
+
659
+ @property
660
+ @pulumi.getter(name="userTaskTimeoutMs")
661
+ def user_task_timeout_ms(self) -> Optional[pulumi.Input[int]]:
662
+ """
663
+ 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).
664
+ """
665
+ return pulumi.get(self, "user_task_timeout_ms")
666
+
667
+ @user_task_timeout_ms.setter
668
+ def user_task_timeout_ms(self, value: Optional[pulumi.Input[int]]):
669
+ pulumi.set(self, "user_task_timeout_ms", value)
286
670
 
287
671
 
288
672
  class Database(pulumi.CustomResource):
@@ -290,66 +674,119 @@ class Database(pulumi.CustomResource):
290
674
  def __init__(__self__,
291
675
  resource_name: str,
292
676
  opts: Optional[pulumi.ResourceOptions] = None,
677
+ catalog: Optional[pulumi.Input[str]] = None,
293
678
  comment: Optional[pulumi.Input[str]] = None,
294
679
  data_retention_time_in_days: Optional[pulumi.Input[int]] = None,
295
- from_database: Optional[pulumi.Input[str]] = None,
296
- from_replica: Optional[pulumi.Input[str]] = None,
297
- from_share: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
680
+ default_ddl_collation: Optional[pulumi.Input[str]] = None,
681
+ enable_console_output: Optional[pulumi.Input[bool]] = None,
682
+ external_volume: Optional[pulumi.Input[str]] = None,
298
683
  is_transient: Optional[pulumi.Input[bool]] = None,
684
+ log_level: Optional[pulumi.Input[str]] = None,
685
+ max_data_extension_time_in_days: Optional[pulumi.Input[int]] = None,
299
686
  name: Optional[pulumi.Input[str]] = None,
300
- replication_configuration: Optional[pulumi.Input[pulumi.InputType['DatabaseReplicationConfigurationArgs']]] = None,
687
+ quoted_identifiers_ignore_case: Optional[pulumi.Input[bool]] = None,
688
+ replace_invalid_characters: Optional[pulumi.Input[bool]] = None,
689
+ replication: Optional[pulumi.Input[pulumi.InputType['DatabaseReplicationArgs']]] = None,
690
+ storage_serialization_policy: Optional[pulumi.Input[str]] = None,
691
+ suspend_task_after_num_failures: Optional[pulumi.Input[int]] = None,
692
+ task_auto_retry_attempts: Optional[pulumi.Input[int]] = None,
693
+ trace_level: Optional[pulumi.Input[str]] = None,
694
+ user_task_managed_initial_warehouse_size: Optional[pulumi.Input[str]] = None,
695
+ user_task_minimum_trigger_interval_in_seconds: Optional[pulumi.Input[int]] = None,
696
+ user_task_timeout_ms: Optional[pulumi.Input[int]] = None,
301
697
  __props__=None):
302
698
  """
303
- ## Example Usage
304
-
305
- ```python
306
- import pulumi
307
- import pulumi_snowflake as snowflake
308
-
309
- simple = snowflake.Database("simple",
310
- name="testing",
311
- comment="test comment",
312
- data_retention_time_in_days=3)
313
- with_replication = snowflake.Database("with_replication",
314
- name="testing_2",
315
- comment="test comment 2",
316
- replication_configuration=snowflake.DatabaseReplicationConfigurationArgs(
317
- accounts=[
318
- "test_account1",
319
- "test_account_2",
320
- ],
321
- ignore_edition_check=True,
322
- ))
323
- from_replica = snowflake.Database("from_replica",
324
- name="testing_3",
325
- comment="test comment",
326
- data_retention_time_in_days=3,
327
- from_replica="\\"org1\\".\\"account1\\".\\"primary_db_name\\"")
328
- from_share = snowflake.Database("from_share",
329
- name="testing_4",
330
- comment="test comment",
331
- from_share={
332
- "provider": "account1_locator",
333
- "share": "share1",
334
- })
335
- ```
336
-
337
- ## Import
338
-
339
- ```sh
340
- $ pulumi import snowflake:index/database:Database example name
341
- ```
699
+ !> **V1 release candidate** This resource was reworked and is a release candidate for the V1. We do not expect significant changes in it before the V1. We will welcome any feedback and adjust the resource if needed. Any errors reported will be resolved with a higher priority. We encourage checking this resource out before the V1 release. Please follow the migration guide to use it.
700
+
701
+ Represents a standard database. If replication configuration is specified, the database is promoted to serve as a primary database for replication.
702
+
703
+ ## Minimal
704
+
705
+ resource "Database" "primary" {
706
+ name = "database_name"
707
+ }
708
+
709
+ ## Complete (with every optional set)
710
+
711
+ resource "Database" "primary" {
712
+ name = "database_name"
713
+ is_transient = false
714
+ comment = "my standard database"
715
+
716
+ data_retention_time_in_days = 10
717
+ data_retention_time_in_days_save = 10
718
+ max_data_extension_time_in_days = 20
719
+ external_volume = "<external_volume_name>"
720
+ catalog = "<catalog_name>"
721
+ replace_invalid_characters = false
722
+ default_ddl_collation = "en_US"
723
+ storage_serialization_policy = "COMPATIBLE"
724
+ log_level = "INFO"
725
+ trace_level = "ALWAYS"
726
+ suspend_task_after_num_failures = 10
727
+ task_auto_retry_attempts = 10
728
+ user_task_managed_initial_warehouse_size = "LARGE"
729
+ user_task_timeout_ms = 3600000
730
+ user_task_minimum_trigger_interval_in_seconds = 120
731
+ quoted_identifiers_ignore_case = false
732
+ enable_console_output = false
733
+
734
+ replication {
735
+ enable_to_account {
736
+ account_identifier = "<secondary_account_organization_name>.<secondary_account_name>"
737
+ with_failover = true
738
+ }
739
+ ignore_edition_check = true
740
+ }
741
+ }
742
+
743
+ ## Replication with for_each
744
+
745
+ locals {
746
+ replication_configs = [
747
+ {
748
+ account_identifier = "<secondary_account_organization_name>.<secondary_account_name>"
749
+ with_failover = true
750
+ },
751
+ {
752
+ account_identifier = "<secondary_account_organization_name>.<secondary_account_name>"
753
+ with_failover = true
754
+ },
755
+ ]
756
+ }
757
+
758
+ resource "Database" "primary" {
759
+ name = "database_name"
760
+ for_each = local.replication_configs
761
+
762
+ replication {
763
+ enable_to_account = each.value
764
+ ignore_edition_check = true
765
+ }
766
+ }
342
767
 
343
768
  :param str resource_name: The name of the resource.
344
769
  :param pulumi.ResourceOptions opts: Options for the resource.
770
+ :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).
345
771
  :param pulumi.Input[str] comment: Specifies a comment for the database.
346
- :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](https://docs.snowflake.com/en/user-guide/data-time-travel).
347
- :param pulumi.Input[str] from_database: Specify a database to create a clone from.
348
- :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 `"<organization_name>"."<account_name>"."<db_name>"`. An example would be: `"myorg1"."account1"."db1"`
349
- :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. As of version 0.87.0, the provider field is the account locator.
350
- :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.
351
- :param pulumi.Input[str] name: Specifies the identifier for the database; must be unique for your account.
352
- :param pulumi.Input[pulumi.InputType['DatabaseReplicationConfigurationArgs']] replication_configuration: When set, specifies the configurations for database replication.
772
+ :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).
773
+ :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).
774
+ :param pulumi.Input[bool] enable_console_output: If true, enables stdout/stderr fast path logging for anonymous stored procedures.
775
+ :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).
776
+ :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.
777
+ :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).
778
+ :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).
779
+ :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.
780
+ :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).
781
+ :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).
782
+ :param pulumi.Input[pulumi.InputType['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.
783
+ :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).
784
+ :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).
785
+ :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).
786
+ :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).
787
+ :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).
788
+ :param pulumi.Input[int] user_task_minimum_trigger_interval_in_seconds: Minimum amount of time between Triggered Task executions in seconds.
789
+ :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).
353
790
  """
354
791
  ...
355
792
  @overload
@@ -358,45 +795,74 @@ class Database(pulumi.CustomResource):
358
795
  args: Optional[DatabaseArgs] = None,
359
796
  opts: Optional[pulumi.ResourceOptions] = None):
360
797
  """
361
- ## Example Usage
362
-
363
- ```python
364
- import pulumi
365
- import pulumi_snowflake as snowflake
366
-
367
- simple = snowflake.Database("simple",
368
- name="testing",
369
- comment="test comment",
370
- data_retention_time_in_days=3)
371
- with_replication = snowflake.Database("with_replication",
372
- name="testing_2",
373
- comment="test comment 2",
374
- replication_configuration=snowflake.DatabaseReplicationConfigurationArgs(
375
- accounts=[
376
- "test_account1",
377
- "test_account_2",
378
- ],
379
- ignore_edition_check=True,
380
- ))
381
- from_replica = snowflake.Database("from_replica",
382
- name="testing_3",
383
- comment="test comment",
384
- data_retention_time_in_days=3,
385
- from_replica="\\"org1\\".\\"account1\\".\\"primary_db_name\\"")
386
- from_share = snowflake.Database("from_share",
387
- name="testing_4",
388
- comment="test comment",
389
- from_share={
390
- "provider": "account1_locator",
391
- "share": "share1",
392
- })
393
- ```
394
-
395
- ## Import
396
-
397
- ```sh
398
- $ pulumi import snowflake:index/database:Database example name
399
- ```
798
+ !> **V1 release candidate** This resource was reworked and is a release candidate for the V1. We do not expect significant changes in it before the V1. We will welcome any feedback and adjust the resource if needed. Any errors reported will be resolved with a higher priority. We encourage checking this resource out before the V1 release. Please follow the migration guide to use it.
799
+
800
+ Represents a standard database. If replication configuration is specified, the database is promoted to serve as a primary database for replication.
801
+
802
+ ## Minimal
803
+
804
+ resource "Database" "primary" {
805
+ name = "database_name"
806
+ }
807
+
808
+ ## Complete (with every optional set)
809
+
810
+ resource "Database" "primary" {
811
+ name = "database_name"
812
+ is_transient = false
813
+ comment = "my standard database"
814
+
815
+ data_retention_time_in_days = 10
816
+ data_retention_time_in_days_save = 10
817
+ max_data_extension_time_in_days = 20
818
+ external_volume = "<external_volume_name>"
819
+ catalog = "<catalog_name>"
820
+ replace_invalid_characters = false
821
+ default_ddl_collation = "en_US"
822
+ storage_serialization_policy = "COMPATIBLE"
823
+ log_level = "INFO"
824
+ trace_level = "ALWAYS"
825
+ suspend_task_after_num_failures = 10
826
+ task_auto_retry_attempts = 10
827
+ user_task_managed_initial_warehouse_size = "LARGE"
828
+ user_task_timeout_ms = 3600000
829
+ user_task_minimum_trigger_interval_in_seconds = 120
830
+ quoted_identifiers_ignore_case = false
831
+ enable_console_output = false
832
+
833
+ replication {
834
+ enable_to_account {
835
+ account_identifier = "<secondary_account_organization_name>.<secondary_account_name>"
836
+ with_failover = true
837
+ }
838
+ ignore_edition_check = true
839
+ }
840
+ }
841
+
842
+ ## Replication with for_each
843
+
844
+ locals {
845
+ replication_configs = [
846
+ {
847
+ account_identifier = "<secondary_account_organization_name>.<secondary_account_name>"
848
+ with_failover = true
849
+ },
850
+ {
851
+ account_identifier = "<secondary_account_organization_name>.<secondary_account_name>"
852
+ with_failover = true
853
+ },
854
+ ]
855
+ }
856
+
857
+ resource "Database" "primary" {
858
+ name = "database_name"
859
+ for_each = local.replication_configs
860
+
861
+ replication {
862
+ enable_to_account = each.value
863
+ ignore_edition_check = true
864
+ }
865
+ }
400
866
 
401
867
  :param str resource_name: The name of the resource.
402
868
  :param DatabaseArgs args: The arguments to use to populate this resource's properties.
@@ -413,14 +879,26 @@ class Database(pulumi.CustomResource):
413
879
  def _internal_init(__self__,
414
880
  resource_name: str,
415
881
  opts: Optional[pulumi.ResourceOptions] = None,
882
+ catalog: Optional[pulumi.Input[str]] = None,
416
883
  comment: Optional[pulumi.Input[str]] = None,
417
884
  data_retention_time_in_days: Optional[pulumi.Input[int]] = None,
418
- from_database: Optional[pulumi.Input[str]] = None,
419
- from_replica: Optional[pulumi.Input[str]] = None,
420
- from_share: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
885
+ default_ddl_collation: Optional[pulumi.Input[str]] = None,
886
+ enable_console_output: Optional[pulumi.Input[bool]] = None,
887
+ external_volume: Optional[pulumi.Input[str]] = None,
421
888
  is_transient: Optional[pulumi.Input[bool]] = None,
889
+ log_level: Optional[pulumi.Input[str]] = None,
890
+ max_data_extension_time_in_days: Optional[pulumi.Input[int]] = None,
422
891
  name: Optional[pulumi.Input[str]] = None,
423
- replication_configuration: Optional[pulumi.Input[pulumi.InputType['DatabaseReplicationConfigurationArgs']]] = None,
892
+ quoted_identifiers_ignore_case: Optional[pulumi.Input[bool]] = None,
893
+ replace_invalid_characters: Optional[pulumi.Input[bool]] = None,
894
+ replication: Optional[pulumi.Input[pulumi.InputType['DatabaseReplicationArgs']]] = None,
895
+ storage_serialization_policy: Optional[pulumi.Input[str]] = None,
896
+ suspend_task_after_num_failures: Optional[pulumi.Input[int]] = None,
897
+ task_auto_retry_attempts: Optional[pulumi.Input[int]] = None,
898
+ trace_level: Optional[pulumi.Input[str]] = None,
899
+ user_task_managed_initial_warehouse_size: Optional[pulumi.Input[str]] = None,
900
+ user_task_minimum_trigger_interval_in_seconds: Optional[pulumi.Input[int]] = None,
901
+ user_task_timeout_ms: Optional[pulumi.Input[int]] = None,
424
902
  __props__=None):
425
903
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
426
904
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -430,14 +908,26 @@ class Database(pulumi.CustomResource):
430
908
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
431
909
  __props__ = DatabaseArgs.__new__(DatabaseArgs)
432
910
 
911
+ __props__.__dict__["catalog"] = catalog
433
912
  __props__.__dict__["comment"] = comment
434
913
  __props__.__dict__["data_retention_time_in_days"] = data_retention_time_in_days
435
- __props__.__dict__["from_database"] = from_database
436
- __props__.__dict__["from_replica"] = from_replica
437
- __props__.__dict__["from_share"] = from_share
914
+ __props__.__dict__["default_ddl_collation"] = default_ddl_collation
915
+ __props__.__dict__["enable_console_output"] = enable_console_output
916
+ __props__.__dict__["external_volume"] = external_volume
438
917
  __props__.__dict__["is_transient"] = is_transient
918
+ __props__.__dict__["log_level"] = log_level
919
+ __props__.__dict__["max_data_extension_time_in_days"] = max_data_extension_time_in_days
439
920
  __props__.__dict__["name"] = name
440
- __props__.__dict__["replication_configuration"] = replication_configuration
921
+ __props__.__dict__["quoted_identifiers_ignore_case"] = quoted_identifiers_ignore_case
922
+ __props__.__dict__["replace_invalid_characters"] = replace_invalid_characters
923
+ __props__.__dict__["replication"] = replication
924
+ __props__.__dict__["storage_serialization_policy"] = storage_serialization_policy
925
+ __props__.__dict__["suspend_task_after_num_failures"] = suspend_task_after_num_failures
926
+ __props__.__dict__["task_auto_retry_attempts"] = task_auto_retry_attempts
927
+ __props__.__dict__["trace_level"] = trace_level
928
+ __props__.__dict__["user_task_managed_initial_warehouse_size"] = user_task_managed_initial_warehouse_size
929
+ __props__.__dict__["user_task_minimum_trigger_interval_in_seconds"] = user_task_minimum_trigger_interval_in_seconds
930
+ __props__.__dict__["user_task_timeout_ms"] = user_task_timeout_ms
441
931
  super(Database, __self__).__init__(
442
932
  'snowflake:index/database:Database',
443
933
  resource_name,
@@ -448,14 +938,26 @@ class Database(pulumi.CustomResource):
448
938
  def get(resource_name: str,
449
939
  id: pulumi.Input[str],
450
940
  opts: Optional[pulumi.ResourceOptions] = None,
941
+ catalog: Optional[pulumi.Input[str]] = None,
451
942
  comment: Optional[pulumi.Input[str]] = None,
452
943
  data_retention_time_in_days: Optional[pulumi.Input[int]] = None,
453
- from_database: Optional[pulumi.Input[str]] = None,
454
- from_replica: Optional[pulumi.Input[str]] = None,
455
- from_share: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
944
+ default_ddl_collation: Optional[pulumi.Input[str]] = None,
945
+ enable_console_output: Optional[pulumi.Input[bool]] = None,
946
+ external_volume: Optional[pulumi.Input[str]] = None,
456
947
  is_transient: Optional[pulumi.Input[bool]] = None,
948
+ log_level: Optional[pulumi.Input[str]] = None,
949
+ max_data_extension_time_in_days: Optional[pulumi.Input[int]] = None,
457
950
  name: Optional[pulumi.Input[str]] = None,
458
- replication_configuration: Optional[pulumi.Input[pulumi.InputType['DatabaseReplicationConfigurationArgs']]] = None) -> 'Database':
951
+ quoted_identifiers_ignore_case: Optional[pulumi.Input[bool]] = None,
952
+ replace_invalid_characters: Optional[pulumi.Input[bool]] = None,
953
+ replication: Optional[pulumi.Input[pulumi.InputType['DatabaseReplicationArgs']]] = None,
954
+ storage_serialization_policy: Optional[pulumi.Input[str]] = None,
955
+ suspend_task_after_num_failures: Optional[pulumi.Input[int]] = None,
956
+ task_auto_retry_attempts: Optional[pulumi.Input[int]] = None,
957
+ trace_level: Optional[pulumi.Input[str]] = None,
958
+ user_task_managed_initial_warehouse_size: Optional[pulumi.Input[str]] = None,
959
+ user_task_minimum_trigger_interval_in_seconds: Optional[pulumi.Input[int]] = None,
960
+ user_task_timeout_ms: Optional[pulumi.Input[int]] = None) -> 'Database':
459
961
  """
460
962
  Get an existing Database resource's state with the given name, id, and optional extra
461
963
  properties used to qualify the lookup.
@@ -463,29 +965,61 @@ class Database(pulumi.CustomResource):
463
965
  :param str resource_name: The unique name of the resulting resource.
464
966
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
465
967
  :param pulumi.ResourceOptions opts: Options for the resource.
968
+ :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).
466
969
  :param pulumi.Input[str] comment: Specifies a comment for the database.
467
- :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](https://docs.snowflake.com/en/user-guide/data-time-travel).
468
- :param pulumi.Input[str] from_database: Specify a database to create a clone from.
469
- :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 `"<organization_name>"."<account_name>"."<db_name>"`. An example would be: `"myorg1"."account1"."db1"`
470
- :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. As of version 0.87.0, the provider field is the account locator.
471
- :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.
472
- :param pulumi.Input[str] name: Specifies the identifier for the database; must be unique for your account.
473
- :param pulumi.Input[pulumi.InputType['DatabaseReplicationConfigurationArgs']] replication_configuration: When set, specifies the configurations for database replication.
970
+ :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).
971
+ :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).
972
+ :param pulumi.Input[bool] enable_console_output: If true, enables stdout/stderr fast path logging for anonymous stored procedures.
973
+ :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).
974
+ :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.
975
+ :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).
976
+ :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).
977
+ :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.
978
+ :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).
979
+ :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).
980
+ :param pulumi.Input[pulumi.InputType['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.
981
+ :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).
982
+ :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).
983
+ :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).
984
+ :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).
985
+ :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).
986
+ :param pulumi.Input[int] user_task_minimum_trigger_interval_in_seconds: Minimum amount of time between Triggered Task executions in seconds.
987
+ :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).
474
988
  """
475
989
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
476
990
 
477
991
  __props__ = _DatabaseState.__new__(_DatabaseState)
478
992
 
993
+ __props__.__dict__["catalog"] = catalog
479
994
  __props__.__dict__["comment"] = comment
480
995
  __props__.__dict__["data_retention_time_in_days"] = data_retention_time_in_days
481
- __props__.__dict__["from_database"] = from_database
482
- __props__.__dict__["from_replica"] = from_replica
483
- __props__.__dict__["from_share"] = from_share
996
+ __props__.__dict__["default_ddl_collation"] = default_ddl_collation
997
+ __props__.__dict__["enable_console_output"] = enable_console_output
998
+ __props__.__dict__["external_volume"] = external_volume
484
999
  __props__.__dict__["is_transient"] = is_transient
1000
+ __props__.__dict__["log_level"] = log_level
1001
+ __props__.__dict__["max_data_extension_time_in_days"] = max_data_extension_time_in_days
485
1002
  __props__.__dict__["name"] = name
486
- __props__.__dict__["replication_configuration"] = replication_configuration
1003
+ __props__.__dict__["quoted_identifiers_ignore_case"] = quoted_identifiers_ignore_case
1004
+ __props__.__dict__["replace_invalid_characters"] = replace_invalid_characters
1005
+ __props__.__dict__["replication"] = replication
1006
+ __props__.__dict__["storage_serialization_policy"] = storage_serialization_policy
1007
+ __props__.__dict__["suspend_task_after_num_failures"] = suspend_task_after_num_failures
1008
+ __props__.__dict__["task_auto_retry_attempts"] = task_auto_retry_attempts
1009
+ __props__.__dict__["trace_level"] = trace_level
1010
+ __props__.__dict__["user_task_managed_initial_warehouse_size"] = user_task_managed_initial_warehouse_size
1011
+ __props__.__dict__["user_task_minimum_trigger_interval_in_seconds"] = user_task_minimum_trigger_interval_in_seconds
1012
+ __props__.__dict__["user_task_timeout_ms"] = user_task_timeout_ms
487
1013
  return Database(resource_name, opts=opts, __props__=__props__)
488
1014
 
1015
+ @property
1016
+ @pulumi.getter
1017
+ def catalog(self) -> pulumi.Output[str]:
1018
+ """
1019
+ 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).
1020
+ """
1021
+ return pulumi.get(self, "catalog")
1022
+
489
1023
  @property
490
1024
  @pulumi.getter
491
1025
  def comment(self) -> pulumi.Output[Optional[str]]:
@@ -496,57 +1030,145 @@ class Database(pulumi.CustomResource):
496
1030
 
497
1031
  @property
498
1032
  @pulumi.getter(name="dataRetentionTimeInDays")
499
- def data_retention_time_in_days(self) -> pulumi.Output[Optional[int]]:
1033
+ def data_retention_time_in_days(self) -> pulumi.Output[int]:
500
1034
  """
501
- 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](https://docs.snowflake.com/en/user-guide/data-time-travel).
1035
+ 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).
502
1036
  """
503
1037
  return pulumi.get(self, "data_retention_time_in_days")
504
1038
 
505
1039
  @property
506
- @pulumi.getter(name="fromDatabase")
507
- def from_database(self) -> pulumi.Output[Optional[str]]:
1040
+ @pulumi.getter(name="defaultDdlCollation")
1041
+ def default_ddl_collation(self) -> pulumi.Output[str]:
508
1042
  """
509
- Specify a database to create a clone from.
1043
+ 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).
510
1044
  """
511
- return pulumi.get(self, "from_database")
1045
+ return pulumi.get(self, "default_ddl_collation")
512
1046
 
513
1047
  @property
514
- @pulumi.getter(name="fromReplica")
515
- def from_replica(self) -> pulumi.Output[Optional[str]]:
1048
+ @pulumi.getter(name="enableConsoleOutput")
1049
+ def enable_console_output(self) -> pulumi.Output[bool]:
516
1050
  """
517
- Specify a fully-qualified path to a database to create a replica from. A fully qualified path follows the format of `"<organization_name>"."<account_name>"."<db_name>"`. An example would be: `"myorg1"."account1"."db1"`
1051
+ If true, enables stdout/stderr fast path logging for anonymous stored procedures.
518
1052
  """
519
- return pulumi.get(self, "from_replica")
1053
+ return pulumi.get(self, "enable_console_output")
520
1054
 
521
1055
  @property
522
- @pulumi.getter(name="fromShare")
523
- def from_share(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
1056
+ @pulumi.getter(name="externalVolume")
1057
+ def external_volume(self) -> pulumi.Output[str]:
524
1058
  """
525
- Specify a provider and a share in this map to create a database from a share. As of version 0.87.0, the provider field is the account locator.
1059
+ 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).
526
1060
  """
527
- return pulumi.get(self, "from_share")
1061
+ return pulumi.get(self, "external_volume")
528
1062
 
529
1063
  @property
530
1064
  @pulumi.getter(name="isTransient")
531
1065
  def is_transient(self) -> pulumi.Output[Optional[bool]]:
532
1066
  """
533
- 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.
1067
+ 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.
534
1068
  """
535
1069
  return pulumi.get(self, "is_transient")
536
1070
 
1071
+ @property
1072
+ @pulumi.getter(name="logLevel")
1073
+ def log_level(self) -> pulumi.Output[str]:
1074
+ """
1075
+ 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).
1076
+ """
1077
+ return pulumi.get(self, "log_level")
1078
+
1079
+ @property
1080
+ @pulumi.getter(name="maxDataExtensionTimeInDays")
1081
+ def max_data_extension_time_in_days(self) -> pulumi.Output[int]:
1082
+ """
1083
+ 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).
1084
+ """
1085
+ return pulumi.get(self, "max_data_extension_time_in_days")
1086
+
537
1087
  @property
538
1088
  @pulumi.getter
539
1089
  def name(self) -> pulumi.Output[str]:
540
1090
  """
541
- Specifies the identifier for the database; must be unique for your account.
1091
+ 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.
542
1092
  """
543
1093
  return pulumi.get(self, "name")
544
1094
 
545
1095
  @property
546
- @pulumi.getter(name="replicationConfiguration")
547
- def replication_configuration(self) -> pulumi.Output[Optional['outputs.DatabaseReplicationConfiguration']]:
1096
+ @pulumi.getter(name="quotedIdentifiersIgnoreCase")
1097
+ def quoted_identifiers_ignore_case(self) -> pulumi.Output[bool]:
1098
+ """
1099
+ 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).
1100
+ """
1101
+ return pulumi.get(self, "quoted_identifiers_ignore_case")
1102
+
1103
+ @property
1104
+ @pulumi.getter(name="replaceInvalidCharacters")
1105
+ def replace_invalid_characters(self) -> pulumi.Output[bool]:
1106
+ """
1107
+ 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).
1108
+ """
1109
+ return pulumi.get(self, "replace_invalid_characters")
1110
+
1111
+ @property
1112
+ @pulumi.getter
1113
+ def replication(self) -> pulumi.Output[Optional['outputs.DatabaseReplication']]:
1114
+ """
1115
+ 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.
1116
+ """
1117
+ return pulumi.get(self, "replication")
1118
+
1119
+ @property
1120
+ @pulumi.getter(name="storageSerializationPolicy")
1121
+ def storage_serialization_policy(self) -> pulumi.Output[str]:
1122
+ """
1123
+ 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).
1124
+ """
1125
+ return pulumi.get(self, "storage_serialization_policy")
1126
+
1127
+ @property
1128
+ @pulumi.getter(name="suspendTaskAfterNumFailures")
1129
+ def suspend_task_after_num_failures(self) -> pulumi.Output[int]:
1130
+ """
1131
+ 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).
1132
+ """
1133
+ return pulumi.get(self, "suspend_task_after_num_failures")
1134
+
1135
+ @property
1136
+ @pulumi.getter(name="taskAutoRetryAttempts")
1137
+ def task_auto_retry_attempts(self) -> pulumi.Output[int]:
1138
+ """
1139
+ 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).
1140
+ """
1141
+ return pulumi.get(self, "task_auto_retry_attempts")
1142
+
1143
+ @property
1144
+ @pulumi.getter(name="traceLevel")
1145
+ def trace_level(self) -> pulumi.Output[str]:
1146
+ """
1147
+ 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).
1148
+ """
1149
+ return pulumi.get(self, "trace_level")
1150
+
1151
+ @property
1152
+ @pulumi.getter(name="userTaskManagedInitialWarehouseSize")
1153
+ def user_task_managed_initial_warehouse_size(self) -> pulumi.Output[str]:
1154
+ """
1155
+ 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).
1156
+ """
1157
+ return pulumi.get(self, "user_task_managed_initial_warehouse_size")
1158
+
1159
+ @property
1160
+ @pulumi.getter(name="userTaskMinimumTriggerIntervalInSeconds")
1161
+ def user_task_minimum_trigger_interval_in_seconds(self) -> pulumi.Output[int]:
1162
+ """
1163
+ Minimum amount of time between Triggered Task executions in seconds.
1164
+ """
1165
+ return pulumi.get(self, "user_task_minimum_trigger_interval_in_seconds")
1166
+
1167
+ @property
1168
+ @pulumi.getter(name="userTaskTimeoutMs")
1169
+ def user_task_timeout_ms(self) -> pulumi.Output[int]:
548
1170
  """
549
- When set, specifies the configurations for database replication.
1171
+ 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).
550
1172
  """
551
- return pulumi.get(self, "replication_configuration")
1173
+ return pulumi.get(self, "user_task_timeout_ms")
552
1174