pulumi-snowflake 0.58.0a1725948527__py3-none-any.whl → 0.58.0a1726066221__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pulumi-snowflake might be problematic. Click here for more details.

Files changed (80) hide show
  1. pulumi_snowflake/_inputs.py +5859 -127
  2. pulumi_snowflake/account.py +28 -50
  3. pulumi_snowflake/account_parameter.py +0 -28
  4. pulumi_snowflake/account_password_policy_attachment.py +2 -30
  5. pulumi_snowflake/account_role.py +41 -36
  6. pulumi_snowflake/alert.py +28 -40
  7. pulumi_snowflake/api_authentication_integration_with_authorization_code_grant.py +35 -15
  8. pulumi_snowflake/api_authentication_integration_with_client_credentials.py +35 -15
  9. pulumi_snowflake/api_authentication_integration_with_jwt_bearer.py +35 -15
  10. pulumi_snowflake/api_integration.py +28 -54
  11. pulumi_snowflake/cortex_search_service.py +28 -76
  12. pulumi_snowflake/database.py +82 -15
  13. pulumi_snowflake/database_old.py +0 -72
  14. pulumi_snowflake/database_role.py +76 -42
  15. pulumi_snowflake/dynamic_table.py +28 -38
  16. pulumi_snowflake/email_notification_integration.py +28 -26
  17. pulumi_snowflake/external_function.py +28 -52
  18. pulumi_snowflake/external_oauth_integration.py +35 -15
  19. pulumi_snowflake/external_table.py +28 -48
  20. pulumi_snowflake/failover_group.py +28 -72
  21. pulumi_snowflake/file_format.py +28 -26
  22. pulumi_snowflake/function.py +28 -4
  23. pulumi_snowflake/get_database_roles.py +61 -38
  24. pulumi_snowflake/get_users.py +96 -33
  25. pulumi_snowflake/get_views.py +92 -53
  26. pulumi_snowflake/grant_account_role.py +0 -4
  27. pulumi_snowflake/grant_application_role.py +0 -4
  28. pulumi_snowflake/grant_database_role.py +0 -4
  29. pulumi_snowflake/grant_privileges_to_account_role.py +4 -4
  30. pulumi_snowflake/grant_privileges_to_database_role.py +6 -2
  31. pulumi_snowflake/grant_privileges_to_share.py +49 -2
  32. pulumi_snowflake/managed_account.py +28 -4
  33. pulumi_snowflake/masking_policy.py +28 -84
  34. pulumi_snowflake/materialized_view.py +28 -34
  35. pulumi_snowflake/network_policy.py +35 -15
  36. pulumi_snowflake/network_policy_attachment.py +0 -30
  37. pulumi_snowflake/network_rule.py +28 -66
  38. pulumi_snowflake/notification_integration.py +28 -34
  39. pulumi_snowflake/oauth_integration.py +0 -34
  40. pulumi_snowflake/oauth_integration_for_custom_clients.py +35 -101
  41. pulumi_snowflake/oauth_integration_for_partner_applications.py +35 -15
  42. pulumi_snowflake/object_parameter.py +0 -98
  43. pulumi_snowflake/outputs.py +11648 -3842
  44. pulumi_snowflake/password_policy.py +28 -28
  45. pulumi_snowflake/pipe.py +28 -4
  46. pulumi_snowflake/procedure.py +28 -4
  47. pulumi_snowflake/pulumi-plugin.json +1 -1
  48. pulumi_snowflake/resource_monitor.py +28 -48
  49. pulumi_snowflake/role.py +41 -36
  50. pulumi_snowflake/row_access_policy.py +28 -34
  51. pulumi_snowflake/saml2_integration.py +35 -15
  52. pulumi_snowflake/saml_integration.py +0 -34
  53. pulumi_snowflake/schema.py +39 -19
  54. pulumi_snowflake/scim_integration.py +35 -15
  55. pulumi_snowflake/secondary_database.py +35 -19
  56. pulumi_snowflake/sequence.py +4 -36
  57. pulumi_snowflake/session_parameter.py +0 -32
  58. pulumi_snowflake/share.py +28 -28
  59. pulumi_snowflake/shared_database.py +35 -15
  60. pulumi_snowflake/stage.py +28 -28
  61. pulumi_snowflake/storage_integration.py +28 -4
  62. pulumi_snowflake/stream.py +28 -4
  63. pulumi_snowflake/streamlit.py +36 -16
  64. pulumi_snowflake/table.py +28 -32
  65. pulumi_snowflake/table_column_masking_policy_application.py +2 -14
  66. pulumi_snowflake/table_constraint.py +0 -152
  67. pulumi_snowflake/tag.py +28 -40
  68. pulumi_snowflake/tag_association.py +0 -120
  69. pulumi_snowflake/tag_masking_policy_association.py +0 -4
  70. pulumi_snowflake/task.py +28 -92
  71. pulumi_snowflake/unsafe_execute.py +2 -20
  72. pulumi_snowflake/user.py +3341 -368
  73. pulumi_snowflake/user_password_policy_attachment.py +0 -46
  74. pulumi_snowflake/view.py +465 -185
  75. pulumi_snowflake/warehouse.py +35 -39
  76. {pulumi_snowflake-0.58.0a1725948527.dist-info → pulumi_snowflake-0.58.0a1726066221.dist-info}/METADATA +1 -1
  77. pulumi_snowflake-0.58.0a1726066221.dist-info/RECORD +129 -0
  78. pulumi_snowflake-0.58.0a1725948527.dist-info/RECORD +0 -129
  79. {pulumi_snowflake-0.58.0a1725948527.dist-info → pulumi_snowflake-0.58.0a1726066221.dist-info}/WHEEL +0 -0
  80. {pulumi_snowflake-0.58.0a1725948527.dist-info → pulumi_snowflake-0.58.0a1726066221.dist-info}/top_level.txt +0 -0
pulumi_snowflake/view.py CHANGED
@@ -19,47 +19,67 @@ class ViewArgs:
19
19
  database: pulumi.Input[str],
20
20
  schema: pulumi.Input[str],
21
21
  statement: pulumi.Input[str],
22
+ aggregation_policy: Optional[pulumi.Input['ViewAggregationPolicyArgs']] = None,
23
+ change_tracking: Optional[pulumi.Input[str]] = None,
24
+ columns: Optional[pulumi.Input[Sequence[pulumi.Input['ViewColumnArgs']]]] = None,
22
25
  comment: Optional[pulumi.Input[str]] = None,
23
26
  copy_grants: Optional[pulumi.Input[bool]] = None,
24
- is_secure: Optional[pulumi.Input[bool]] = None,
27
+ data_metric_functions: Optional[pulumi.Input[Sequence[pulumi.Input['ViewDataMetricFunctionArgs']]]] = None,
28
+ data_metric_schedule: Optional[pulumi.Input['ViewDataMetricScheduleArgs']] = None,
29
+ is_recursive: Optional[pulumi.Input[str]] = None,
30
+ is_secure: Optional[pulumi.Input[str]] = None,
31
+ is_temporary: Optional[pulumi.Input[str]] = None,
25
32
  name: Optional[pulumi.Input[str]] = None,
26
- or_replace: Optional[pulumi.Input[bool]] = None,
27
- tags: Optional[pulumi.Input[Sequence[pulumi.Input['ViewTagArgs']]]] = None):
33
+ row_access_policy: Optional[pulumi.Input['ViewRowAccessPolicyArgs']] = None):
28
34
  """
29
35
  The set of arguments for constructing a View resource.
30
- :param pulumi.Input[str] database: The database in which to create the view. Don't use the | character.
31
- :param pulumi.Input[str] schema: The schema in which to create the view. Don't use the | character.
36
+ :param pulumi.Input[str] database: The database in which to create the view. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `(`, `)`, `"`
37
+ :param pulumi.Input[str] schema: The schema in which to create the view. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `(`, `)`, `"`
32
38
  :param pulumi.Input[str] statement: Specifies the query used to create the view.
39
+ :param pulumi.Input['ViewAggregationPolicyArgs'] aggregation_policy: Specifies the aggregation policy to set on a view.
40
+ :param pulumi.Input[str] change_tracking: Specifies to enable or disable change tracking on the table. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
41
+ :param pulumi.Input[Sequence[pulumi.Input['ViewColumnArgs']]] columns: If you want to change the name of a column or add a comment to a column in the new view, include a column list that specifies the column names and (if needed) comments about the columns. (You do not need to specify the data types of the columns.)
33
42
  :param pulumi.Input[str] comment: Specifies a comment for the view.
34
- :param pulumi.Input[bool] copy_grants: Retains the access permissions from the original view when a new view is created using the OR REPLACE clause. OR REPLACE must be set when COPY GRANTS is set.
35
- :param pulumi.Input[str] name: Specifies the identifier for the view; must be unique for the schema in which the view is created. Don't use the | character.
36
- :param pulumi.Input[bool] or_replace: Overwrites the View if it exists.
37
- :param pulumi.Input[Sequence[pulumi.Input['ViewTagArgs']]] tags: Definitions of a tag to associate with the resource.
43
+ :param pulumi.Input[bool] copy_grants: Retains the access permissions from the original view when a new view is created using the OR REPLACE clause.
44
+ :param pulumi.Input[Sequence[pulumi.Input['ViewDataMetricFunctionArgs']]] data_metric_functions: Data metric functions used for the view.
45
+ :param pulumi.Input['ViewDataMetricScheduleArgs'] data_metric_schedule: Specifies the schedule to run the data metric functions periodically.
46
+ :param pulumi.Input[str] is_recursive: Specifies that the view can refer to itself using recursive syntax without necessarily using a CTE (common table expression). Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
47
+ :param pulumi.Input[str] name: Specifies the identifier for the view; must be unique for the schema in which the view is created. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `(`, `)`, `"`
48
+ :param pulumi.Input['ViewRowAccessPolicyArgs'] row_access_policy: Specifies the row access policy to set on a view.
38
49
  """
39
50
  pulumi.set(__self__, "database", database)
40
51
  pulumi.set(__self__, "schema", schema)
41
52
  pulumi.set(__self__, "statement", statement)
53
+ if aggregation_policy is not None:
54
+ pulumi.set(__self__, "aggregation_policy", aggregation_policy)
55
+ if change_tracking is not None:
56
+ pulumi.set(__self__, "change_tracking", change_tracking)
57
+ if columns is not None:
58
+ pulumi.set(__self__, "columns", columns)
42
59
  if comment is not None:
43
60
  pulumi.set(__self__, "comment", comment)
44
61
  if copy_grants is not None:
45
62
  pulumi.set(__self__, "copy_grants", copy_grants)
63
+ if data_metric_functions is not None:
64
+ pulumi.set(__self__, "data_metric_functions", data_metric_functions)
65
+ if data_metric_schedule is not None:
66
+ pulumi.set(__self__, "data_metric_schedule", data_metric_schedule)
67
+ if is_recursive is not None:
68
+ pulumi.set(__self__, "is_recursive", is_recursive)
46
69
  if is_secure is not None:
47
70
  pulumi.set(__self__, "is_secure", is_secure)
71
+ if is_temporary is not None:
72
+ pulumi.set(__self__, "is_temporary", is_temporary)
48
73
  if name is not None:
49
74
  pulumi.set(__self__, "name", name)
50
- if or_replace is not None:
51
- pulumi.set(__self__, "or_replace", or_replace)
52
- if tags is not None:
53
- warnings.warn("""Use the 'snowflake_tag_association' resource instead.""", DeprecationWarning)
54
- pulumi.log.warn("""tags is deprecated: Use the 'snowflake_tag_association' resource instead.""")
55
- if tags is not None:
56
- pulumi.set(__self__, "tags", tags)
75
+ if row_access_policy is not None:
76
+ pulumi.set(__self__, "row_access_policy", row_access_policy)
57
77
 
58
78
  @property
59
79
  @pulumi.getter
60
80
  def database(self) -> pulumi.Input[str]:
61
81
  """
62
- The database in which to create the view. Don't use the | character.
82
+ The database in which to create the view. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `(`, `)`, `"`
63
83
  """
64
84
  return pulumi.get(self, "database")
65
85
 
@@ -71,7 +91,7 @@ class ViewArgs:
71
91
  @pulumi.getter
72
92
  def schema(self) -> pulumi.Input[str]:
73
93
  """
74
- The schema in which to create the view. Don't use the | character.
94
+ The schema in which to create the view. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `(`, `)`, `"`
75
95
  """
76
96
  return pulumi.get(self, "schema")
77
97
 
@@ -91,6 +111,42 @@ class ViewArgs:
91
111
  def statement(self, value: pulumi.Input[str]):
92
112
  pulumi.set(self, "statement", value)
93
113
 
114
+ @property
115
+ @pulumi.getter(name="aggregationPolicy")
116
+ def aggregation_policy(self) -> Optional[pulumi.Input['ViewAggregationPolicyArgs']]:
117
+ """
118
+ Specifies the aggregation policy to set on a view.
119
+ """
120
+ return pulumi.get(self, "aggregation_policy")
121
+
122
+ @aggregation_policy.setter
123
+ def aggregation_policy(self, value: Optional[pulumi.Input['ViewAggregationPolicyArgs']]):
124
+ pulumi.set(self, "aggregation_policy", value)
125
+
126
+ @property
127
+ @pulumi.getter(name="changeTracking")
128
+ def change_tracking(self) -> Optional[pulumi.Input[str]]:
129
+ """
130
+ Specifies to enable or disable change tracking on the table. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
131
+ """
132
+ return pulumi.get(self, "change_tracking")
133
+
134
+ @change_tracking.setter
135
+ def change_tracking(self, value: Optional[pulumi.Input[str]]):
136
+ pulumi.set(self, "change_tracking", value)
137
+
138
+ @property
139
+ @pulumi.getter
140
+ def columns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ViewColumnArgs']]]]:
141
+ """
142
+ If you want to change the name of a column or add a comment to a column in the new view, include a column list that specifies the column names and (if needed) comments about the columns. (You do not need to specify the data types of the columns.)
143
+ """
144
+ return pulumi.get(self, "columns")
145
+
146
+ @columns.setter
147
+ def columns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ViewColumnArgs']]]]):
148
+ pulumi.set(self, "columns", value)
149
+
94
150
  @property
95
151
  @pulumi.getter
96
152
  def comment(self) -> Optional[pulumi.Input[str]]:
@@ -107,7 +163,7 @@ class ViewArgs:
107
163
  @pulumi.getter(name="copyGrants")
108
164
  def copy_grants(self) -> Optional[pulumi.Input[bool]]:
109
165
  """
110
- Retains the access permissions from the original view when a new view is created using the OR REPLACE clause. OR REPLACE must be set when COPY GRANTS is set.
166
+ Retains the access permissions from the original view when a new view is created using the OR REPLACE clause.
111
167
  """
112
168
  return pulumi.get(self, "copy_grants")
113
169
 
@@ -115,20 +171,65 @@ class ViewArgs:
115
171
  def copy_grants(self, value: Optional[pulumi.Input[bool]]):
116
172
  pulumi.set(self, "copy_grants", value)
117
173
 
174
+ @property
175
+ @pulumi.getter(name="dataMetricFunctions")
176
+ def data_metric_functions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ViewDataMetricFunctionArgs']]]]:
177
+ """
178
+ Data metric functions used for the view.
179
+ """
180
+ return pulumi.get(self, "data_metric_functions")
181
+
182
+ @data_metric_functions.setter
183
+ def data_metric_functions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ViewDataMetricFunctionArgs']]]]):
184
+ pulumi.set(self, "data_metric_functions", value)
185
+
186
+ @property
187
+ @pulumi.getter(name="dataMetricSchedule")
188
+ def data_metric_schedule(self) -> Optional[pulumi.Input['ViewDataMetricScheduleArgs']]:
189
+ """
190
+ Specifies the schedule to run the data metric functions periodically.
191
+ """
192
+ return pulumi.get(self, "data_metric_schedule")
193
+
194
+ @data_metric_schedule.setter
195
+ def data_metric_schedule(self, value: Optional[pulumi.Input['ViewDataMetricScheduleArgs']]):
196
+ pulumi.set(self, "data_metric_schedule", value)
197
+
198
+ @property
199
+ @pulumi.getter(name="isRecursive")
200
+ def is_recursive(self) -> Optional[pulumi.Input[str]]:
201
+ """
202
+ Specifies that the view can refer to itself using recursive syntax without necessarily using a CTE (common table expression). Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
203
+ """
204
+ return pulumi.get(self, "is_recursive")
205
+
206
+ @is_recursive.setter
207
+ def is_recursive(self, value: Optional[pulumi.Input[str]]):
208
+ pulumi.set(self, "is_recursive", value)
209
+
118
210
  @property
119
211
  @pulumi.getter(name="isSecure")
120
- def is_secure(self) -> Optional[pulumi.Input[bool]]:
212
+ def is_secure(self) -> Optional[pulumi.Input[str]]:
121
213
  return pulumi.get(self, "is_secure")
122
214
 
123
215
  @is_secure.setter
124
- def is_secure(self, value: Optional[pulumi.Input[bool]]):
216
+ def is_secure(self, value: Optional[pulumi.Input[str]]):
125
217
  pulumi.set(self, "is_secure", value)
126
218
 
219
+ @property
220
+ @pulumi.getter(name="isTemporary")
221
+ def is_temporary(self) -> Optional[pulumi.Input[str]]:
222
+ return pulumi.get(self, "is_temporary")
223
+
224
+ @is_temporary.setter
225
+ def is_temporary(self, value: Optional[pulumi.Input[str]]):
226
+ pulumi.set(self, "is_temporary", value)
227
+
127
228
  @property
128
229
  @pulumi.getter
129
230
  def name(self) -> Optional[pulumi.Input[str]]:
130
231
  """
131
- Specifies the identifier for the view; must be unique for the schema in which the view is created. Don't use the | character.
232
+ Specifies the identifier for the view; must be unique for the schema in which the view is created. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `(`, `)`, `"`
132
233
  """
133
234
  return pulumi.get(self, "name")
134
235
 
@@ -137,79 +238,130 @@ class ViewArgs:
137
238
  pulumi.set(self, "name", value)
138
239
 
139
240
  @property
140
- @pulumi.getter(name="orReplace")
141
- def or_replace(self) -> Optional[pulumi.Input[bool]]:
142
- """
143
- Overwrites the View if it exists.
144
- """
145
- return pulumi.get(self, "or_replace")
146
-
147
- @or_replace.setter
148
- def or_replace(self, value: Optional[pulumi.Input[bool]]):
149
- pulumi.set(self, "or_replace", value)
150
-
151
- @property
152
- @pulumi.getter
153
- @_utilities.deprecated("""Use the 'snowflake_tag_association' resource instead.""")
154
- def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ViewTagArgs']]]]:
241
+ @pulumi.getter(name="rowAccessPolicy")
242
+ def row_access_policy(self) -> Optional[pulumi.Input['ViewRowAccessPolicyArgs']]:
155
243
  """
156
- Definitions of a tag to associate with the resource.
244
+ Specifies the row access policy to set on a view.
157
245
  """
158
- return pulumi.get(self, "tags")
246
+ return pulumi.get(self, "row_access_policy")
159
247
 
160
- @tags.setter
161
- def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ViewTagArgs']]]]):
162
- pulumi.set(self, "tags", value)
248
+ @row_access_policy.setter
249
+ def row_access_policy(self, value: Optional[pulumi.Input['ViewRowAccessPolicyArgs']]):
250
+ pulumi.set(self, "row_access_policy", value)
163
251
 
164
252
 
165
253
  @pulumi.input_type
166
254
  class _ViewState:
167
255
  def __init__(__self__, *,
256
+ aggregation_policy: Optional[pulumi.Input['ViewAggregationPolicyArgs']] = None,
257
+ change_tracking: Optional[pulumi.Input[str]] = None,
258
+ columns: Optional[pulumi.Input[Sequence[pulumi.Input['ViewColumnArgs']]]] = None,
168
259
  comment: Optional[pulumi.Input[str]] = None,
169
260
  copy_grants: Optional[pulumi.Input[bool]] = None,
170
- created_on: Optional[pulumi.Input[str]] = None,
261
+ data_metric_functions: Optional[pulumi.Input[Sequence[pulumi.Input['ViewDataMetricFunctionArgs']]]] = None,
262
+ data_metric_schedule: Optional[pulumi.Input['ViewDataMetricScheduleArgs']] = None,
171
263
  database: Optional[pulumi.Input[str]] = None,
172
- is_secure: Optional[pulumi.Input[bool]] = None,
264
+ describe_outputs: Optional[pulumi.Input[Sequence[pulumi.Input['ViewDescribeOutputArgs']]]] = None,
265
+ fully_qualified_name: Optional[pulumi.Input[str]] = None,
266
+ is_recursive: Optional[pulumi.Input[str]] = None,
267
+ is_secure: Optional[pulumi.Input[str]] = None,
268
+ is_temporary: Optional[pulumi.Input[str]] = None,
173
269
  name: Optional[pulumi.Input[str]] = None,
174
- or_replace: Optional[pulumi.Input[bool]] = None,
270
+ row_access_policy: Optional[pulumi.Input['ViewRowAccessPolicyArgs']] = None,
175
271
  schema: Optional[pulumi.Input[str]] = None,
176
- statement: Optional[pulumi.Input[str]] = None,
177
- tags: Optional[pulumi.Input[Sequence[pulumi.Input['ViewTagArgs']]]] = None):
272
+ show_outputs: Optional[pulumi.Input[Sequence[pulumi.Input['ViewShowOutputArgs']]]] = None,
273
+ statement: Optional[pulumi.Input[str]] = None):
178
274
  """
179
275
  Input properties used for looking up and filtering View resources.
276
+ :param pulumi.Input['ViewAggregationPolicyArgs'] aggregation_policy: Specifies the aggregation policy to set on a view.
277
+ :param pulumi.Input[str] change_tracking: Specifies to enable or disable change tracking on the table. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
278
+ :param pulumi.Input[Sequence[pulumi.Input['ViewColumnArgs']]] columns: If you want to change the name of a column or add a comment to a column in the new view, include a column list that specifies the column names and (if needed) comments about the columns. (You do not need to specify the data types of the columns.)
180
279
  :param pulumi.Input[str] comment: Specifies a comment for the view.
181
- :param pulumi.Input[bool] copy_grants: Retains the access permissions from the original view when a new view is created using the OR REPLACE clause. OR REPLACE must be set when COPY GRANTS is set.
182
- :param pulumi.Input[str] created_on: The timestamp at which the view was created.
183
- :param pulumi.Input[str] database: The database in which to create the view. Don't use the | character.
184
- :param pulumi.Input[str] name: Specifies the identifier for the view; must be unique for the schema in which the view is created. Don't use the | character.
185
- :param pulumi.Input[bool] or_replace: Overwrites the View if it exists.
186
- :param pulumi.Input[str] schema: The schema in which to create the view. Don't use the | character.
280
+ :param pulumi.Input[bool] copy_grants: Retains the access permissions from the original view when a new view is created using the OR REPLACE clause.
281
+ :param pulumi.Input[Sequence[pulumi.Input['ViewDataMetricFunctionArgs']]] data_metric_functions: Data metric functions used for the view.
282
+ :param pulumi.Input['ViewDataMetricScheduleArgs'] data_metric_schedule: Specifies the schedule to run the data metric functions periodically.
283
+ :param pulumi.Input[str] database: The database in which to create the view. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `(`, `)`, `"`
284
+ :param pulumi.Input[Sequence[pulumi.Input['ViewDescribeOutputArgs']]] describe_outputs: Outputs the result of `DESCRIBE VIEW` for the given view.
285
+ :param pulumi.Input[str] fully_qualified_name: Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
286
+ :param pulumi.Input[str] is_recursive: Specifies that the view can refer to itself using recursive syntax without necessarily using a CTE (common table expression). Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
287
+ :param pulumi.Input[str] name: Specifies the identifier for the view; must be unique for the schema in which the view is created. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `(`, `)`, `"`
288
+ :param pulumi.Input['ViewRowAccessPolicyArgs'] row_access_policy: Specifies the row access policy to set on a view.
289
+ :param pulumi.Input[str] schema: The schema in which to create the view. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `(`, `)`, `"`
290
+ :param pulumi.Input[Sequence[pulumi.Input['ViewShowOutputArgs']]] show_outputs: Outputs the result of `SHOW VIEW` for the given view.
187
291
  :param pulumi.Input[str] statement: Specifies the query used to create the view.
188
- :param pulumi.Input[Sequence[pulumi.Input['ViewTagArgs']]] tags: Definitions of a tag to associate with the resource.
189
292
  """
293
+ if aggregation_policy is not None:
294
+ pulumi.set(__self__, "aggregation_policy", aggregation_policy)
295
+ if change_tracking is not None:
296
+ pulumi.set(__self__, "change_tracking", change_tracking)
297
+ if columns is not None:
298
+ pulumi.set(__self__, "columns", columns)
190
299
  if comment is not None:
191
300
  pulumi.set(__self__, "comment", comment)
192
301
  if copy_grants is not None:
193
302
  pulumi.set(__self__, "copy_grants", copy_grants)
194
- if created_on is not None:
195
- pulumi.set(__self__, "created_on", created_on)
303
+ if data_metric_functions is not None:
304
+ pulumi.set(__self__, "data_metric_functions", data_metric_functions)
305
+ if data_metric_schedule is not None:
306
+ pulumi.set(__self__, "data_metric_schedule", data_metric_schedule)
196
307
  if database is not None:
197
308
  pulumi.set(__self__, "database", database)
309
+ if describe_outputs is not None:
310
+ pulumi.set(__self__, "describe_outputs", describe_outputs)
311
+ if fully_qualified_name is not None:
312
+ pulumi.set(__self__, "fully_qualified_name", fully_qualified_name)
313
+ if is_recursive is not None:
314
+ pulumi.set(__self__, "is_recursive", is_recursive)
198
315
  if is_secure is not None:
199
316
  pulumi.set(__self__, "is_secure", is_secure)
317
+ if is_temporary is not None:
318
+ pulumi.set(__self__, "is_temporary", is_temporary)
200
319
  if name is not None:
201
320
  pulumi.set(__self__, "name", name)
202
- if or_replace is not None:
203
- pulumi.set(__self__, "or_replace", or_replace)
321
+ if row_access_policy is not None:
322
+ pulumi.set(__self__, "row_access_policy", row_access_policy)
204
323
  if schema is not None:
205
324
  pulumi.set(__self__, "schema", schema)
325
+ if show_outputs is not None:
326
+ pulumi.set(__self__, "show_outputs", show_outputs)
206
327
  if statement is not None:
207
328
  pulumi.set(__self__, "statement", statement)
208
- if tags is not None:
209
- warnings.warn("""Use the 'snowflake_tag_association' resource instead.""", DeprecationWarning)
210
- pulumi.log.warn("""tags is deprecated: Use the 'snowflake_tag_association' resource instead.""")
211
- if tags is not None:
212
- pulumi.set(__self__, "tags", tags)
329
+
330
+ @property
331
+ @pulumi.getter(name="aggregationPolicy")
332
+ def aggregation_policy(self) -> Optional[pulumi.Input['ViewAggregationPolicyArgs']]:
333
+ """
334
+ Specifies the aggregation policy to set on a view.
335
+ """
336
+ return pulumi.get(self, "aggregation_policy")
337
+
338
+ @aggregation_policy.setter
339
+ def aggregation_policy(self, value: Optional[pulumi.Input['ViewAggregationPolicyArgs']]):
340
+ pulumi.set(self, "aggregation_policy", value)
341
+
342
+ @property
343
+ @pulumi.getter(name="changeTracking")
344
+ def change_tracking(self) -> Optional[pulumi.Input[str]]:
345
+ """
346
+ Specifies to enable or disable change tracking on the table. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
347
+ """
348
+ return pulumi.get(self, "change_tracking")
349
+
350
+ @change_tracking.setter
351
+ def change_tracking(self, value: Optional[pulumi.Input[str]]):
352
+ pulumi.set(self, "change_tracking", value)
353
+
354
+ @property
355
+ @pulumi.getter
356
+ def columns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ViewColumnArgs']]]]:
357
+ """
358
+ If you want to change the name of a column or add a comment to a column in the new view, include a column list that specifies the column names and (if needed) comments about the columns. (You do not need to specify the data types of the columns.)
359
+ """
360
+ return pulumi.get(self, "columns")
361
+
362
+ @columns.setter
363
+ def columns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ViewColumnArgs']]]]):
364
+ pulumi.set(self, "columns", value)
213
365
 
214
366
  @property
215
367
  @pulumi.getter
@@ -227,7 +379,7 @@ class _ViewState:
227
379
  @pulumi.getter(name="copyGrants")
228
380
  def copy_grants(self) -> Optional[pulumi.Input[bool]]:
229
381
  """
230
- Retains the access permissions from the original view when a new view is created using the OR REPLACE clause. OR REPLACE must be set when COPY GRANTS is set.
382
+ Retains the access permissions from the original view when a new view is created using the OR REPLACE clause.
231
383
  """
232
384
  return pulumi.get(self, "copy_grants")
233
385
 
@@ -236,22 +388,34 @@ class _ViewState:
236
388
  pulumi.set(self, "copy_grants", value)
237
389
 
238
390
  @property
239
- @pulumi.getter(name="createdOn")
240
- def created_on(self) -> Optional[pulumi.Input[str]]:
391
+ @pulumi.getter(name="dataMetricFunctions")
392
+ def data_metric_functions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ViewDataMetricFunctionArgs']]]]:
393
+ """
394
+ Data metric functions used for the view.
395
+ """
396
+ return pulumi.get(self, "data_metric_functions")
397
+
398
+ @data_metric_functions.setter
399
+ def data_metric_functions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ViewDataMetricFunctionArgs']]]]):
400
+ pulumi.set(self, "data_metric_functions", value)
401
+
402
+ @property
403
+ @pulumi.getter(name="dataMetricSchedule")
404
+ def data_metric_schedule(self) -> Optional[pulumi.Input['ViewDataMetricScheduleArgs']]:
241
405
  """
242
- The timestamp at which the view was created.
406
+ Specifies the schedule to run the data metric functions periodically.
243
407
  """
244
- return pulumi.get(self, "created_on")
408
+ return pulumi.get(self, "data_metric_schedule")
245
409
 
246
- @created_on.setter
247
- def created_on(self, value: Optional[pulumi.Input[str]]):
248
- pulumi.set(self, "created_on", value)
410
+ @data_metric_schedule.setter
411
+ def data_metric_schedule(self, value: Optional[pulumi.Input['ViewDataMetricScheduleArgs']]):
412
+ pulumi.set(self, "data_metric_schedule", value)
249
413
 
250
414
  @property
251
415
  @pulumi.getter
252
416
  def database(self) -> Optional[pulumi.Input[str]]:
253
417
  """
254
- The database in which to create the view. Don't use the | character.
418
+ The database in which to create the view. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `(`, `)`, `"`
255
419
  """
256
420
  return pulumi.get(self, "database")
257
421
 
@@ -259,20 +423,65 @@ class _ViewState:
259
423
  def database(self, value: Optional[pulumi.Input[str]]):
260
424
  pulumi.set(self, "database", value)
261
425
 
426
+ @property
427
+ @pulumi.getter(name="describeOutputs")
428
+ def describe_outputs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ViewDescribeOutputArgs']]]]:
429
+ """
430
+ Outputs the result of `DESCRIBE VIEW` for the given view.
431
+ """
432
+ return pulumi.get(self, "describe_outputs")
433
+
434
+ @describe_outputs.setter
435
+ def describe_outputs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ViewDescribeOutputArgs']]]]):
436
+ pulumi.set(self, "describe_outputs", value)
437
+
438
+ @property
439
+ @pulumi.getter(name="fullyQualifiedName")
440
+ def fully_qualified_name(self) -> Optional[pulumi.Input[str]]:
441
+ """
442
+ Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
443
+ """
444
+ return pulumi.get(self, "fully_qualified_name")
445
+
446
+ @fully_qualified_name.setter
447
+ def fully_qualified_name(self, value: Optional[pulumi.Input[str]]):
448
+ pulumi.set(self, "fully_qualified_name", value)
449
+
450
+ @property
451
+ @pulumi.getter(name="isRecursive")
452
+ def is_recursive(self) -> Optional[pulumi.Input[str]]:
453
+ """
454
+ Specifies that the view can refer to itself using recursive syntax without necessarily using a CTE (common table expression). Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
455
+ """
456
+ return pulumi.get(self, "is_recursive")
457
+
458
+ @is_recursive.setter
459
+ def is_recursive(self, value: Optional[pulumi.Input[str]]):
460
+ pulumi.set(self, "is_recursive", value)
461
+
262
462
  @property
263
463
  @pulumi.getter(name="isSecure")
264
- def is_secure(self) -> Optional[pulumi.Input[bool]]:
464
+ def is_secure(self) -> Optional[pulumi.Input[str]]:
265
465
  return pulumi.get(self, "is_secure")
266
466
 
267
467
  @is_secure.setter
268
- def is_secure(self, value: Optional[pulumi.Input[bool]]):
468
+ def is_secure(self, value: Optional[pulumi.Input[str]]):
269
469
  pulumi.set(self, "is_secure", value)
270
470
 
471
+ @property
472
+ @pulumi.getter(name="isTemporary")
473
+ def is_temporary(self) -> Optional[pulumi.Input[str]]:
474
+ return pulumi.get(self, "is_temporary")
475
+
476
+ @is_temporary.setter
477
+ def is_temporary(self, value: Optional[pulumi.Input[str]]):
478
+ pulumi.set(self, "is_temporary", value)
479
+
271
480
  @property
272
481
  @pulumi.getter
273
482
  def name(self) -> Optional[pulumi.Input[str]]:
274
483
  """
275
- Specifies the identifier for the view; must be unique for the schema in which the view is created. Don't use the | character.
484
+ Specifies the identifier for the view; must be unique for the schema in which the view is created. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `(`, `)`, `"`
276
485
  """
277
486
  return pulumi.get(self, "name")
278
487
 
@@ -281,22 +490,22 @@ class _ViewState:
281
490
  pulumi.set(self, "name", value)
282
491
 
283
492
  @property
284
- @pulumi.getter(name="orReplace")
285
- def or_replace(self) -> Optional[pulumi.Input[bool]]:
493
+ @pulumi.getter(name="rowAccessPolicy")
494
+ def row_access_policy(self) -> Optional[pulumi.Input['ViewRowAccessPolicyArgs']]:
286
495
  """
287
- Overwrites the View if it exists.
496
+ Specifies the row access policy to set on a view.
288
497
  """
289
- return pulumi.get(self, "or_replace")
498
+ return pulumi.get(self, "row_access_policy")
290
499
 
291
- @or_replace.setter
292
- def or_replace(self, value: Optional[pulumi.Input[bool]]):
293
- pulumi.set(self, "or_replace", value)
500
+ @row_access_policy.setter
501
+ def row_access_policy(self, value: Optional[pulumi.Input['ViewRowAccessPolicyArgs']]):
502
+ pulumi.set(self, "row_access_policy", value)
294
503
 
295
504
  @property
296
505
  @pulumi.getter
297
506
  def schema(self) -> Optional[pulumi.Input[str]]:
298
507
  """
299
- The schema in which to create the view. Don't use the | character.
508
+ The schema in which to create the view. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `(`, `)`, `"`
300
509
  """
301
510
  return pulumi.get(self, "schema")
302
511
 
@@ -304,6 +513,18 @@ class _ViewState:
304
513
  def schema(self, value: Optional[pulumi.Input[str]]):
305
514
  pulumi.set(self, "schema", value)
306
515
 
516
+ @property
517
+ @pulumi.getter(name="showOutputs")
518
+ def show_outputs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ViewShowOutputArgs']]]]:
519
+ """
520
+ Outputs the result of `SHOW VIEW` for the given view.
521
+ """
522
+ return pulumi.get(self, "show_outputs")
523
+
524
+ @show_outputs.setter
525
+ def show_outputs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ViewShowOutputArgs']]]]):
526
+ pulumi.set(self, "show_outputs", value)
527
+
307
528
  @property
308
529
  @pulumi.getter
309
530
  def statement(self) -> Optional[pulumi.Input[str]]:
@@ -316,70 +537,50 @@ class _ViewState:
316
537
  def statement(self, value: Optional[pulumi.Input[str]]):
317
538
  pulumi.set(self, "statement", value)
318
539
 
319
- @property
320
- @pulumi.getter
321
- @_utilities.deprecated("""Use the 'snowflake_tag_association' resource instead.""")
322
- def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ViewTagArgs']]]]:
323
- """
324
- Definitions of a tag to associate with the resource.
325
- """
326
- return pulumi.get(self, "tags")
327
-
328
- @tags.setter
329
- def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ViewTagArgs']]]]):
330
- pulumi.set(self, "tags", value)
331
-
332
540
 
333
541
  class View(pulumi.CustomResource):
334
542
  @overload
335
543
  def __init__(__self__,
336
544
  resource_name: str,
337
545
  opts: Optional[pulumi.ResourceOptions] = None,
546
+ aggregation_policy: Optional[pulumi.Input[Union['ViewAggregationPolicyArgs', 'ViewAggregationPolicyArgsDict']]] = None,
547
+ change_tracking: Optional[pulumi.Input[str]] = None,
548
+ columns: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ViewColumnArgs', 'ViewColumnArgsDict']]]]] = None,
338
549
  comment: Optional[pulumi.Input[str]] = None,
339
550
  copy_grants: Optional[pulumi.Input[bool]] = None,
551
+ data_metric_functions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ViewDataMetricFunctionArgs', 'ViewDataMetricFunctionArgsDict']]]]] = None,
552
+ data_metric_schedule: Optional[pulumi.Input[Union['ViewDataMetricScheduleArgs', 'ViewDataMetricScheduleArgsDict']]] = None,
340
553
  database: Optional[pulumi.Input[str]] = None,
341
- is_secure: Optional[pulumi.Input[bool]] = None,
554
+ is_recursive: Optional[pulumi.Input[str]] = None,
555
+ is_secure: Optional[pulumi.Input[str]] = None,
556
+ is_temporary: Optional[pulumi.Input[str]] = None,
342
557
  name: Optional[pulumi.Input[str]] = None,
343
- or_replace: Optional[pulumi.Input[bool]] = None,
558
+ row_access_policy: Optional[pulumi.Input[Union['ViewRowAccessPolicyArgs', 'ViewRowAccessPolicyArgsDict']]] = None,
344
559
  schema: Optional[pulumi.Input[str]] = None,
345
560
  statement: Optional[pulumi.Input[str]] = None,
346
- tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ViewTagArgs', 'ViewTagArgsDict']]]]] = None,
347
561
  __props__=None):
348
562
  """
349
- ## Example Usage
350
-
351
- ```python
352
- import pulumi
353
- import pulumi_snowflake as snowflake
354
-
355
- view = snowflake.View("view",
356
- database="database",
357
- schema="schema",
358
- name="view",
359
- comment="comment",
360
- statement="select * from foo;\\n",
361
- or_replace=False,
362
- is_secure=False)
363
- ```
364
-
365
563
  ## Import
366
564
 
367
- format is database name | schema name | view name
368
-
369
565
  ```sh
370
- $ pulumi import snowflake:index/view:View example 'dbName|schemaName|viewName'
566
+ $ pulumi import snowflake:index/view:View example '"<database_name>"."<schema_name>"."<view_name>"'
371
567
  ```
372
568
 
373
569
  :param str resource_name: The name of the resource.
374
570
  :param pulumi.ResourceOptions opts: Options for the resource.
571
+ :param pulumi.Input[Union['ViewAggregationPolicyArgs', 'ViewAggregationPolicyArgsDict']] aggregation_policy: Specifies the aggregation policy to set on a view.
572
+ :param pulumi.Input[str] change_tracking: Specifies to enable or disable change tracking on the table. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
573
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ViewColumnArgs', 'ViewColumnArgsDict']]]] columns: If you want to change the name of a column or add a comment to a column in the new view, include a column list that specifies the column names and (if needed) comments about the columns. (You do not need to specify the data types of the columns.)
375
574
  :param pulumi.Input[str] comment: Specifies a comment for the view.
376
- :param pulumi.Input[bool] copy_grants: Retains the access permissions from the original view when a new view is created using the OR REPLACE clause. OR REPLACE must be set when COPY GRANTS is set.
377
- :param pulumi.Input[str] database: The database in which to create the view. Don't use the | character.
378
- :param pulumi.Input[str] name: Specifies the identifier for the view; must be unique for the schema in which the view is created. Don't use the | character.
379
- :param pulumi.Input[bool] or_replace: Overwrites the View if it exists.
380
- :param pulumi.Input[str] schema: The schema in which to create the view. Don't use the | character.
575
+ :param pulumi.Input[bool] copy_grants: Retains the access permissions from the original view when a new view is created using the OR REPLACE clause.
576
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ViewDataMetricFunctionArgs', 'ViewDataMetricFunctionArgsDict']]]] data_metric_functions: Data metric functions used for the view.
577
+ :param pulumi.Input[Union['ViewDataMetricScheduleArgs', 'ViewDataMetricScheduleArgsDict']] data_metric_schedule: Specifies the schedule to run the data metric functions periodically.
578
+ :param pulumi.Input[str] database: The database in which to create the view. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `(`, `)`, `"`
579
+ :param pulumi.Input[str] is_recursive: Specifies that the view can refer to itself using recursive syntax without necessarily using a CTE (common table expression). Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
580
+ :param pulumi.Input[str] name: Specifies the identifier for the view; must be unique for the schema in which the view is created. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `(`, `)`, `"`
581
+ :param pulumi.Input[Union['ViewRowAccessPolicyArgs', 'ViewRowAccessPolicyArgsDict']] row_access_policy: Specifies the row access policy to set on a view.
582
+ :param pulumi.Input[str] schema: The schema in which to create the view. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `(`, `)`, `"`
381
583
  :param pulumi.Input[str] statement: Specifies the query used to create the view.
382
- :param pulumi.Input[Sequence[pulumi.Input[Union['ViewTagArgs', 'ViewTagArgsDict']]]] tags: Definitions of a tag to associate with the resource.
383
584
  """
384
585
  ...
385
586
  @overload
@@ -388,28 +589,10 @@ class View(pulumi.CustomResource):
388
589
  args: ViewArgs,
389
590
  opts: Optional[pulumi.ResourceOptions] = None):
390
591
  """
391
- ## Example Usage
392
-
393
- ```python
394
- import pulumi
395
- import pulumi_snowflake as snowflake
396
-
397
- view = snowflake.View("view",
398
- database="database",
399
- schema="schema",
400
- name="view",
401
- comment="comment",
402
- statement="select * from foo;\\n",
403
- or_replace=False,
404
- is_secure=False)
405
- ```
406
-
407
592
  ## Import
408
593
 
409
- format is database name | schema name | view name
410
-
411
594
  ```sh
412
- $ pulumi import snowflake:index/view:View example 'dbName|schemaName|viewName'
595
+ $ pulumi import snowflake:index/view:View example '"<database_name>"."<schema_name>"."<view_name>"'
413
596
  ```
414
597
 
415
598
  :param str resource_name: The name of the resource.
@@ -427,15 +610,21 @@ class View(pulumi.CustomResource):
427
610
  def _internal_init(__self__,
428
611
  resource_name: str,
429
612
  opts: Optional[pulumi.ResourceOptions] = None,
613
+ aggregation_policy: Optional[pulumi.Input[Union['ViewAggregationPolicyArgs', 'ViewAggregationPolicyArgsDict']]] = None,
614
+ change_tracking: Optional[pulumi.Input[str]] = None,
615
+ columns: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ViewColumnArgs', 'ViewColumnArgsDict']]]]] = None,
430
616
  comment: Optional[pulumi.Input[str]] = None,
431
617
  copy_grants: Optional[pulumi.Input[bool]] = None,
618
+ data_metric_functions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ViewDataMetricFunctionArgs', 'ViewDataMetricFunctionArgsDict']]]]] = None,
619
+ data_metric_schedule: Optional[pulumi.Input[Union['ViewDataMetricScheduleArgs', 'ViewDataMetricScheduleArgsDict']]] = None,
432
620
  database: Optional[pulumi.Input[str]] = None,
433
- is_secure: Optional[pulumi.Input[bool]] = None,
621
+ is_recursive: Optional[pulumi.Input[str]] = None,
622
+ is_secure: Optional[pulumi.Input[str]] = None,
623
+ is_temporary: Optional[pulumi.Input[str]] = None,
434
624
  name: Optional[pulumi.Input[str]] = None,
435
- or_replace: Optional[pulumi.Input[bool]] = None,
625
+ row_access_policy: Optional[pulumi.Input[Union['ViewRowAccessPolicyArgs', 'ViewRowAccessPolicyArgsDict']]] = None,
436
626
  schema: Optional[pulumi.Input[str]] = None,
437
627
  statement: Optional[pulumi.Input[str]] = None,
438
- tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ViewTagArgs', 'ViewTagArgsDict']]]]] = None,
439
628
  __props__=None):
440
629
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
441
630
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -445,22 +634,30 @@ class View(pulumi.CustomResource):
445
634
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
446
635
  __props__ = ViewArgs.__new__(ViewArgs)
447
636
 
637
+ __props__.__dict__["aggregation_policy"] = aggregation_policy
638
+ __props__.__dict__["change_tracking"] = change_tracking
639
+ __props__.__dict__["columns"] = columns
448
640
  __props__.__dict__["comment"] = comment
449
641
  __props__.__dict__["copy_grants"] = copy_grants
642
+ __props__.__dict__["data_metric_functions"] = data_metric_functions
643
+ __props__.__dict__["data_metric_schedule"] = data_metric_schedule
450
644
  if database is None and not opts.urn:
451
645
  raise TypeError("Missing required property 'database'")
452
646
  __props__.__dict__["database"] = database
647
+ __props__.__dict__["is_recursive"] = is_recursive
453
648
  __props__.__dict__["is_secure"] = is_secure
649
+ __props__.__dict__["is_temporary"] = is_temporary
454
650
  __props__.__dict__["name"] = name
455
- __props__.__dict__["or_replace"] = or_replace
651
+ __props__.__dict__["row_access_policy"] = row_access_policy
456
652
  if schema is None and not opts.urn:
457
653
  raise TypeError("Missing required property 'schema'")
458
654
  __props__.__dict__["schema"] = schema
459
655
  if statement is None and not opts.urn:
460
656
  raise TypeError("Missing required property 'statement'")
461
657
  __props__.__dict__["statement"] = statement
462
- __props__.__dict__["tags"] = tags
463
- __props__.__dict__["created_on"] = None
658
+ __props__.__dict__["describe_outputs"] = None
659
+ __props__.__dict__["fully_qualified_name"] = None
660
+ __props__.__dict__["show_outputs"] = None
464
661
  super(View, __self__).__init__(
465
662
  'snowflake:index/view:View',
466
663
  resource_name,
@@ -471,16 +668,24 @@ class View(pulumi.CustomResource):
471
668
  def get(resource_name: str,
472
669
  id: pulumi.Input[str],
473
670
  opts: Optional[pulumi.ResourceOptions] = None,
671
+ aggregation_policy: Optional[pulumi.Input[Union['ViewAggregationPolicyArgs', 'ViewAggregationPolicyArgsDict']]] = None,
672
+ change_tracking: Optional[pulumi.Input[str]] = None,
673
+ columns: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ViewColumnArgs', 'ViewColumnArgsDict']]]]] = None,
474
674
  comment: Optional[pulumi.Input[str]] = None,
475
675
  copy_grants: Optional[pulumi.Input[bool]] = None,
476
- created_on: Optional[pulumi.Input[str]] = None,
676
+ data_metric_functions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ViewDataMetricFunctionArgs', 'ViewDataMetricFunctionArgsDict']]]]] = None,
677
+ data_metric_schedule: Optional[pulumi.Input[Union['ViewDataMetricScheduleArgs', 'ViewDataMetricScheduleArgsDict']]] = None,
477
678
  database: Optional[pulumi.Input[str]] = None,
478
- is_secure: Optional[pulumi.Input[bool]] = None,
679
+ describe_outputs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ViewDescribeOutputArgs', 'ViewDescribeOutputArgsDict']]]]] = None,
680
+ fully_qualified_name: Optional[pulumi.Input[str]] = None,
681
+ is_recursive: Optional[pulumi.Input[str]] = None,
682
+ is_secure: Optional[pulumi.Input[str]] = None,
683
+ is_temporary: Optional[pulumi.Input[str]] = None,
479
684
  name: Optional[pulumi.Input[str]] = None,
480
- or_replace: Optional[pulumi.Input[bool]] = None,
685
+ row_access_policy: Optional[pulumi.Input[Union['ViewRowAccessPolicyArgs', 'ViewRowAccessPolicyArgsDict']]] = None,
481
686
  schema: Optional[pulumi.Input[str]] = None,
482
- statement: Optional[pulumi.Input[str]] = None,
483
- tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ViewTagArgs', 'ViewTagArgsDict']]]]] = None) -> 'View':
687
+ show_outputs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ViewShowOutputArgs', 'ViewShowOutputArgsDict']]]]] = None,
688
+ statement: Optional[pulumi.Input[str]] = None) -> 'View':
484
689
  """
485
690
  Get an existing View resource's state with the given name, id, and optional extra
486
691
  properties used to qualify the lookup.
@@ -488,32 +693,71 @@ class View(pulumi.CustomResource):
488
693
  :param str resource_name: The unique name of the resulting resource.
489
694
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
490
695
  :param pulumi.ResourceOptions opts: Options for the resource.
696
+ :param pulumi.Input[Union['ViewAggregationPolicyArgs', 'ViewAggregationPolicyArgsDict']] aggregation_policy: Specifies the aggregation policy to set on a view.
697
+ :param pulumi.Input[str] change_tracking: Specifies to enable or disable change tracking on the table. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
698
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ViewColumnArgs', 'ViewColumnArgsDict']]]] columns: If you want to change the name of a column or add a comment to a column in the new view, include a column list that specifies the column names and (if needed) comments about the columns. (You do not need to specify the data types of the columns.)
491
699
  :param pulumi.Input[str] comment: Specifies a comment for the view.
492
- :param pulumi.Input[bool] copy_grants: Retains the access permissions from the original view when a new view is created using the OR REPLACE clause. OR REPLACE must be set when COPY GRANTS is set.
493
- :param pulumi.Input[str] created_on: The timestamp at which the view was created.
494
- :param pulumi.Input[str] database: The database in which to create the view. Don't use the | character.
495
- :param pulumi.Input[str] name: Specifies the identifier for the view; must be unique for the schema in which the view is created. Don't use the | character.
496
- :param pulumi.Input[bool] or_replace: Overwrites the View if it exists.
497
- :param pulumi.Input[str] schema: The schema in which to create the view. Don't use the | character.
700
+ :param pulumi.Input[bool] copy_grants: Retains the access permissions from the original view when a new view is created using the OR REPLACE clause.
701
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ViewDataMetricFunctionArgs', 'ViewDataMetricFunctionArgsDict']]]] data_metric_functions: Data metric functions used for the view.
702
+ :param pulumi.Input[Union['ViewDataMetricScheduleArgs', 'ViewDataMetricScheduleArgsDict']] data_metric_schedule: Specifies the schedule to run the data metric functions periodically.
703
+ :param pulumi.Input[str] database: The database in which to create the view. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `(`, `)`, `"`
704
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ViewDescribeOutputArgs', 'ViewDescribeOutputArgsDict']]]] describe_outputs: Outputs the result of `DESCRIBE VIEW` for the given view.
705
+ :param pulumi.Input[str] fully_qualified_name: Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
706
+ :param pulumi.Input[str] is_recursive: Specifies that the view can refer to itself using recursive syntax without necessarily using a CTE (common table expression). Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
707
+ :param pulumi.Input[str] name: Specifies the identifier for the view; must be unique for the schema in which the view is created. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `(`, `)`, `"`
708
+ :param pulumi.Input[Union['ViewRowAccessPolicyArgs', 'ViewRowAccessPolicyArgsDict']] row_access_policy: Specifies the row access policy to set on a view.
709
+ :param pulumi.Input[str] schema: The schema in which to create the view. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `(`, `)`, `"`
710
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ViewShowOutputArgs', 'ViewShowOutputArgsDict']]]] show_outputs: Outputs the result of `SHOW VIEW` for the given view.
498
711
  :param pulumi.Input[str] statement: Specifies the query used to create the view.
499
- :param pulumi.Input[Sequence[pulumi.Input[Union['ViewTagArgs', 'ViewTagArgsDict']]]] tags: Definitions of a tag to associate with the resource.
500
712
  """
501
713
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
502
714
 
503
715
  __props__ = _ViewState.__new__(_ViewState)
504
716
 
717
+ __props__.__dict__["aggregation_policy"] = aggregation_policy
718
+ __props__.__dict__["change_tracking"] = change_tracking
719
+ __props__.__dict__["columns"] = columns
505
720
  __props__.__dict__["comment"] = comment
506
721
  __props__.__dict__["copy_grants"] = copy_grants
507
- __props__.__dict__["created_on"] = created_on
722
+ __props__.__dict__["data_metric_functions"] = data_metric_functions
723
+ __props__.__dict__["data_metric_schedule"] = data_metric_schedule
508
724
  __props__.__dict__["database"] = database
725
+ __props__.__dict__["describe_outputs"] = describe_outputs
726
+ __props__.__dict__["fully_qualified_name"] = fully_qualified_name
727
+ __props__.__dict__["is_recursive"] = is_recursive
509
728
  __props__.__dict__["is_secure"] = is_secure
729
+ __props__.__dict__["is_temporary"] = is_temporary
510
730
  __props__.__dict__["name"] = name
511
- __props__.__dict__["or_replace"] = or_replace
731
+ __props__.__dict__["row_access_policy"] = row_access_policy
512
732
  __props__.__dict__["schema"] = schema
733
+ __props__.__dict__["show_outputs"] = show_outputs
513
734
  __props__.__dict__["statement"] = statement
514
- __props__.__dict__["tags"] = tags
515
735
  return View(resource_name, opts=opts, __props__=__props__)
516
736
 
737
+ @property
738
+ @pulumi.getter(name="aggregationPolicy")
739
+ def aggregation_policy(self) -> pulumi.Output[Optional['outputs.ViewAggregationPolicy']]:
740
+ """
741
+ Specifies the aggregation policy to set on a view.
742
+ """
743
+ return pulumi.get(self, "aggregation_policy")
744
+
745
+ @property
746
+ @pulumi.getter(name="changeTracking")
747
+ def change_tracking(self) -> pulumi.Output[Optional[str]]:
748
+ """
749
+ Specifies to enable or disable change tracking on the table. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
750
+ """
751
+ return pulumi.get(self, "change_tracking")
752
+
753
+ @property
754
+ @pulumi.getter
755
+ def columns(self) -> pulumi.Output[Optional[Sequence['outputs.ViewColumn']]]:
756
+ """
757
+ If you want to change the name of a column or add a comment to a column in the new view, include a column list that specifies the column names and (if needed) comments about the columns. (You do not need to specify the data types of the columns.)
758
+ """
759
+ return pulumi.get(self, "columns")
760
+
517
761
  @property
518
762
  @pulumi.getter
519
763
  def comment(self) -> pulumi.Output[Optional[str]]:
@@ -526,69 +770,105 @@ class View(pulumi.CustomResource):
526
770
  @pulumi.getter(name="copyGrants")
527
771
  def copy_grants(self) -> pulumi.Output[Optional[bool]]:
528
772
  """
529
- Retains the access permissions from the original view when a new view is created using the OR REPLACE clause. OR REPLACE must be set when COPY GRANTS is set.
773
+ Retains the access permissions from the original view when a new view is created using the OR REPLACE clause.
530
774
  """
531
775
  return pulumi.get(self, "copy_grants")
532
776
 
533
777
  @property
534
- @pulumi.getter(name="createdOn")
535
- def created_on(self) -> pulumi.Output[str]:
778
+ @pulumi.getter(name="dataMetricFunctions")
779
+ def data_metric_functions(self) -> pulumi.Output[Optional[Sequence['outputs.ViewDataMetricFunction']]]:
536
780
  """
537
- The timestamp at which the view was created.
781
+ Data metric functions used for the view.
538
782
  """
539
- return pulumi.get(self, "created_on")
783
+ return pulumi.get(self, "data_metric_functions")
784
+
785
+ @property
786
+ @pulumi.getter(name="dataMetricSchedule")
787
+ def data_metric_schedule(self) -> pulumi.Output[Optional['outputs.ViewDataMetricSchedule']]:
788
+ """
789
+ Specifies the schedule to run the data metric functions periodically.
790
+ """
791
+ return pulumi.get(self, "data_metric_schedule")
540
792
 
541
793
  @property
542
794
  @pulumi.getter
543
795
  def database(self) -> pulumi.Output[str]:
544
796
  """
545
- The database in which to create the view. Don't use the | character.
797
+ The database in which to create the view. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `(`, `)`, `"`
546
798
  """
547
799
  return pulumi.get(self, "database")
548
800
 
801
+ @property
802
+ @pulumi.getter(name="describeOutputs")
803
+ def describe_outputs(self) -> pulumi.Output[Sequence['outputs.ViewDescribeOutput']]:
804
+ """
805
+ Outputs the result of `DESCRIBE VIEW` for the given view.
806
+ """
807
+ return pulumi.get(self, "describe_outputs")
808
+
809
+ @property
810
+ @pulumi.getter(name="fullyQualifiedName")
811
+ def fully_qualified_name(self) -> pulumi.Output[str]:
812
+ """
813
+ Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
814
+ """
815
+ return pulumi.get(self, "fully_qualified_name")
816
+
817
+ @property
818
+ @pulumi.getter(name="isRecursive")
819
+ def is_recursive(self) -> pulumi.Output[Optional[str]]:
820
+ """
821
+ Specifies that the view can refer to itself using recursive syntax without necessarily using a CTE (common table expression). Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
822
+ """
823
+ return pulumi.get(self, "is_recursive")
824
+
549
825
  @property
550
826
  @pulumi.getter(name="isSecure")
551
- def is_secure(self) -> pulumi.Output[Optional[bool]]:
827
+ def is_secure(self) -> pulumi.Output[Optional[str]]:
552
828
  return pulumi.get(self, "is_secure")
553
829
 
830
+ @property
831
+ @pulumi.getter(name="isTemporary")
832
+ def is_temporary(self) -> pulumi.Output[Optional[str]]:
833
+ return pulumi.get(self, "is_temporary")
834
+
554
835
  @property
555
836
  @pulumi.getter
556
837
  def name(self) -> pulumi.Output[str]:
557
838
  """
558
- Specifies the identifier for the view; must be unique for the schema in which the view is created. Don't use the | character.
839
+ Specifies the identifier for the view; must be unique for the schema in which the view is created. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `(`, `)`, `"`
559
840
  """
560
841
  return pulumi.get(self, "name")
561
842
 
562
843
  @property
563
- @pulumi.getter(name="orReplace")
564
- def or_replace(self) -> pulumi.Output[Optional[bool]]:
844
+ @pulumi.getter(name="rowAccessPolicy")
845
+ def row_access_policy(self) -> pulumi.Output[Optional['outputs.ViewRowAccessPolicy']]:
565
846
  """
566
- Overwrites the View if it exists.
847
+ Specifies the row access policy to set on a view.
567
848
  """
568
- return pulumi.get(self, "or_replace")
849
+ return pulumi.get(self, "row_access_policy")
569
850
 
570
851
  @property
571
852
  @pulumi.getter
572
853
  def schema(self) -> pulumi.Output[str]:
573
854
  """
574
- The schema in which to create the view. Don't use the | character.
855
+ The schema in which to create the view. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `(`, `)`, `"`
575
856
  """
576
857
  return pulumi.get(self, "schema")
577
858
 
578
859
  @property
579
- @pulumi.getter
580
- def statement(self) -> pulumi.Output[str]:
860
+ @pulumi.getter(name="showOutputs")
861
+ def show_outputs(self) -> pulumi.Output[Sequence['outputs.ViewShowOutput']]:
581
862
  """
582
- Specifies the query used to create the view.
863
+ Outputs the result of `SHOW VIEW` for the given view.
583
864
  """
584
- return pulumi.get(self, "statement")
865
+ return pulumi.get(self, "show_outputs")
585
866
 
586
867
  @property
587
868
  @pulumi.getter
588
- @_utilities.deprecated("""Use the 'snowflake_tag_association' resource instead.""")
589
- def tags(self) -> pulumi.Output[Optional[Sequence['outputs.ViewTag']]]:
869
+ def statement(self) -> pulumi.Output[str]:
590
870
  """
591
- Definitions of a tag to associate with the resource.
871
+ Specifies the query used to create the view.
592
872
  """
593
- return pulumi.get(self, "tags")
873
+ return pulumi.get(self, "statement")
594
874