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
@@ -0,0 +1,1059 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import pulumi
8
+ import pulumi.runtime
9
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
10
+ from . import _utilities
11
+
12
+ __all__ = ['SecondaryDatabaseArgs', 'SecondaryDatabase']
13
+
14
+ @pulumi.input_type
15
+ class SecondaryDatabaseArgs:
16
+ def __init__(__self__, *,
17
+ as_replica_of: pulumi.Input[str],
18
+ catalog: Optional[pulumi.Input[str]] = None,
19
+ comment: Optional[pulumi.Input[str]] = None,
20
+ data_retention_time_in_days: Optional[pulumi.Input[int]] = None,
21
+ default_ddl_collation: Optional[pulumi.Input[str]] = None,
22
+ enable_console_output: Optional[pulumi.Input[bool]] = None,
23
+ external_volume: Optional[pulumi.Input[str]] = None,
24
+ is_transient: Optional[pulumi.Input[bool]] = None,
25
+ log_level: Optional[pulumi.Input[str]] = None,
26
+ max_data_extension_time_in_days: Optional[pulumi.Input[int]] = None,
27
+ name: Optional[pulumi.Input[str]] = None,
28
+ quoted_identifiers_ignore_case: Optional[pulumi.Input[bool]] = None,
29
+ replace_invalid_characters: Optional[pulumi.Input[bool]] = None,
30
+ storage_serialization_policy: Optional[pulumi.Input[str]] = None,
31
+ suspend_task_after_num_failures: Optional[pulumi.Input[int]] = None,
32
+ task_auto_retry_attempts: Optional[pulumi.Input[int]] = None,
33
+ trace_level: Optional[pulumi.Input[str]] = None,
34
+ user_task_managed_initial_warehouse_size: Optional[pulumi.Input[str]] = None,
35
+ user_task_minimum_trigger_interval_in_seconds: Optional[pulumi.Input[int]] = None,
36
+ user_task_timeout_ms: Optional[pulumi.Input[int]] = None):
37
+ """
38
+ The set of arguments for constructing a SecondaryDatabase resource.
39
+ :param pulumi.Input[str] as_replica_of: A fully qualified path to a database to create a replica from. A fully qualified path follows the format of `"<organization_name>"."<account_name>"."<database_name>"`.
40
+ :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).
41
+ :param pulumi.Input[str] comment: Specifies a comment for the database.
42
+ :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).
43
+ :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).
44
+ :param pulumi.Input[bool] enable_console_output: If true, enables stdout/stderr fast path logging for anonymous stored procedures.
45
+ :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).
46
+ :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.
47
+ :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).
48
+ :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).
49
+ :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.
50
+ :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).
51
+ :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).
52
+ :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).
53
+ :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).
54
+ :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).
55
+ :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).
56
+ :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).
57
+ :param pulumi.Input[int] user_task_minimum_trigger_interval_in_seconds: Minimum amount of time between Triggered Task executions in seconds.
58
+ :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).
59
+ """
60
+ pulumi.set(__self__, "as_replica_of", as_replica_of)
61
+ if catalog is not None:
62
+ pulumi.set(__self__, "catalog", catalog)
63
+ if comment is not None:
64
+ pulumi.set(__self__, "comment", comment)
65
+ if data_retention_time_in_days is not None:
66
+ pulumi.set(__self__, "data_retention_time_in_days", data_retention_time_in_days)
67
+ if default_ddl_collation is not None:
68
+ pulumi.set(__self__, "default_ddl_collation", default_ddl_collation)
69
+ if enable_console_output is not None:
70
+ pulumi.set(__self__, "enable_console_output", enable_console_output)
71
+ if external_volume is not None:
72
+ pulumi.set(__self__, "external_volume", external_volume)
73
+ if is_transient is not None:
74
+ pulumi.set(__self__, "is_transient", is_transient)
75
+ if log_level is not None:
76
+ pulumi.set(__self__, "log_level", log_level)
77
+ if max_data_extension_time_in_days is not None:
78
+ pulumi.set(__self__, "max_data_extension_time_in_days", max_data_extension_time_in_days)
79
+ if name is not None:
80
+ pulumi.set(__self__, "name", name)
81
+ if quoted_identifiers_ignore_case is not None:
82
+ pulumi.set(__self__, "quoted_identifiers_ignore_case", quoted_identifiers_ignore_case)
83
+ if replace_invalid_characters is not None:
84
+ pulumi.set(__self__, "replace_invalid_characters", replace_invalid_characters)
85
+ if storage_serialization_policy is not None:
86
+ pulumi.set(__self__, "storage_serialization_policy", storage_serialization_policy)
87
+ if suspend_task_after_num_failures is not None:
88
+ pulumi.set(__self__, "suspend_task_after_num_failures", suspend_task_after_num_failures)
89
+ if task_auto_retry_attempts is not None:
90
+ pulumi.set(__self__, "task_auto_retry_attempts", task_auto_retry_attempts)
91
+ if trace_level is not None:
92
+ pulumi.set(__self__, "trace_level", trace_level)
93
+ if user_task_managed_initial_warehouse_size is not None:
94
+ pulumi.set(__self__, "user_task_managed_initial_warehouse_size", user_task_managed_initial_warehouse_size)
95
+ if user_task_minimum_trigger_interval_in_seconds is not None:
96
+ pulumi.set(__self__, "user_task_minimum_trigger_interval_in_seconds", user_task_minimum_trigger_interval_in_seconds)
97
+ if user_task_timeout_ms is not None:
98
+ pulumi.set(__self__, "user_task_timeout_ms", user_task_timeout_ms)
99
+
100
+ @property
101
+ @pulumi.getter(name="asReplicaOf")
102
+ def as_replica_of(self) -> pulumi.Input[str]:
103
+ """
104
+ A fully qualified path to a database to create a replica from. A fully qualified path follows the format of `"<organization_name>"."<account_name>"."<database_name>"`.
105
+ """
106
+ return pulumi.get(self, "as_replica_of")
107
+
108
+ @as_replica_of.setter
109
+ def as_replica_of(self, value: pulumi.Input[str]):
110
+ pulumi.set(self, "as_replica_of", value)
111
+
112
+ @property
113
+ @pulumi.getter
114
+ def catalog(self) -> Optional[pulumi.Input[str]]:
115
+ """
116
+ The database parameter that specifies the default catalog to use for Iceberg tables. For more information, see [CATALOG](https://docs.snowflake.com/en/sql-reference/parameters#catalog).
117
+ """
118
+ return pulumi.get(self, "catalog")
119
+
120
+ @catalog.setter
121
+ def catalog(self, value: Optional[pulumi.Input[str]]):
122
+ pulumi.set(self, "catalog", value)
123
+
124
+ @property
125
+ @pulumi.getter
126
+ def comment(self) -> Optional[pulumi.Input[str]]:
127
+ """
128
+ Specifies a comment for the database.
129
+ """
130
+ return pulumi.get(self, "comment")
131
+
132
+ @comment.setter
133
+ def comment(self, value: Optional[pulumi.Input[str]]):
134
+ pulumi.set(self, "comment", value)
135
+
136
+ @property
137
+ @pulumi.getter(name="dataRetentionTimeInDays")
138
+ def data_retention_time_in_days(self) -> Optional[pulumi.Input[int]]:
139
+ """
140
+ Specifies the number of days for which Time Travel actions (CLONE and UNDROP) can be performed on the database, as well as specifying the default Time Travel retention time for all schemas created in the database. For more details, see [Understanding & Using Time Travel](https://docs.snowflake.com/en/user-guide/data-time-travel).
141
+ """
142
+ return pulumi.get(self, "data_retention_time_in_days")
143
+
144
+ @data_retention_time_in_days.setter
145
+ def data_retention_time_in_days(self, value: Optional[pulumi.Input[int]]):
146
+ pulumi.set(self, "data_retention_time_in_days", value)
147
+
148
+ @property
149
+ @pulumi.getter(name="defaultDdlCollation")
150
+ def default_ddl_collation(self) -> Optional[pulumi.Input[str]]:
151
+ """
152
+ Specifies a default collation specification for all schemas and tables added to the database. It can be overridden on schema or table level. For more information, see [collation specification](https://docs.snowflake.com/en/sql-reference/collation#label-collation-specification).
153
+ """
154
+ return pulumi.get(self, "default_ddl_collation")
155
+
156
+ @default_ddl_collation.setter
157
+ def default_ddl_collation(self, value: Optional[pulumi.Input[str]]):
158
+ pulumi.set(self, "default_ddl_collation", value)
159
+
160
+ @property
161
+ @pulumi.getter(name="enableConsoleOutput")
162
+ def enable_console_output(self) -> Optional[pulumi.Input[bool]]:
163
+ """
164
+ If true, enables stdout/stderr fast path logging for anonymous stored procedures.
165
+ """
166
+ return pulumi.get(self, "enable_console_output")
167
+
168
+ @enable_console_output.setter
169
+ def enable_console_output(self, value: Optional[pulumi.Input[bool]]):
170
+ pulumi.set(self, "enable_console_output", value)
171
+
172
+ @property
173
+ @pulumi.getter(name="externalVolume")
174
+ def external_volume(self) -> Optional[pulumi.Input[str]]:
175
+ """
176
+ 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).
177
+ """
178
+ return pulumi.get(self, "external_volume")
179
+
180
+ @external_volume.setter
181
+ def external_volume(self, value: Optional[pulumi.Input[str]]):
182
+ pulumi.set(self, "external_volume", value)
183
+
184
+ @property
185
+ @pulumi.getter(name="isTransient")
186
+ def is_transient(self) -> Optional[pulumi.Input[bool]]:
187
+ """
188
+ 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.
189
+ """
190
+ return pulumi.get(self, "is_transient")
191
+
192
+ @is_transient.setter
193
+ def is_transient(self, value: Optional[pulumi.Input[bool]]):
194
+ pulumi.set(self, "is_transient", value)
195
+
196
+ @property
197
+ @pulumi.getter(name="logLevel")
198
+ def log_level(self) -> Optional[pulumi.Input[str]]:
199
+ """
200
+ 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).
201
+ """
202
+ return pulumi.get(self, "log_level")
203
+
204
+ @log_level.setter
205
+ def log_level(self, value: Optional[pulumi.Input[str]]):
206
+ pulumi.set(self, "log_level", value)
207
+
208
+ @property
209
+ @pulumi.getter(name="maxDataExtensionTimeInDays")
210
+ def max_data_extension_time_in_days(self) -> Optional[pulumi.Input[int]]:
211
+ """
212
+ 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).
213
+ """
214
+ return pulumi.get(self, "max_data_extension_time_in_days")
215
+
216
+ @max_data_extension_time_in_days.setter
217
+ def max_data_extension_time_in_days(self, value: Optional[pulumi.Input[int]]):
218
+ pulumi.set(self, "max_data_extension_time_in_days", value)
219
+
220
+ @property
221
+ @pulumi.getter
222
+ def name(self) -> Optional[pulumi.Input[str]]:
223
+ """
224
+ 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.
225
+ """
226
+ return pulumi.get(self, "name")
227
+
228
+ @name.setter
229
+ def name(self, value: Optional[pulumi.Input[str]]):
230
+ pulumi.set(self, "name", value)
231
+
232
+ @property
233
+ @pulumi.getter(name="quotedIdentifiersIgnoreCase")
234
+ def quoted_identifiers_ignore_case(self) -> Optional[pulumi.Input[bool]]:
235
+ """
236
+ 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).
237
+ """
238
+ return pulumi.get(self, "quoted_identifiers_ignore_case")
239
+
240
+ @quoted_identifiers_ignore_case.setter
241
+ def quoted_identifiers_ignore_case(self, value: Optional[pulumi.Input[bool]]):
242
+ pulumi.set(self, "quoted_identifiers_ignore_case", value)
243
+
244
+ @property
245
+ @pulumi.getter(name="replaceInvalidCharacters")
246
+ def replace_invalid_characters(self) -> Optional[pulumi.Input[bool]]:
247
+ """
248
+ 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).
249
+ """
250
+ return pulumi.get(self, "replace_invalid_characters")
251
+
252
+ @replace_invalid_characters.setter
253
+ def replace_invalid_characters(self, value: Optional[pulumi.Input[bool]]):
254
+ pulumi.set(self, "replace_invalid_characters", value)
255
+
256
+ @property
257
+ @pulumi.getter(name="storageSerializationPolicy")
258
+ def storage_serialization_policy(self) -> Optional[pulumi.Input[str]]:
259
+ """
260
+ 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).
261
+ """
262
+ return pulumi.get(self, "storage_serialization_policy")
263
+
264
+ @storage_serialization_policy.setter
265
+ def storage_serialization_policy(self, value: Optional[pulumi.Input[str]]):
266
+ pulumi.set(self, "storage_serialization_policy", value)
267
+
268
+ @property
269
+ @pulumi.getter(name="suspendTaskAfterNumFailures")
270
+ def suspend_task_after_num_failures(self) -> Optional[pulumi.Input[int]]:
271
+ """
272
+ 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).
273
+ """
274
+ return pulumi.get(self, "suspend_task_after_num_failures")
275
+
276
+ @suspend_task_after_num_failures.setter
277
+ def suspend_task_after_num_failures(self, value: Optional[pulumi.Input[int]]):
278
+ pulumi.set(self, "suspend_task_after_num_failures", value)
279
+
280
+ @property
281
+ @pulumi.getter(name="taskAutoRetryAttempts")
282
+ def task_auto_retry_attempts(self) -> Optional[pulumi.Input[int]]:
283
+ """
284
+ 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).
285
+ """
286
+ return pulumi.get(self, "task_auto_retry_attempts")
287
+
288
+ @task_auto_retry_attempts.setter
289
+ def task_auto_retry_attempts(self, value: Optional[pulumi.Input[int]]):
290
+ pulumi.set(self, "task_auto_retry_attempts", value)
291
+
292
+ @property
293
+ @pulumi.getter(name="traceLevel")
294
+ def trace_level(self) -> Optional[pulumi.Input[str]]:
295
+ """
296
+ 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).
297
+ """
298
+ return pulumi.get(self, "trace_level")
299
+
300
+ @trace_level.setter
301
+ def trace_level(self, value: Optional[pulumi.Input[str]]):
302
+ pulumi.set(self, "trace_level", value)
303
+
304
+ @property
305
+ @pulumi.getter(name="userTaskManagedInitialWarehouseSize")
306
+ def user_task_managed_initial_warehouse_size(self) -> Optional[pulumi.Input[str]]:
307
+ """
308
+ 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).
309
+ """
310
+ return pulumi.get(self, "user_task_managed_initial_warehouse_size")
311
+
312
+ @user_task_managed_initial_warehouse_size.setter
313
+ def user_task_managed_initial_warehouse_size(self, value: Optional[pulumi.Input[str]]):
314
+ pulumi.set(self, "user_task_managed_initial_warehouse_size", value)
315
+
316
+ @property
317
+ @pulumi.getter(name="userTaskMinimumTriggerIntervalInSeconds")
318
+ def user_task_minimum_trigger_interval_in_seconds(self) -> Optional[pulumi.Input[int]]:
319
+ """
320
+ Minimum amount of time between Triggered Task executions in seconds.
321
+ """
322
+ return pulumi.get(self, "user_task_minimum_trigger_interval_in_seconds")
323
+
324
+ @user_task_minimum_trigger_interval_in_seconds.setter
325
+ def user_task_minimum_trigger_interval_in_seconds(self, value: Optional[pulumi.Input[int]]):
326
+ pulumi.set(self, "user_task_minimum_trigger_interval_in_seconds", value)
327
+
328
+ @property
329
+ @pulumi.getter(name="userTaskTimeoutMs")
330
+ def user_task_timeout_ms(self) -> Optional[pulumi.Input[int]]:
331
+ """
332
+ User task execution timeout in milliseconds. For more information, see [USER*TASK*TIMEOUT_MS](https://docs.snowflake.com/en/sql-reference/parameters#user-task-timeout-ms).
333
+ """
334
+ return pulumi.get(self, "user_task_timeout_ms")
335
+
336
+ @user_task_timeout_ms.setter
337
+ def user_task_timeout_ms(self, value: Optional[pulumi.Input[int]]):
338
+ pulumi.set(self, "user_task_timeout_ms", value)
339
+
340
+
341
+ @pulumi.input_type
342
+ class _SecondaryDatabaseState:
343
+ def __init__(__self__, *,
344
+ as_replica_of: Optional[pulumi.Input[str]] = None,
345
+ catalog: Optional[pulumi.Input[str]] = None,
346
+ comment: Optional[pulumi.Input[str]] = None,
347
+ data_retention_time_in_days: Optional[pulumi.Input[int]] = None,
348
+ default_ddl_collation: Optional[pulumi.Input[str]] = None,
349
+ enable_console_output: Optional[pulumi.Input[bool]] = None,
350
+ external_volume: Optional[pulumi.Input[str]] = None,
351
+ is_transient: Optional[pulumi.Input[bool]] = None,
352
+ log_level: Optional[pulumi.Input[str]] = None,
353
+ max_data_extension_time_in_days: Optional[pulumi.Input[int]] = None,
354
+ name: Optional[pulumi.Input[str]] = None,
355
+ quoted_identifiers_ignore_case: Optional[pulumi.Input[bool]] = None,
356
+ replace_invalid_characters: Optional[pulumi.Input[bool]] = None,
357
+ storage_serialization_policy: Optional[pulumi.Input[str]] = None,
358
+ suspend_task_after_num_failures: Optional[pulumi.Input[int]] = None,
359
+ task_auto_retry_attempts: Optional[pulumi.Input[int]] = None,
360
+ trace_level: Optional[pulumi.Input[str]] = None,
361
+ user_task_managed_initial_warehouse_size: Optional[pulumi.Input[str]] = None,
362
+ user_task_minimum_trigger_interval_in_seconds: Optional[pulumi.Input[int]] = None,
363
+ user_task_timeout_ms: Optional[pulumi.Input[int]] = None):
364
+ """
365
+ Input properties used for looking up and filtering SecondaryDatabase resources.
366
+ :param pulumi.Input[str] as_replica_of: A fully qualified path to a database to create a replica from. A fully qualified path follows the format of `"<organization_name>"."<account_name>"."<database_name>"`.
367
+ :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).
368
+ :param pulumi.Input[str] comment: Specifies a comment for the database.
369
+ :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).
370
+ :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).
371
+ :param pulumi.Input[bool] enable_console_output: If true, enables stdout/stderr fast path logging for anonymous stored procedures.
372
+ :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).
373
+ :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.
374
+ :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).
375
+ :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).
376
+ :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.
377
+ :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).
378
+ :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).
379
+ :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).
380
+ :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).
381
+ :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).
382
+ :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).
383
+ :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).
384
+ :param pulumi.Input[int] user_task_minimum_trigger_interval_in_seconds: Minimum amount of time between Triggered Task executions in seconds.
385
+ :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).
386
+ """
387
+ if as_replica_of is not None:
388
+ pulumi.set(__self__, "as_replica_of", as_replica_of)
389
+ if catalog is not None:
390
+ pulumi.set(__self__, "catalog", catalog)
391
+ if comment is not None:
392
+ pulumi.set(__self__, "comment", comment)
393
+ if data_retention_time_in_days is not None:
394
+ pulumi.set(__self__, "data_retention_time_in_days", data_retention_time_in_days)
395
+ if default_ddl_collation is not None:
396
+ pulumi.set(__self__, "default_ddl_collation", default_ddl_collation)
397
+ if enable_console_output is not None:
398
+ pulumi.set(__self__, "enable_console_output", enable_console_output)
399
+ if external_volume is not None:
400
+ pulumi.set(__self__, "external_volume", external_volume)
401
+ if is_transient is not None:
402
+ pulumi.set(__self__, "is_transient", is_transient)
403
+ if log_level is not None:
404
+ pulumi.set(__self__, "log_level", log_level)
405
+ if max_data_extension_time_in_days is not None:
406
+ pulumi.set(__self__, "max_data_extension_time_in_days", max_data_extension_time_in_days)
407
+ if name is not None:
408
+ pulumi.set(__self__, "name", name)
409
+ if quoted_identifiers_ignore_case is not None:
410
+ pulumi.set(__self__, "quoted_identifiers_ignore_case", quoted_identifiers_ignore_case)
411
+ if replace_invalid_characters is not None:
412
+ pulumi.set(__self__, "replace_invalid_characters", replace_invalid_characters)
413
+ if storage_serialization_policy is not None:
414
+ pulumi.set(__self__, "storage_serialization_policy", storage_serialization_policy)
415
+ if suspend_task_after_num_failures is not None:
416
+ pulumi.set(__self__, "suspend_task_after_num_failures", suspend_task_after_num_failures)
417
+ if task_auto_retry_attempts is not None:
418
+ pulumi.set(__self__, "task_auto_retry_attempts", task_auto_retry_attempts)
419
+ if trace_level is not None:
420
+ pulumi.set(__self__, "trace_level", trace_level)
421
+ if user_task_managed_initial_warehouse_size is not None:
422
+ pulumi.set(__self__, "user_task_managed_initial_warehouse_size", user_task_managed_initial_warehouse_size)
423
+ if user_task_minimum_trigger_interval_in_seconds is not None:
424
+ pulumi.set(__self__, "user_task_minimum_trigger_interval_in_seconds", user_task_minimum_trigger_interval_in_seconds)
425
+ if user_task_timeout_ms is not None:
426
+ pulumi.set(__self__, "user_task_timeout_ms", user_task_timeout_ms)
427
+
428
+ @property
429
+ @pulumi.getter(name="asReplicaOf")
430
+ def as_replica_of(self) -> Optional[pulumi.Input[str]]:
431
+ """
432
+ A fully qualified path to a database to create a replica from. A fully qualified path follows the format of `"<organization_name>"."<account_name>"."<database_name>"`.
433
+ """
434
+ return pulumi.get(self, "as_replica_of")
435
+
436
+ @as_replica_of.setter
437
+ def as_replica_of(self, value: Optional[pulumi.Input[str]]):
438
+ pulumi.set(self, "as_replica_of", value)
439
+
440
+ @property
441
+ @pulumi.getter
442
+ def catalog(self) -> Optional[pulumi.Input[str]]:
443
+ """
444
+ 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).
445
+ """
446
+ return pulumi.get(self, "catalog")
447
+
448
+ @catalog.setter
449
+ def catalog(self, value: Optional[pulumi.Input[str]]):
450
+ pulumi.set(self, "catalog", value)
451
+
452
+ @property
453
+ @pulumi.getter
454
+ def comment(self) -> Optional[pulumi.Input[str]]:
455
+ """
456
+ Specifies a comment for the database.
457
+ """
458
+ return pulumi.get(self, "comment")
459
+
460
+ @comment.setter
461
+ def comment(self, value: Optional[pulumi.Input[str]]):
462
+ pulumi.set(self, "comment", value)
463
+
464
+ @property
465
+ @pulumi.getter(name="dataRetentionTimeInDays")
466
+ def data_retention_time_in_days(self) -> Optional[pulumi.Input[int]]:
467
+ """
468
+ 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).
469
+ """
470
+ return pulumi.get(self, "data_retention_time_in_days")
471
+
472
+ @data_retention_time_in_days.setter
473
+ def data_retention_time_in_days(self, value: Optional[pulumi.Input[int]]):
474
+ pulumi.set(self, "data_retention_time_in_days", value)
475
+
476
+ @property
477
+ @pulumi.getter(name="defaultDdlCollation")
478
+ def default_ddl_collation(self) -> Optional[pulumi.Input[str]]:
479
+ """
480
+ 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).
481
+ """
482
+ return pulumi.get(self, "default_ddl_collation")
483
+
484
+ @default_ddl_collation.setter
485
+ def default_ddl_collation(self, value: Optional[pulumi.Input[str]]):
486
+ pulumi.set(self, "default_ddl_collation", value)
487
+
488
+ @property
489
+ @pulumi.getter(name="enableConsoleOutput")
490
+ def enable_console_output(self) -> Optional[pulumi.Input[bool]]:
491
+ """
492
+ If true, enables stdout/stderr fast path logging for anonymous stored procedures.
493
+ """
494
+ return pulumi.get(self, "enable_console_output")
495
+
496
+ @enable_console_output.setter
497
+ def enable_console_output(self, value: Optional[pulumi.Input[bool]]):
498
+ pulumi.set(self, "enable_console_output", value)
499
+
500
+ @property
501
+ @pulumi.getter(name="externalVolume")
502
+ def external_volume(self) -> Optional[pulumi.Input[str]]:
503
+ """
504
+ 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).
505
+ """
506
+ return pulumi.get(self, "external_volume")
507
+
508
+ @external_volume.setter
509
+ def external_volume(self, value: Optional[pulumi.Input[str]]):
510
+ pulumi.set(self, "external_volume", value)
511
+
512
+ @property
513
+ @pulumi.getter(name="isTransient")
514
+ def is_transient(self) -> Optional[pulumi.Input[bool]]:
515
+ """
516
+ 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.
517
+ """
518
+ return pulumi.get(self, "is_transient")
519
+
520
+ @is_transient.setter
521
+ def is_transient(self, value: Optional[pulumi.Input[bool]]):
522
+ pulumi.set(self, "is_transient", value)
523
+
524
+ @property
525
+ @pulumi.getter(name="logLevel")
526
+ def log_level(self) -> Optional[pulumi.Input[str]]:
527
+ """
528
+ 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).
529
+ """
530
+ return pulumi.get(self, "log_level")
531
+
532
+ @log_level.setter
533
+ def log_level(self, value: Optional[pulumi.Input[str]]):
534
+ pulumi.set(self, "log_level", value)
535
+
536
+ @property
537
+ @pulumi.getter(name="maxDataExtensionTimeInDays")
538
+ def max_data_extension_time_in_days(self) -> Optional[pulumi.Input[int]]:
539
+ """
540
+ 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).
541
+ """
542
+ return pulumi.get(self, "max_data_extension_time_in_days")
543
+
544
+ @max_data_extension_time_in_days.setter
545
+ def max_data_extension_time_in_days(self, value: Optional[pulumi.Input[int]]):
546
+ pulumi.set(self, "max_data_extension_time_in_days", value)
547
+
548
+ @property
549
+ @pulumi.getter
550
+ def name(self) -> Optional[pulumi.Input[str]]:
551
+ """
552
+ 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.
553
+ """
554
+ return pulumi.get(self, "name")
555
+
556
+ @name.setter
557
+ def name(self, value: Optional[pulumi.Input[str]]):
558
+ pulumi.set(self, "name", value)
559
+
560
+ @property
561
+ @pulumi.getter(name="quotedIdentifiersIgnoreCase")
562
+ def quoted_identifiers_ignore_case(self) -> Optional[pulumi.Input[bool]]:
563
+ """
564
+ 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).
565
+ """
566
+ return pulumi.get(self, "quoted_identifiers_ignore_case")
567
+
568
+ @quoted_identifiers_ignore_case.setter
569
+ def quoted_identifiers_ignore_case(self, value: Optional[pulumi.Input[bool]]):
570
+ pulumi.set(self, "quoted_identifiers_ignore_case", value)
571
+
572
+ @property
573
+ @pulumi.getter(name="replaceInvalidCharacters")
574
+ def replace_invalid_characters(self) -> Optional[pulumi.Input[bool]]:
575
+ """
576
+ 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).
577
+ """
578
+ return pulumi.get(self, "replace_invalid_characters")
579
+
580
+ @replace_invalid_characters.setter
581
+ def replace_invalid_characters(self, value: Optional[pulumi.Input[bool]]):
582
+ pulumi.set(self, "replace_invalid_characters", value)
583
+
584
+ @property
585
+ @pulumi.getter(name="storageSerializationPolicy")
586
+ def storage_serialization_policy(self) -> Optional[pulumi.Input[str]]:
587
+ """
588
+ 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).
589
+ """
590
+ return pulumi.get(self, "storage_serialization_policy")
591
+
592
+ @storage_serialization_policy.setter
593
+ def storage_serialization_policy(self, value: Optional[pulumi.Input[str]]):
594
+ pulumi.set(self, "storage_serialization_policy", value)
595
+
596
+ @property
597
+ @pulumi.getter(name="suspendTaskAfterNumFailures")
598
+ def suspend_task_after_num_failures(self) -> Optional[pulumi.Input[int]]:
599
+ """
600
+ 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).
601
+ """
602
+ return pulumi.get(self, "suspend_task_after_num_failures")
603
+
604
+ @suspend_task_after_num_failures.setter
605
+ def suspend_task_after_num_failures(self, value: Optional[pulumi.Input[int]]):
606
+ pulumi.set(self, "suspend_task_after_num_failures", value)
607
+
608
+ @property
609
+ @pulumi.getter(name="taskAutoRetryAttempts")
610
+ def task_auto_retry_attempts(self) -> Optional[pulumi.Input[int]]:
611
+ """
612
+ 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).
613
+ """
614
+ return pulumi.get(self, "task_auto_retry_attempts")
615
+
616
+ @task_auto_retry_attempts.setter
617
+ def task_auto_retry_attempts(self, value: Optional[pulumi.Input[int]]):
618
+ pulumi.set(self, "task_auto_retry_attempts", value)
619
+
620
+ @property
621
+ @pulumi.getter(name="traceLevel")
622
+ def trace_level(self) -> Optional[pulumi.Input[str]]:
623
+ """
624
+ 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).
625
+ """
626
+ return pulumi.get(self, "trace_level")
627
+
628
+ @trace_level.setter
629
+ def trace_level(self, value: Optional[pulumi.Input[str]]):
630
+ pulumi.set(self, "trace_level", value)
631
+
632
+ @property
633
+ @pulumi.getter(name="userTaskManagedInitialWarehouseSize")
634
+ def user_task_managed_initial_warehouse_size(self) -> Optional[pulumi.Input[str]]:
635
+ """
636
+ 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).
637
+ """
638
+ return pulumi.get(self, "user_task_managed_initial_warehouse_size")
639
+
640
+ @user_task_managed_initial_warehouse_size.setter
641
+ def user_task_managed_initial_warehouse_size(self, value: Optional[pulumi.Input[str]]):
642
+ pulumi.set(self, "user_task_managed_initial_warehouse_size", value)
643
+
644
+ @property
645
+ @pulumi.getter(name="userTaskMinimumTriggerIntervalInSeconds")
646
+ def user_task_minimum_trigger_interval_in_seconds(self) -> Optional[pulumi.Input[int]]:
647
+ """
648
+ Minimum amount of time between Triggered Task executions in seconds.
649
+ """
650
+ return pulumi.get(self, "user_task_minimum_trigger_interval_in_seconds")
651
+
652
+ @user_task_minimum_trigger_interval_in_seconds.setter
653
+ def user_task_minimum_trigger_interval_in_seconds(self, value: Optional[pulumi.Input[int]]):
654
+ pulumi.set(self, "user_task_minimum_trigger_interval_in_seconds", value)
655
+
656
+ @property
657
+ @pulumi.getter(name="userTaskTimeoutMs")
658
+ def user_task_timeout_ms(self) -> Optional[pulumi.Input[int]]:
659
+ """
660
+ 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).
661
+ """
662
+ return pulumi.get(self, "user_task_timeout_ms")
663
+
664
+ @user_task_timeout_ms.setter
665
+ def user_task_timeout_ms(self, value: Optional[pulumi.Input[int]]):
666
+ pulumi.set(self, "user_task_timeout_ms", value)
667
+
668
+
669
+ class SecondaryDatabase(pulumi.CustomResource):
670
+ @overload
671
+ def __init__(__self__,
672
+ resource_name: str,
673
+ opts: Optional[pulumi.ResourceOptions] = None,
674
+ as_replica_of: Optional[pulumi.Input[str]] = None,
675
+ catalog: Optional[pulumi.Input[str]] = None,
676
+ comment: Optional[pulumi.Input[str]] = None,
677
+ data_retention_time_in_days: Optional[pulumi.Input[int]] = None,
678
+ default_ddl_collation: Optional[pulumi.Input[str]] = None,
679
+ enable_console_output: Optional[pulumi.Input[bool]] = None,
680
+ external_volume: Optional[pulumi.Input[str]] = None,
681
+ is_transient: Optional[pulumi.Input[bool]] = None,
682
+ log_level: Optional[pulumi.Input[str]] = None,
683
+ max_data_extension_time_in_days: Optional[pulumi.Input[int]] = None,
684
+ name: Optional[pulumi.Input[str]] = None,
685
+ quoted_identifiers_ignore_case: Optional[pulumi.Input[bool]] = None,
686
+ replace_invalid_characters: Optional[pulumi.Input[bool]] = None,
687
+ storage_serialization_policy: Optional[pulumi.Input[str]] = None,
688
+ suspend_task_after_num_failures: Optional[pulumi.Input[int]] = None,
689
+ task_auto_retry_attempts: Optional[pulumi.Input[int]] = None,
690
+ trace_level: Optional[pulumi.Input[str]] = None,
691
+ user_task_managed_initial_warehouse_size: Optional[pulumi.Input[str]] = None,
692
+ user_task_minimum_trigger_interval_in_seconds: Optional[pulumi.Input[int]] = None,
693
+ user_task_timeout_ms: Optional[pulumi.Input[int]] = None,
694
+ __props__=None):
695
+ """
696
+ !> **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.
697
+
698
+ > **Note** The SecondaryDatabase resource doesn't refresh itself, as the best practice is to use tasks scheduled for a certain interval. Check out the examples to see how to set up the refresh task. For SQL-based replication guide, see the [official documentation](https://docs.snowflake.com/en/user-guide/db-replication-config#replicating-a-database-to-another-account).
699
+
700
+ A secondary database creates a replica of an existing primary database (i.e. a secondary database). For more information about database replication, see [Introduction to database replication across multiple accounts](https://docs.snowflake.com/en/user-guide/db-replication-intro).
701
+
702
+ ## Import
703
+
704
+ ```sh
705
+ $ pulumi import snowflake:index/secondaryDatabase:SecondaryDatabase example 'secondary_database_name'
706
+ ```
707
+
708
+ :param str resource_name: The name of the resource.
709
+ :param pulumi.ResourceOptions opts: Options for the resource.
710
+ :param pulumi.Input[str] as_replica_of: A fully qualified path to a database to create a replica from. A fully qualified path follows the format of `"<organization_name>"."<account_name>"."<database_name>"`.
711
+ :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).
712
+ :param pulumi.Input[str] comment: Specifies a comment for the database.
713
+ :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).
714
+ :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).
715
+ :param pulumi.Input[bool] enable_console_output: If true, enables stdout/stderr fast path logging for anonymous stored procedures.
716
+ :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).
717
+ :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.
718
+ :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).
719
+ :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).
720
+ :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.
721
+ :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).
722
+ :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).
723
+ :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).
724
+ :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).
725
+ :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).
726
+ :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).
727
+ :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).
728
+ :param pulumi.Input[int] user_task_minimum_trigger_interval_in_seconds: Minimum amount of time between Triggered Task executions in seconds.
729
+ :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).
730
+ """
731
+ ...
732
+ @overload
733
+ def __init__(__self__,
734
+ resource_name: str,
735
+ args: SecondaryDatabaseArgs,
736
+ opts: Optional[pulumi.ResourceOptions] = None):
737
+ """
738
+ !> **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.
739
+
740
+ > **Note** The SecondaryDatabase resource doesn't refresh itself, as the best practice is to use tasks scheduled for a certain interval. Check out the examples to see how to set up the refresh task. For SQL-based replication guide, see the [official documentation](https://docs.snowflake.com/en/user-guide/db-replication-config#replicating-a-database-to-another-account).
741
+
742
+ A secondary database creates a replica of an existing primary database (i.e. a secondary database). For more information about database replication, see [Introduction to database replication across multiple accounts](https://docs.snowflake.com/en/user-guide/db-replication-intro).
743
+
744
+ ## Import
745
+
746
+ ```sh
747
+ $ pulumi import snowflake:index/secondaryDatabase:SecondaryDatabase example 'secondary_database_name'
748
+ ```
749
+
750
+ :param str resource_name: The name of the resource.
751
+ :param SecondaryDatabaseArgs args: The arguments to use to populate this resource's properties.
752
+ :param pulumi.ResourceOptions opts: Options for the resource.
753
+ """
754
+ ...
755
+ def __init__(__self__, resource_name: str, *args, **kwargs):
756
+ resource_args, opts = _utilities.get_resource_args_opts(SecondaryDatabaseArgs, pulumi.ResourceOptions, *args, **kwargs)
757
+ if resource_args is not None:
758
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
759
+ else:
760
+ __self__._internal_init(resource_name, *args, **kwargs)
761
+
762
+ def _internal_init(__self__,
763
+ resource_name: str,
764
+ opts: Optional[pulumi.ResourceOptions] = None,
765
+ as_replica_of: Optional[pulumi.Input[str]] = None,
766
+ catalog: Optional[pulumi.Input[str]] = None,
767
+ comment: Optional[pulumi.Input[str]] = None,
768
+ data_retention_time_in_days: Optional[pulumi.Input[int]] = None,
769
+ default_ddl_collation: Optional[pulumi.Input[str]] = None,
770
+ enable_console_output: Optional[pulumi.Input[bool]] = None,
771
+ external_volume: Optional[pulumi.Input[str]] = None,
772
+ is_transient: Optional[pulumi.Input[bool]] = None,
773
+ log_level: Optional[pulumi.Input[str]] = None,
774
+ max_data_extension_time_in_days: Optional[pulumi.Input[int]] = None,
775
+ name: Optional[pulumi.Input[str]] = None,
776
+ quoted_identifiers_ignore_case: Optional[pulumi.Input[bool]] = None,
777
+ replace_invalid_characters: Optional[pulumi.Input[bool]] = None,
778
+ storage_serialization_policy: Optional[pulumi.Input[str]] = None,
779
+ suspend_task_after_num_failures: Optional[pulumi.Input[int]] = None,
780
+ task_auto_retry_attempts: Optional[pulumi.Input[int]] = None,
781
+ trace_level: Optional[pulumi.Input[str]] = None,
782
+ user_task_managed_initial_warehouse_size: Optional[pulumi.Input[str]] = None,
783
+ user_task_minimum_trigger_interval_in_seconds: Optional[pulumi.Input[int]] = None,
784
+ user_task_timeout_ms: Optional[pulumi.Input[int]] = None,
785
+ __props__=None):
786
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
787
+ if not isinstance(opts, pulumi.ResourceOptions):
788
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
789
+ if opts.id is None:
790
+ if __props__ is not None:
791
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
792
+ __props__ = SecondaryDatabaseArgs.__new__(SecondaryDatabaseArgs)
793
+
794
+ if as_replica_of is None and not opts.urn:
795
+ raise TypeError("Missing required property 'as_replica_of'")
796
+ __props__.__dict__["as_replica_of"] = as_replica_of
797
+ __props__.__dict__["catalog"] = catalog
798
+ __props__.__dict__["comment"] = comment
799
+ __props__.__dict__["data_retention_time_in_days"] = data_retention_time_in_days
800
+ __props__.__dict__["default_ddl_collation"] = default_ddl_collation
801
+ __props__.__dict__["enable_console_output"] = enable_console_output
802
+ __props__.__dict__["external_volume"] = external_volume
803
+ __props__.__dict__["is_transient"] = is_transient
804
+ __props__.__dict__["log_level"] = log_level
805
+ __props__.__dict__["max_data_extension_time_in_days"] = max_data_extension_time_in_days
806
+ __props__.__dict__["name"] = name
807
+ __props__.__dict__["quoted_identifiers_ignore_case"] = quoted_identifiers_ignore_case
808
+ __props__.__dict__["replace_invalid_characters"] = replace_invalid_characters
809
+ __props__.__dict__["storage_serialization_policy"] = storage_serialization_policy
810
+ __props__.__dict__["suspend_task_after_num_failures"] = suspend_task_after_num_failures
811
+ __props__.__dict__["task_auto_retry_attempts"] = task_auto_retry_attempts
812
+ __props__.__dict__["trace_level"] = trace_level
813
+ __props__.__dict__["user_task_managed_initial_warehouse_size"] = user_task_managed_initial_warehouse_size
814
+ __props__.__dict__["user_task_minimum_trigger_interval_in_seconds"] = user_task_minimum_trigger_interval_in_seconds
815
+ __props__.__dict__["user_task_timeout_ms"] = user_task_timeout_ms
816
+ super(SecondaryDatabase, __self__).__init__(
817
+ 'snowflake:index/secondaryDatabase:SecondaryDatabase',
818
+ resource_name,
819
+ __props__,
820
+ opts)
821
+
822
+ @staticmethod
823
+ def get(resource_name: str,
824
+ id: pulumi.Input[str],
825
+ opts: Optional[pulumi.ResourceOptions] = None,
826
+ as_replica_of: Optional[pulumi.Input[str]] = None,
827
+ catalog: Optional[pulumi.Input[str]] = None,
828
+ comment: Optional[pulumi.Input[str]] = None,
829
+ data_retention_time_in_days: Optional[pulumi.Input[int]] = None,
830
+ default_ddl_collation: Optional[pulumi.Input[str]] = None,
831
+ enable_console_output: Optional[pulumi.Input[bool]] = None,
832
+ external_volume: Optional[pulumi.Input[str]] = None,
833
+ is_transient: Optional[pulumi.Input[bool]] = None,
834
+ log_level: Optional[pulumi.Input[str]] = None,
835
+ max_data_extension_time_in_days: Optional[pulumi.Input[int]] = None,
836
+ name: Optional[pulumi.Input[str]] = None,
837
+ quoted_identifiers_ignore_case: Optional[pulumi.Input[bool]] = None,
838
+ replace_invalid_characters: Optional[pulumi.Input[bool]] = None,
839
+ storage_serialization_policy: Optional[pulumi.Input[str]] = None,
840
+ suspend_task_after_num_failures: Optional[pulumi.Input[int]] = None,
841
+ task_auto_retry_attempts: Optional[pulumi.Input[int]] = None,
842
+ trace_level: Optional[pulumi.Input[str]] = None,
843
+ user_task_managed_initial_warehouse_size: Optional[pulumi.Input[str]] = None,
844
+ user_task_minimum_trigger_interval_in_seconds: Optional[pulumi.Input[int]] = None,
845
+ user_task_timeout_ms: Optional[pulumi.Input[int]] = None) -> 'SecondaryDatabase':
846
+ """
847
+ Get an existing SecondaryDatabase resource's state with the given name, id, and optional extra
848
+ properties used to qualify the lookup.
849
+
850
+ :param str resource_name: The unique name of the resulting resource.
851
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
852
+ :param pulumi.ResourceOptions opts: Options for the resource.
853
+ :param pulumi.Input[str] as_replica_of: A fully qualified path to a database to create a replica from. A fully qualified path follows the format of `"<organization_name>"."<account_name>"."<database_name>"`.
854
+ :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).
855
+ :param pulumi.Input[str] comment: Specifies a comment for the database.
856
+ :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).
857
+ :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).
858
+ :param pulumi.Input[bool] enable_console_output: If true, enables stdout/stderr fast path logging for anonymous stored procedures.
859
+ :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).
860
+ :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.
861
+ :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).
862
+ :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).
863
+ :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.
864
+ :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).
865
+ :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).
866
+ :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).
867
+ :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).
868
+ :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).
869
+ :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).
870
+ :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).
871
+ :param pulumi.Input[int] user_task_minimum_trigger_interval_in_seconds: Minimum amount of time between Triggered Task executions in seconds.
872
+ :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).
873
+ """
874
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
875
+
876
+ __props__ = _SecondaryDatabaseState.__new__(_SecondaryDatabaseState)
877
+
878
+ __props__.__dict__["as_replica_of"] = as_replica_of
879
+ __props__.__dict__["catalog"] = catalog
880
+ __props__.__dict__["comment"] = comment
881
+ __props__.__dict__["data_retention_time_in_days"] = data_retention_time_in_days
882
+ __props__.__dict__["default_ddl_collation"] = default_ddl_collation
883
+ __props__.__dict__["enable_console_output"] = enable_console_output
884
+ __props__.__dict__["external_volume"] = external_volume
885
+ __props__.__dict__["is_transient"] = is_transient
886
+ __props__.__dict__["log_level"] = log_level
887
+ __props__.__dict__["max_data_extension_time_in_days"] = max_data_extension_time_in_days
888
+ __props__.__dict__["name"] = name
889
+ __props__.__dict__["quoted_identifiers_ignore_case"] = quoted_identifiers_ignore_case
890
+ __props__.__dict__["replace_invalid_characters"] = replace_invalid_characters
891
+ __props__.__dict__["storage_serialization_policy"] = storage_serialization_policy
892
+ __props__.__dict__["suspend_task_after_num_failures"] = suspend_task_after_num_failures
893
+ __props__.__dict__["task_auto_retry_attempts"] = task_auto_retry_attempts
894
+ __props__.__dict__["trace_level"] = trace_level
895
+ __props__.__dict__["user_task_managed_initial_warehouse_size"] = user_task_managed_initial_warehouse_size
896
+ __props__.__dict__["user_task_minimum_trigger_interval_in_seconds"] = user_task_minimum_trigger_interval_in_seconds
897
+ __props__.__dict__["user_task_timeout_ms"] = user_task_timeout_ms
898
+ return SecondaryDatabase(resource_name, opts=opts, __props__=__props__)
899
+
900
+ @property
901
+ @pulumi.getter(name="asReplicaOf")
902
+ def as_replica_of(self) -> pulumi.Output[str]:
903
+ """
904
+ A fully qualified path to a database to create a replica from. A fully qualified path follows the format of `"<organization_name>"."<account_name>"."<database_name>"`.
905
+ """
906
+ return pulumi.get(self, "as_replica_of")
907
+
908
+ @property
909
+ @pulumi.getter
910
+ def catalog(self) -> pulumi.Output[str]:
911
+ """
912
+ 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).
913
+ """
914
+ return pulumi.get(self, "catalog")
915
+
916
+ @property
917
+ @pulumi.getter
918
+ def comment(self) -> pulumi.Output[Optional[str]]:
919
+ """
920
+ Specifies a comment for the database.
921
+ """
922
+ return pulumi.get(self, "comment")
923
+
924
+ @property
925
+ @pulumi.getter(name="dataRetentionTimeInDays")
926
+ def data_retention_time_in_days(self) -> pulumi.Output[int]:
927
+ """
928
+ 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).
929
+ """
930
+ return pulumi.get(self, "data_retention_time_in_days")
931
+
932
+ @property
933
+ @pulumi.getter(name="defaultDdlCollation")
934
+ def default_ddl_collation(self) -> pulumi.Output[str]:
935
+ """
936
+ 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).
937
+ """
938
+ return pulumi.get(self, "default_ddl_collation")
939
+
940
+ @property
941
+ @pulumi.getter(name="enableConsoleOutput")
942
+ def enable_console_output(self) -> pulumi.Output[bool]:
943
+ """
944
+ If true, enables stdout/stderr fast path logging for anonymous stored procedures.
945
+ """
946
+ return pulumi.get(self, "enable_console_output")
947
+
948
+ @property
949
+ @pulumi.getter(name="externalVolume")
950
+ def external_volume(self) -> pulumi.Output[str]:
951
+ """
952
+ 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).
953
+ """
954
+ return pulumi.get(self, "external_volume")
955
+
956
+ @property
957
+ @pulumi.getter(name="isTransient")
958
+ def is_transient(self) -> pulumi.Output[Optional[bool]]:
959
+ """
960
+ 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.
961
+ """
962
+ return pulumi.get(self, "is_transient")
963
+
964
+ @property
965
+ @pulumi.getter(name="logLevel")
966
+ def log_level(self) -> pulumi.Output[str]:
967
+ """
968
+ 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).
969
+ """
970
+ return pulumi.get(self, "log_level")
971
+
972
+ @property
973
+ @pulumi.getter(name="maxDataExtensionTimeInDays")
974
+ def max_data_extension_time_in_days(self) -> pulumi.Output[int]:
975
+ """
976
+ 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
+ """
978
+ return pulumi.get(self, "max_data_extension_time_in_days")
979
+
980
+ @property
981
+ @pulumi.getter
982
+ def name(self) -> pulumi.Output[str]:
983
+ """
984
+ 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.
985
+ """
986
+ return pulumi.get(self, "name")
987
+
988
+ @property
989
+ @pulumi.getter(name="quotedIdentifiersIgnoreCase")
990
+ def quoted_identifiers_ignore_case(self) -> pulumi.Output[bool]:
991
+ """
992
+ 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).
993
+ """
994
+ return pulumi.get(self, "quoted_identifiers_ignore_case")
995
+
996
+ @property
997
+ @pulumi.getter(name="replaceInvalidCharacters")
998
+ def replace_invalid_characters(self) -> pulumi.Output[bool]:
999
+ """
1000
+ 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).
1001
+ """
1002
+ return pulumi.get(self, "replace_invalid_characters")
1003
+
1004
+ @property
1005
+ @pulumi.getter(name="storageSerializationPolicy")
1006
+ def storage_serialization_policy(self) -> pulumi.Output[str]:
1007
+ """
1008
+ 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).
1009
+ """
1010
+ return pulumi.get(self, "storage_serialization_policy")
1011
+
1012
+ @property
1013
+ @pulumi.getter(name="suspendTaskAfterNumFailures")
1014
+ def suspend_task_after_num_failures(self) -> pulumi.Output[int]:
1015
+ """
1016
+ 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).
1017
+ """
1018
+ return pulumi.get(self, "suspend_task_after_num_failures")
1019
+
1020
+ @property
1021
+ @pulumi.getter(name="taskAutoRetryAttempts")
1022
+ def task_auto_retry_attempts(self) -> pulumi.Output[int]:
1023
+ """
1024
+ 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).
1025
+ """
1026
+ return pulumi.get(self, "task_auto_retry_attempts")
1027
+
1028
+ @property
1029
+ @pulumi.getter(name="traceLevel")
1030
+ def trace_level(self) -> pulumi.Output[str]:
1031
+ """
1032
+ 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).
1033
+ """
1034
+ return pulumi.get(self, "trace_level")
1035
+
1036
+ @property
1037
+ @pulumi.getter(name="userTaskManagedInitialWarehouseSize")
1038
+ def user_task_managed_initial_warehouse_size(self) -> pulumi.Output[str]:
1039
+ """
1040
+ 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).
1041
+ """
1042
+ return pulumi.get(self, "user_task_managed_initial_warehouse_size")
1043
+
1044
+ @property
1045
+ @pulumi.getter(name="userTaskMinimumTriggerIntervalInSeconds")
1046
+ def user_task_minimum_trigger_interval_in_seconds(self) -> pulumi.Output[int]:
1047
+ """
1048
+ Minimum amount of time between Triggered Task executions in seconds.
1049
+ """
1050
+ return pulumi.get(self, "user_task_minimum_trigger_interval_in_seconds")
1051
+
1052
+ @property
1053
+ @pulumi.getter(name="userTaskTimeoutMs")
1054
+ def user_task_timeout_ms(self) -> pulumi.Output[int]:
1055
+ """
1056
+ 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).
1057
+ """
1058
+ return pulumi.get(self, "user_task_timeout_ms")
1059
+