pulumi-snowflake 0.50.3a1710160126__py3-none-any.whl → 1.2.0a1736849992__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (182) hide show
  1. pulumi_snowflake/__init__.py +224 -172
  2. pulumi_snowflake/_inputs.py +52857 -1665
  3. pulumi_snowflake/_utilities.py +41 -5
  4. pulumi_snowflake/account.py +188 -218
  5. pulumi_snowflake/account_authentication_policy_attachment.py +149 -0
  6. pulumi_snowflake/account_parameter.py +21 -48
  7. pulumi_snowflake/account_password_policy_attachment.py +7 -32
  8. pulumi_snowflake/account_role.py +250 -0
  9. pulumi_snowflake/alert.py +38 -47
  10. pulumi_snowflake/api_authentication_integration_with_authorization_code_grant.py +704 -0
  11. pulumi_snowflake/api_authentication_integration_with_client_credentials.py +657 -0
  12. pulumi_snowflake/api_authentication_integration_with_jwt_bearer.py +692 -0
  13. pulumi_snowflake/api_integration.py +33 -52
  14. pulumi_snowflake/authentication_policy.py +622 -0
  15. pulumi_snowflake/config/__init__.pyi +76 -99
  16. pulumi_snowflake/config/outputs.py +5 -0
  17. pulumi_snowflake/config/vars.py +93 -124
  18. pulumi_snowflake/cortex_search_service.py +596 -0
  19. pulumi_snowflake/database.py +819 -213
  20. pulumi_snowflake/database_role.py +81 -44
  21. pulumi_snowflake/dynamic_table.py +42 -49
  22. pulumi_snowflake/email_notification_integration.py +33 -28
  23. pulumi_snowflake/{unsafe_execute.py → execute.py} +36 -39
  24. pulumi_snowflake/external_function.py +54 -75
  25. pulumi_snowflake/external_oauth_integration.py +593 -542
  26. pulumi_snowflake/external_table.py +67 -90
  27. pulumi_snowflake/external_volume.py +382 -0
  28. pulumi_snowflake/failover_group.py +57 -98
  29. pulumi_snowflake/file_format.py +33 -28
  30. pulumi_snowflake/function_java.py +1211 -0
  31. pulumi_snowflake/function_javascript.py +882 -0
  32. pulumi_snowflake/function_python.py +1212 -0
  33. pulumi_snowflake/function_scala.py +1212 -0
  34. pulumi_snowflake/function_sql.py +835 -0
  35. pulumi_snowflake/get_account_roles.py +129 -0
  36. pulumi_snowflake/get_accounts.py +53 -22
  37. pulumi_snowflake/get_alerts.py +22 -9
  38. pulumi_snowflake/get_connections.py +109 -0
  39. pulumi_snowflake/get_cortex_search_services.py +216 -0
  40. pulumi_snowflake/get_current_account.py +24 -13
  41. pulumi_snowflake/get_current_role.py +14 -7
  42. pulumi_snowflake/get_database.py +25 -9
  43. pulumi_snowflake/get_database_role.py +162 -0
  44. pulumi_snowflake/get_database_roles.py +79 -47
  45. pulumi_snowflake/get_databases.py +91 -73
  46. pulumi_snowflake/get_dynamic_tables.py +36 -19
  47. pulumi_snowflake/get_external_functions.py +28 -9
  48. pulumi_snowflake/get_external_tables.py +28 -9
  49. pulumi_snowflake/get_failover_groups.py +18 -7
  50. pulumi_snowflake/get_file_formats.py +28 -9
  51. pulumi_snowflake/get_functions.py +28 -9
  52. pulumi_snowflake/get_grants.py +207 -84
  53. pulumi_snowflake/get_masking_policies.py +91 -51
  54. pulumi_snowflake/get_materialized_views.py +28 -9
  55. pulumi_snowflake/get_network_policies.py +129 -0
  56. pulumi_snowflake/get_parameters.py +38 -15
  57. pulumi_snowflake/get_pipes.py +28 -9
  58. pulumi_snowflake/get_procedures.py +28 -9
  59. pulumi_snowflake/get_resource_monitors.py +37 -24
  60. pulumi_snowflake/get_row_access_policies.py +91 -51
  61. pulumi_snowflake/get_schemas.py +145 -41
  62. pulumi_snowflake/get_secrets.py +200 -0
  63. pulumi_snowflake/get_security_integrations.py +129 -0
  64. pulumi_snowflake/get_sequences.py +28 -9
  65. pulumi_snowflake/get_shares.py +18 -9
  66. pulumi_snowflake/get_stages.py +28 -9
  67. pulumi_snowflake/get_storage_integrations.py +16 -9
  68. pulumi_snowflake/get_streamlits.py +170 -0
  69. pulumi_snowflake/get_streams.py +114 -54
  70. pulumi_snowflake/get_system_generate_scim_access_token.py +18 -9
  71. pulumi_snowflake/get_system_get_aws_sns_iam_policy.py +32 -7
  72. pulumi_snowflake/get_system_get_private_link_config.py +120 -5
  73. pulumi_snowflake/get_system_get_snowflake_platform_info.py +15 -7
  74. pulumi_snowflake/get_tables.py +28 -9
  75. pulumi_snowflake/get_tags.py +130 -0
  76. pulumi_snowflake/get_tasks.py +134 -54
  77. pulumi_snowflake/get_users.py +116 -44
  78. pulumi_snowflake/get_views.py +114 -54
  79. pulumi_snowflake/get_warehouses.py +79 -26
  80. pulumi_snowflake/grant_account_role.py +28 -75
  81. pulumi_snowflake/grant_application_role.py +257 -0
  82. pulumi_snowflake/grant_database_role.py +35 -94
  83. pulumi_snowflake/grant_ownership.py +382 -0
  84. pulumi_snowflake/grant_privileges_to_account_role.py +42 -78
  85. pulumi_snowflake/grant_privileges_to_database_role.py +37 -383
  86. pulumi_snowflake/grant_privileges_to_share.py +96 -44
  87. pulumi_snowflake/legacy_service_user.py +3670 -0
  88. pulumi_snowflake/managed_account.py +40 -11
  89. pulumi_snowflake/masking_policy.py +213 -310
  90. pulumi_snowflake/materialized_view.py +62 -71
  91. pulumi_snowflake/network_policy.py +217 -61
  92. pulumi_snowflake/network_policy_attachment.py +5 -34
  93. pulumi_snowflake/network_rule.py +473 -0
  94. pulumi_snowflake/notification_integration.py +49 -84
  95. pulumi_snowflake/oauth_integration_for_custom_clients.py +906 -0
  96. pulumi_snowflake/{oauth_integration.py → oauth_integration_for_partner_applications.py} +191 -192
  97. pulumi_snowflake/object_parameter.py +10 -101
  98. pulumi_snowflake/outputs.py +49200 -2928
  99. pulumi_snowflake/password_policy.py +41 -28
  100. pulumi_snowflake/pipe.py +33 -4
  101. pulumi_snowflake/primary_connection.py +330 -0
  102. pulumi_snowflake/procedure_java.py +1273 -0
  103. pulumi_snowflake/procedure_javascript.py +895 -0
  104. pulumi_snowflake/procedure_python.py +1226 -0
  105. pulumi_snowflake/procedure_scala.py +1273 -0
  106. pulumi_snowflake/procedure_sql.py +895 -0
  107. pulumi_snowflake/provider.py +378 -613
  108. pulumi_snowflake/pulumi-plugin.json +2 -1
  109. pulumi_snowflake/resource_monitor.py +118 -327
  110. pulumi_snowflake/row_access_policy.py +200 -149
  111. pulumi_snowflake/{saml_integration.py → saml2_integration.py} +356 -299
  112. pulumi_snowflake/schema.py +949 -178
  113. pulumi_snowflake/scim_integration.py +286 -109
  114. pulumi_snowflake/secondary_connection.py +339 -0
  115. pulumi_snowflake/secondary_database.py +1080 -0
  116. pulumi_snowflake/secret_with_authorization_code_grant.py +548 -0
  117. pulumi_snowflake/secret_with_basic_authentication.py +500 -0
  118. pulumi_snowflake/secret_with_client_credentials.py +511 -0
  119. pulumi_snowflake/secret_with_generic_string.py +452 -0
  120. pulumi_snowflake/sequence.py +9 -34
  121. pulumi_snowflake/service_user.py +3585 -0
  122. pulumi_snowflake/share.py +33 -28
  123. pulumi_snowflake/shared_database.py +939 -0
  124. pulumi_snowflake/stage.py +95 -84
  125. pulumi_snowflake/storage_integration.py +46 -4
  126. pulumi_snowflake/stream_on_directory_table.py +517 -0
  127. pulumi_snowflake/stream_on_external_table.py +632 -0
  128. pulumi_snowflake/stream_on_table.py +666 -0
  129. pulumi_snowflake/stream_on_view.py +666 -0
  130. pulumi_snowflake/streamlit.py +671 -0
  131. pulumi_snowflake/table.py +86 -97
  132. pulumi_snowflake/table_column_masking_policy_application.py +7 -14
  133. pulumi_snowflake/table_constraint.py +29 -172
  134. pulumi_snowflake/tag.py +142 -74
  135. pulumi_snowflake/tag_association.py +40 -215
  136. pulumi_snowflake/task.py +3048 -418
  137. pulumi_snowflake/user.py +3351 -384
  138. pulumi_snowflake/user_authentication_policy_attachment.py +197 -0
  139. pulumi_snowflake/user_password_policy_attachment.py +5 -4
  140. pulumi_snowflake/user_public_keys.py +5 -0
  141. pulumi_snowflake/view.py +466 -215
  142. pulumi_snowflake/warehouse.py +184 -168
  143. {pulumi_snowflake-0.50.3a1710160126.dist-info → pulumi_snowflake-1.2.0a1736849992.dist-info}/METADATA +7 -6
  144. pulumi_snowflake-1.2.0a1736849992.dist-info/RECORD +148 -0
  145. {pulumi_snowflake-0.50.3a1710160126.dist-info → pulumi_snowflake-1.2.0a1736849992.dist-info}/WHEEL +1 -1
  146. pulumi_snowflake/account_grant.py +0 -343
  147. pulumi_snowflake/database_grant.py +0 -495
  148. pulumi_snowflake/external_table_grant.py +0 -690
  149. pulumi_snowflake/failover_group_grant.py +0 -388
  150. pulumi_snowflake/file_format_grant.py +0 -635
  151. pulumi_snowflake/function.py +0 -872
  152. pulumi_snowflake/function_grant.py +0 -745
  153. pulumi_snowflake/get_role.py +0 -121
  154. pulumi_snowflake/get_roles.py +0 -120
  155. pulumi_snowflake/grant_privileges_to_role.py +0 -825
  156. pulumi_snowflake/integration_grant.py +0 -440
  157. pulumi_snowflake/masking_policy_grant.py +0 -542
  158. pulumi_snowflake/materialized_view_grant.py +0 -689
  159. pulumi_snowflake/pipe_grant.py +0 -587
  160. pulumi_snowflake/procedure.py +0 -887
  161. pulumi_snowflake/procedure_grant.py +0 -745
  162. pulumi_snowflake/resource_monitor_grant.py +0 -387
  163. pulumi_snowflake/role.py +0 -273
  164. pulumi_snowflake/role_grants.py +0 -352
  165. pulumi_snowflake/role_ownership_grant.py +0 -338
  166. pulumi_snowflake/row_access_policy_grant.py +0 -540
  167. pulumi_snowflake/schema_grant.py +0 -647
  168. pulumi_snowflake/sequence_grant.py +0 -635
  169. pulumi_snowflake/session_parameter.py +0 -332
  170. pulumi_snowflake/stage_grant.py +0 -635
  171. pulumi_snowflake/stream.py +0 -614
  172. pulumi_snowflake/stream_grant.py +0 -635
  173. pulumi_snowflake/table_grant.py +0 -677
  174. pulumi_snowflake/tag_grant.py +0 -532
  175. pulumi_snowflake/tag_masking_policy_association.py +0 -210
  176. pulumi_snowflake/task_grant.py +0 -635
  177. pulumi_snowflake/user_grant.py +0 -394
  178. pulumi_snowflake/user_ownership_grant.py +0 -286
  179. pulumi_snowflake/view_grant.py +0 -705
  180. pulumi_snowflake/warehouse_grant.py +0 -440
  181. pulumi_snowflake-0.50.3a1710160126.dist-info/RECORD +0 -136
  182. {pulumi_snowflake-0.50.3a1710160126.dist-info → pulumi_snowflake-1.2.0a1736849992.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,382 @@
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 sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from . import _utilities
16
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = ['ExternalVolumeArgs', 'ExternalVolume']
20
+
21
+ @pulumi.input_type
22
+ class ExternalVolumeArgs:
23
+ def __init__(__self__, *,
24
+ storage_locations: pulumi.Input[Sequence[pulumi.Input['ExternalVolumeStorageLocationArgs']]],
25
+ allow_writes: Optional[pulumi.Input[str]] = None,
26
+ comment: Optional[pulumi.Input[str]] = None,
27
+ name: Optional[pulumi.Input[str]] = None):
28
+ """
29
+ The set of arguments for constructing a ExternalVolume resource.
30
+ :param pulumi.Input[Sequence[pulumi.Input['ExternalVolumeStorageLocationArgs']]] storage_locations: List of named cloud storage locations in different regions and, optionally, cloud platforms. Minimum 1 required. The order of the list is important as it impacts the active storage location, and updates will be triggered if it changes. Note that not all parameter combinations are valid as they depend on the given storage*provider. Consult [the docs](https://docs.snowflake.com/en/sql-reference/sql/create-external-volume#cloud-provider-parameters-cloudproviderparams) for more details on this.
31
+ :param pulumi.Input[str] allow_writes: Specifies whether write operations are allowed for the external volume; must be set to TRUE for Iceberg tables that use Snowflake as the catalog. 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.
32
+ :param pulumi.Input[str] comment: Specifies a comment for the external volume.
33
+ :param pulumi.Input[str] name: Identifier for the external volume; must be unique for your account. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
34
+ """
35
+ pulumi.set(__self__, "storage_locations", storage_locations)
36
+ if allow_writes is not None:
37
+ pulumi.set(__self__, "allow_writes", allow_writes)
38
+ if comment is not None:
39
+ pulumi.set(__self__, "comment", comment)
40
+ if name is not None:
41
+ pulumi.set(__self__, "name", name)
42
+
43
+ @property
44
+ @pulumi.getter(name="storageLocations")
45
+ def storage_locations(self) -> pulumi.Input[Sequence[pulumi.Input['ExternalVolumeStorageLocationArgs']]]:
46
+ """
47
+ List of named cloud storage locations in different regions and, optionally, cloud platforms. Minimum 1 required. The order of the list is important as it impacts the active storage location, and updates will be triggered if it changes. Note that not all parameter combinations are valid as they depend on the given storage*provider. Consult [the docs](https://docs.snowflake.com/en/sql-reference/sql/create-external-volume#cloud-provider-parameters-cloudproviderparams) for more details on this.
48
+ """
49
+ return pulumi.get(self, "storage_locations")
50
+
51
+ @storage_locations.setter
52
+ def storage_locations(self, value: pulumi.Input[Sequence[pulumi.Input['ExternalVolumeStorageLocationArgs']]]):
53
+ pulumi.set(self, "storage_locations", value)
54
+
55
+ @property
56
+ @pulumi.getter(name="allowWrites")
57
+ def allow_writes(self) -> Optional[pulumi.Input[str]]:
58
+ """
59
+ Specifies whether write operations are allowed for the external volume; must be set to TRUE for Iceberg tables that use Snowflake as the catalog. 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.
60
+ """
61
+ return pulumi.get(self, "allow_writes")
62
+
63
+ @allow_writes.setter
64
+ def allow_writes(self, value: Optional[pulumi.Input[str]]):
65
+ pulumi.set(self, "allow_writes", value)
66
+
67
+ @property
68
+ @pulumi.getter
69
+ def comment(self) -> Optional[pulumi.Input[str]]:
70
+ """
71
+ Specifies a comment for the external volume.
72
+ """
73
+ return pulumi.get(self, "comment")
74
+
75
+ @comment.setter
76
+ def comment(self, value: Optional[pulumi.Input[str]]):
77
+ pulumi.set(self, "comment", value)
78
+
79
+ @property
80
+ @pulumi.getter
81
+ def name(self) -> Optional[pulumi.Input[str]]:
82
+ """
83
+ Identifier for the external volume; must be unique for your account. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
84
+ """
85
+ return pulumi.get(self, "name")
86
+
87
+ @name.setter
88
+ def name(self, value: Optional[pulumi.Input[str]]):
89
+ pulumi.set(self, "name", value)
90
+
91
+
92
+ @pulumi.input_type
93
+ class _ExternalVolumeState:
94
+ def __init__(__self__, *,
95
+ allow_writes: Optional[pulumi.Input[str]] = None,
96
+ comment: Optional[pulumi.Input[str]] = None,
97
+ describe_outputs: Optional[pulumi.Input[Sequence[pulumi.Input['ExternalVolumeDescribeOutputArgs']]]] = None,
98
+ fully_qualified_name: Optional[pulumi.Input[str]] = None,
99
+ name: Optional[pulumi.Input[str]] = None,
100
+ show_outputs: Optional[pulumi.Input[Sequence[pulumi.Input['ExternalVolumeShowOutputArgs']]]] = None,
101
+ storage_locations: Optional[pulumi.Input[Sequence[pulumi.Input['ExternalVolumeStorageLocationArgs']]]] = None):
102
+ """
103
+ Input properties used for looking up and filtering ExternalVolume resources.
104
+ :param pulumi.Input[str] allow_writes: Specifies whether write operations are allowed for the external volume; must be set to TRUE for Iceberg tables that use Snowflake as the catalog. 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.
105
+ :param pulumi.Input[str] comment: Specifies a comment for the external volume.
106
+ :param pulumi.Input[Sequence[pulumi.Input['ExternalVolumeDescribeOutputArgs']]] describe_outputs: Outputs the result of `DESCRIBE EXTERNAL VOLUME` for the given external volume.
107
+ :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).
108
+ :param pulumi.Input[str] name: Identifier for the external volume; must be unique for your account. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
109
+ :param pulumi.Input[Sequence[pulumi.Input['ExternalVolumeShowOutputArgs']]] show_outputs: Outputs the result of `SHOW EXTERNAL VOLUMES` for the given external volume.
110
+ :param pulumi.Input[Sequence[pulumi.Input['ExternalVolumeStorageLocationArgs']]] storage_locations: List of named cloud storage locations in different regions and, optionally, cloud platforms. Minimum 1 required. The order of the list is important as it impacts the active storage location, and updates will be triggered if it changes. Note that not all parameter combinations are valid as they depend on the given storage*provider. Consult [the docs](https://docs.snowflake.com/en/sql-reference/sql/create-external-volume#cloud-provider-parameters-cloudproviderparams) for more details on this.
111
+ """
112
+ if allow_writes is not None:
113
+ pulumi.set(__self__, "allow_writes", allow_writes)
114
+ if comment is not None:
115
+ pulumi.set(__self__, "comment", comment)
116
+ if describe_outputs is not None:
117
+ pulumi.set(__self__, "describe_outputs", describe_outputs)
118
+ if fully_qualified_name is not None:
119
+ pulumi.set(__self__, "fully_qualified_name", fully_qualified_name)
120
+ if name is not None:
121
+ pulumi.set(__self__, "name", name)
122
+ if show_outputs is not None:
123
+ pulumi.set(__self__, "show_outputs", show_outputs)
124
+ if storage_locations is not None:
125
+ pulumi.set(__self__, "storage_locations", storage_locations)
126
+
127
+ @property
128
+ @pulumi.getter(name="allowWrites")
129
+ def allow_writes(self) -> Optional[pulumi.Input[str]]:
130
+ """
131
+ Specifies whether write operations are allowed for the external volume; must be set to TRUE for Iceberg tables that use Snowflake as the catalog. 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.
132
+ """
133
+ return pulumi.get(self, "allow_writes")
134
+
135
+ @allow_writes.setter
136
+ def allow_writes(self, value: Optional[pulumi.Input[str]]):
137
+ pulumi.set(self, "allow_writes", value)
138
+
139
+ @property
140
+ @pulumi.getter
141
+ def comment(self) -> Optional[pulumi.Input[str]]:
142
+ """
143
+ Specifies a comment for the external volume.
144
+ """
145
+ return pulumi.get(self, "comment")
146
+
147
+ @comment.setter
148
+ def comment(self, value: Optional[pulumi.Input[str]]):
149
+ pulumi.set(self, "comment", value)
150
+
151
+ @property
152
+ @pulumi.getter(name="describeOutputs")
153
+ def describe_outputs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ExternalVolumeDescribeOutputArgs']]]]:
154
+ """
155
+ Outputs the result of `DESCRIBE EXTERNAL VOLUME` for the given external volume.
156
+ """
157
+ return pulumi.get(self, "describe_outputs")
158
+
159
+ @describe_outputs.setter
160
+ def describe_outputs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ExternalVolumeDescribeOutputArgs']]]]):
161
+ pulumi.set(self, "describe_outputs", value)
162
+
163
+ @property
164
+ @pulumi.getter(name="fullyQualifiedName")
165
+ def fully_qualified_name(self) -> Optional[pulumi.Input[str]]:
166
+ """
167
+ Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
168
+ """
169
+ return pulumi.get(self, "fully_qualified_name")
170
+
171
+ @fully_qualified_name.setter
172
+ def fully_qualified_name(self, value: Optional[pulumi.Input[str]]):
173
+ pulumi.set(self, "fully_qualified_name", value)
174
+
175
+ @property
176
+ @pulumi.getter
177
+ def name(self) -> Optional[pulumi.Input[str]]:
178
+ """
179
+ Identifier for the external volume; must be unique for your account. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
180
+ """
181
+ return pulumi.get(self, "name")
182
+
183
+ @name.setter
184
+ def name(self, value: Optional[pulumi.Input[str]]):
185
+ pulumi.set(self, "name", value)
186
+
187
+ @property
188
+ @pulumi.getter(name="showOutputs")
189
+ def show_outputs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ExternalVolumeShowOutputArgs']]]]:
190
+ """
191
+ Outputs the result of `SHOW EXTERNAL VOLUMES` for the given external volume.
192
+ """
193
+ return pulumi.get(self, "show_outputs")
194
+
195
+ @show_outputs.setter
196
+ def show_outputs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ExternalVolumeShowOutputArgs']]]]):
197
+ pulumi.set(self, "show_outputs", value)
198
+
199
+ @property
200
+ @pulumi.getter(name="storageLocations")
201
+ def storage_locations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ExternalVolumeStorageLocationArgs']]]]:
202
+ """
203
+ List of named cloud storage locations in different regions and, optionally, cloud platforms. Minimum 1 required. The order of the list is important as it impacts the active storage location, and updates will be triggered if it changes. Note that not all parameter combinations are valid as they depend on the given storage*provider. Consult [the docs](https://docs.snowflake.com/en/sql-reference/sql/create-external-volume#cloud-provider-parameters-cloudproviderparams) for more details on this.
204
+ """
205
+ return pulumi.get(self, "storage_locations")
206
+
207
+ @storage_locations.setter
208
+ def storage_locations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ExternalVolumeStorageLocationArgs']]]]):
209
+ pulumi.set(self, "storage_locations", value)
210
+
211
+
212
+ class ExternalVolume(pulumi.CustomResource):
213
+ @overload
214
+ def __init__(__self__,
215
+ resource_name: str,
216
+ opts: Optional[pulumi.ResourceOptions] = None,
217
+ allow_writes: Optional[pulumi.Input[str]] = None,
218
+ comment: Optional[pulumi.Input[str]] = None,
219
+ name: Optional[pulumi.Input[str]] = None,
220
+ storage_locations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ExternalVolumeStorageLocationArgs', 'ExternalVolumeStorageLocationArgsDict']]]]] = None,
221
+ __props__=None):
222
+ """
223
+ !> **Caution: Preview Feature** This feature is considered a preview feature in the provider, regardless of the state of the resource in Snowflake. We do not guarantee its stability. It will be reworked and marked as a stable feature in future releases. Breaking changes are expected, even without bumping the major version. To use this feature, add the relevant feature name to `preview_features_enabled field` in the provider configuration. Please always refer to the Getting Help section in our Github repo to best determine how to get help for your questions.
224
+
225
+ Resource used to manage external volume objects. For more information, check [external volume documentation](https://docs.snowflake.com/en/sql-reference/commands-data-loading#external-volume).
226
+
227
+ :param str resource_name: The name of the resource.
228
+ :param pulumi.ResourceOptions opts: Options for the resource.
229
+ :param pulumi.Input[str] allow_writes: Specifies whether write operations are allowed for the external volume; must be set to TRUE for Iceberg tables that use Snowflake as the catalog. 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.
230
+ :param pulumi.Input[str] comment: Specifies a comment for the external volume.
231
+ :param pulumi.Input[str] name: Identifier for the external volume; must be unique for your account. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
232
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ExternalVolumeStorageLocationArgs', 'ExternalVolumeStorageLocationArgsDict']]]] storage_locations: List of named cloud storage locations in different regions and, optionally, cloud platforms. Minimum 1 required. The order of the list is important as it impacts the active storage location, and updates will be triggered if it changes. Note that not all parameter combinations are valid as they depend on the given storage*provider. Consult [the docs](https://docs.snowflake.com/en/sql-reference/sql/create-external-volume#cloud-provider-parameters-cloudproviderparams) for more details on this.
233
+ """
234
+ ...
235
+ @overload
236
+ def __init__(__self__,
237
+ resource_name: str,
238
+ args: ExternalVolumeArgs,
239
+ opts: Optional[pulumi.ResourceOptions] = None):
240
+ """
241
+ !> **Caution: Preview Feature** This feature is considered a preview feature in the provider, regardless of the state of the resource in Snowflake. We do not guarantee its stability. It will be reworked and marked as a stable feature in future releases. Breaking changes are expected, even without bumping the major version. To use this feature, add the relevant feature name to `preview_features_enabled field` in the provider configuration. Please always refer to the Getting Help section in our Github repo to best determine how to get help for your questions.
242
+
243
+ Resource used to manage external volume objects. For more information, check [external volume documentation](https://docs.snowflake.com/en/sql-reference/commands-data-loading#external-volume).
244
+
245
+ :param str resource_name: The name of the resource.
246
+ :param ExternalVolumeArgs args: The arguments to use to populate this resource's properties.
247
+ :param pulumi.ResourceOptions opts: Options for the resource.
248
+ """
249
+ ...
250
+ def __init__(__self__, resource_name: str, *args, **kwargs):
251
+ resource_args, opts = _utilities.get_resource_args_opts(ExternalVolumeArgs, pulumi.ResourceOptions, *args, **kwargs)
252
+ if resource_args is not None:
253
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
254
+ else:
255
+ __self__._internal_init(resource_name, *args, **kwargs)
256
+
257
+ def _internal_init(__self__,
258
+ resource_name: str,
259
+ opts: Optional[pulumi.ResourceOptions] = None,
260
+ allow_writes: Optional[pulumi.Input[str]] = None,
261
+ comment: Optional[pulumi.Input[str]] = None,
262
+ name: Optional[pulumi.Input[str]] = None,
263
+ storage_locations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ExternalVolumeStorageLocationArgs', 'ExternalVolumeStorageLocationArgsDict']]]]] = None,
264
+ __props__=None):
265
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
266
+ if not isinstance(opts, pulumi.ResourceOptions):
267
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
268
+ if opts.id is None:
269
+ if __props__ is not None:
270
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
271
+ __props__ = ExternalVolumeArgs.__new__(ExternalVolumeArgs)
272
+
273
+ __props__.__dict__["allow_writes"] = allow_writes
274
+ __props__.__dict__["comment"] = comment
275
+ __props__.__dict__["name"] = name
276
+ if storage_locations is None and not opts.urn:
277
+ raise TypeError("Missing required property 'storage_locations'")
278
+ __props__.__dict__["storage_locations"] = storage_locations
279
+ __props__.__dict__["describe_outputs"] = None
280
+ __props__.__dict__["fully_qualified_name"] = None
281
+ __props__.__dict__["show_outputs"] = None
282
+ super(ExternalVolume, __self__).__init__(
283
+ 'snowflake:index/externalVolume:ExternalVolume',
284
+ resource_name,
285
+ __props__,
286
+ opts)
287
+
288
+ @staticmethod
289
+ def get(resource_name: str,
290
+ id: pulumi.Input[str],
291
+ opts: Optional[pulumi.ResourceOptions] = None,
292
+ allow_writes: Optional[pulumi.Input[str]] = None,
293
+ comment: Optional[pulumi.Input[str]] = None,
294
+ describe_outputs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ExternalVolumeDescribeOutputArgs', 'ExternalVolumeDescribeOutputArgsDict']]]]] = None,
295
+ fully_qualified_name: Optional[pulumi.Input[str]] = None,
296
+ name: Optional[pulumi.Input[str]] = None,
297
+ show_outputs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ExternalVolumeShowOutputArgs', 'ExternalVolumeShowOutputArgsDict']]]]] = None,
298
+ storage_locations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ExternalVolumeStorageLocationArgs', 'ExternalVolumeStorageLocationArgsDict']]]]] = None) -> 'ExternalVolume':
299
+ """
300
+ Get an existing ExternalVolume resource's state with the given name, id, and optional extra
301
+ properties used to qualify the lookup.
302
+
303
+ :param str resource_name: The unique name of the resulting resource.
304
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
305
+ :param pulumi.ResourceOptions opts: Options for the resource.
306
+ :param pulumi.Input[str] allow_writes: Specifies whether write operations are allowed for the external volume; must be set to TRUE for Iceberg tables that use Snowflake as the catalog. 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.
307
+ :param pulumi.Input[str] comment: Specifies a comment for the external volume.
308
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ExternalVolumeDescribeOutputArgs', 'ExternalVolumeDescribeOutputArgsDict']]]] describe_outputs: Outputs the result of `DESCRIBE EXTERNAL VOLUME` for the given external volume.
309
+ :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).
310
+ :param pulumi.Input[str] name: Identifier for the external volume; must be unique for your account. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
311
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ExternalVolumeShowOutputArgs', 'ExternalVolumeShowOutputArgsDict']]]] show_outputs: Outputs the result of `SHOW EXTERNAL VOLUMES` for the given external volume.
312
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ExternalVolumeStorageLocationArgs', 'ExternalVolumeStorageLocationArgsDict']]]] storage_locations: List of named cloud storage locations in different regions and, optionally, cloud platforms. Minimum 1 required. The order of the list is important as it impacts the active storage location, and updates will be triggered if it changes. Note that not all parameter combinations are valid as they depend on the given storage*provider. Consult [the docs](https://docs.snowflake.com/en/sql-reference/sql/create-external-volume#cloud-provider-parameters-cloudproviderparams) for more details on this.
313
+ """
314
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
315
+
316
+ __props__ = _ExternalVolumeState.__new__(_ExternalVolumeState)
317
+
318
+ __props__.__dict__["allow_writes"] = allow_writes
319
+ __props__.__dict__["comment"] = comment
320
+ __props__.__dict__["describe_outputs"] = describe_outputs
321
+ __props__.__dict__["fully_qualified_name"] = fully_qualified_name
322
+ __props__.__dict__["name"] = name
323
+ __props__.__dict__["show_outputs"] = show_outputs
324
+ __props__.__dict__["storage_locations"] = storage_locations
325
+ return ExternalVolume(resource_name, opts=opts, __props__=__props__)
326
+
327
+ @property
328
+ @pulumi.getter(name="allowWrites")
329
+ def allow_writes(self) -> pulumi.Output[Optional[str]]:
330
+ """
331
+ Specifies whether write operations are allowed for the external volume; must be set to TRUE for Iceberg tables that use Snowflake as the catalog. 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.
332
+ """
333
+ return pulumi.get(self, "allow_writes")
334
+
335
+ @property
336
+ @pulumi.getter
337
+ def comment(self) -> pulumi.Output[Optional[str]]:
338
+ """
339
+ Specifies a comment for the external volume.
340
+ """
341
+ return pulumi.get(self, "comment")
342
+
343
+ @property
344
+ @pulumi.getter(name="describeOutputs")
345
+ def describe_outputs(self) -> pulumi.Output[Sequence['outputs.ExternalVolumeDescribeOutput']]:
346
+ """
347
+ Outputs the result of `DESCRIBE EXTERNAL VOLUME` for the given external volume.
348
+ """
349
+ return pulumi.get(self, "describe_outputs")
350
+
351
+ @property
352
+ @pulumi.getter(name="fullyQualifiedName")
353
+ def fully_qualified_name(self) -> pulumi.Output[str]:
354
+ """
355
+ Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
356
+ """
357
+ return pulumi.get(self, "fully_qualified_name")
358
+
359
+ @property
360
+ @pulumi.getter
361
+ def name(self) -> pulumi.Output[str]:
362
+ """
363
+ Identifier for the external volume; must be unique for your account. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
364
+ """
365
+ return pulumi.get(self, "name")
366
+
367
+ @property
368
+ @pulumi.getter(name="showOutputs")
369
+ def show_outputs(self) -> pulumi.Output[Sequence['outputs.ExternalVolumeShowOutput']]:
370
+ """
371
+ Outputs the result of `SHOW EXTERNAL VOLUMES` for the given external volume.
372
+ """
373
+ return pulumi.get(self, "show_outputs")
374
+
375
+ @property
376
+ @pulumi.getter(name="storageLocations")
377
+ def storage_locations(self) -> pulumi.Output[Sequence['outputs.ExternalVolumeStorageLocation']]:
378
+ """
379
+ List of named cloud storage locations in different regions and, optionally, cloud platforms. Minimum 1 required. The order of the list is important as it impacts the active storage location, and updates will be triggered if it changes. Note that not all parameter combinations are valid as they depend on the given storage*provider. Consult [the docs](https://docs.snowflake.com/en/sql-reference/sql/create-external-volume#cloud-provider-parameters-cloudproviderparams) for more details on this.
380
+ """
381
+ return pulumi.get(self, "storage_locations")
382
+