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

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

Potentially problematic release.


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

Files changed (182) hide show
  1. pulumi_snowflake/__init__.py +224 -172
  2. pulumi_snowflake/_inputs.py +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.0a1736835738.dist-info}/METADATA +7 -6
  144. pulumi_snowflake-1.2.0a1736835738.dist-info/RECORD +148 -0
  145. {pulumi_snowflake-0.50.3a1710160126.dist-info → pulumi_snowflake-1.2.0a1736835738.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.0a1736835738.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,622 @@
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__ = ['AuthenticationPolicyArgs', 'AuthenticationPolicy']
20
+
21
+ @pulumi.input_type
22
+ class AuthenticationPolicyArgs:
23
+ def __init__(__self__, *,
24
+ database: pulumi.Input[str],
25
+ schema: pulumi.Input[str],
26
+ authentication_methods: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
27
+ client_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
28
+ comment: Optional[pulumi.Input[str]] = None,
29
+ mfa_authentication_methods: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
30
+ mfa_enrollment: Optional[pulumi.Input[str]] = None,
31
+ name: Optional[pulumi.Input[str]] = None,
32
+ security_integrations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
33
+ """
34
+ The set of arguments for constructing a AuthenticationPolicy resource.
35
+ :param pulumi.Input[str] database: The database in which to create the authentication policy. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
36
+ :param pulumi.Input[str] schema: The schema in which to create the authentication policy. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
37
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] authentication_methods: A list of authentication methods that are allowed during login. This parameter accepts one or more of the following values: `ALL` | `SAML` | `PASSWORD` | `OAUTH` | `KEYPAIR`
38
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] client_types: A list of clients that can authenticate with Snowflake. If a client tries to connect, and the client is not one of the valid CLIENT*TYPES, then the login attempt fails. Allowed values are `ALL` | `SNOWFLAKE_UI` | `DRIVERS` | `SNOWSQL`. The CLIENT*TYPES property of an authentication policy is a best effort method to block user logins based on specific clients. It should not be used as the sole control to establish a security boundary.
39
+ :param pulumi.Input[str] comment: Specifies a comment for the authentication policy.
40
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] mfa_authentication_methods: A list of authentication methods that enforce multi-factor authentication (MFA) during login. Authentication methods not listed in this parameter do not prompt for multi-factor authentication. Allowed values are `ALL` | `SAML` | `PASSWORD`.
41
+ :param pulumi.Input[str] mfa_enrollment: Determines whether a user must enroll in multi-factor authentication. Allowed values are REQUIRED and OPTIONAL. When REQUIRED is specified, Enforces users to enroll in MFA. If this value is used, then the CLIENT*TYPES parameter must include SNOWFLAKE*UI, because Snowsight is the only place users can enroll in multi-factor authentication (MFA).
42
+ :param pulumi.Input[str] name: Specifies the identifier for the authentication policy. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
43
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] security_integrations: A list of security integrations the authentication policy is associated with. This parameter has no effect when SAML or OAUTH are not in the AUTHENTICATION*METHODS list. All values in the SECURITY*INTEGRATIONS list must be compatible with the values in the AUTHENTICATION*METHODS list. For example, if SECURITY*INTEGRATIONS contains a SAML security integration, and AUTHENTICATION_METHODS contains OAUTH, then you cannot create the authentication policy. To allow all security integrations use ALL as parameter.
44
+ """
45
+ pulumi.set(__self__, "database", database)
46
+ pulumi.set(__self__, "schema", schema)
47
+ if authentication_methods is not None:
48
+ pulumi.set(__self__, "authentication_methods", authentication_methods)
49
+ if client_types is not None:
50
+ pulumi.set(__self__, "client_types", client_types)
51
+ if comment is not None:
52
+ pulumi.set(__self__, "comment", comment)
53
+ if mfa_authentication_methods is not None:
54
+ pulumi.set(__self__, "mfa_authentication_methods", mfa_authentication_methods)
55
+ if mfa_enrollment is not None:
56
+ pulumi.set(__self__, "mfa_enrollment", mfa_enrollment)
57
+ if name is not None:
58
+ pulumi.set(__self__, "name", name)
59
+ if security_integrations is not None:
60
+ pulumi.set(__self__, "security_integrations", security_integrations)
61
+
62
+ @property
63
+ @pulumi.getter
64
+ def database(self) -> pulumi.Input[str]:
65
+ """
66
+ The database in which to create the authentication policy. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
67
+ """
68
+ return pulumi.get(self, "database")
69
+
70
+ @database.setter
71
+ def database(self, value: pulumi.Input[str]):
72
+ pulumi.set(self, "database", value)
73
+
74
+ @property
75
+ @pulumi.getter
76
+ def schema(self) -> pulumi.Input[str]:
77
+ """
78
+ The schema in which to create the authentication policy. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
79
+ """
80
+ return pulumi.get(self, "schema")
81
+
82
+ @schema.setter
83
+ def schema(self, value: pulumi.Input[str]):
84
+ pulumi.set(self, "schema", value)
85
+
86
+ @property
87
+ @pulumi.getter(name="authenticationMethods")
88
+ def authentication_methods(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
89
+ """
90
+ A list of authentication methods that are allowed during login. This parameter accepts one or more of the following values: `ALL` | `SAML` | `PASSWORD` | `OAUTH` | `KEYPAIR`
91
+ """
92
+ return pulumi.get(self, "authentication_methods")
93
+
94
+ @authentication_methods.setter
95
+ def authentication_methods(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
96
+ pulumi.set(self, "authentication_methods", value)
97
+
98
+ @property
99
+ @pulumi.getter(name="clientTypes")
100
+ def client_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
101
+ """
102
+ A list of clients that can authenticate with Snowflake. If a client tries to connect, and the client is not one of the valid CLIENT*TYPES, then the login attempt fails. Allowed values are `ALL` | `SNOWFLAKE_UI` | `DRIVERS` | `SNOWSQL`. The CLIENT*TYPES property of an authentication policy is a best effort method to block user logins based on specific clients. It should not be used as the sole control to establish a security boundary.
103
+ """
104
+ return pulumi.get(self, "client_types")
105
+
106
+ @client_types.setter
107
+ def client_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
108
+ pulumi.set(self, "client_types", value)
109
+
110
+ @property
111
+ @pulumi.getter
112
+ def comment(self) -> Optional[pulumi.Input[str]]:
113
+ """
114
+ Specifies a comment for the authentication policy.
115
+ """
116
+ return pulumi.get(self, "comment")
117
+
118
+ @comment.setter
119
+ def comment(self, value: Optional[pulumi.Input[str]]):
120
+ pulumi.set(self, "comment", value)
121
+
122
+ @property
123
+ @pulumi.getter(name="mfaAuthenticationMethods")
124
+ def mfa_authentication_methods(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
125
+ """
126
+ A list of authentication methods that enforce multi-factor authentication (MFA) during login. Authentication methods not listed in this parameter do not prompt for multi-factor authentication. Allowed values are `ALL` | `SAML` | `PASSWORD`.
127
+ """
128
+ return pulumi.get(self, "mfa_authentication_methods")
129
+
130
+ @mfa_authentication_methods.setter
131
+ def mfa_authentication_methods(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
132
+ pulumi.set(self, "mfa_authentication_methods", value)
133
+
134
+ @property
135
+ @pulumi.getter(name="mfaEnrollment")
136
+ def mfa_enrollment(self) -> Optional[pulumi.Input[str]]:
137
+ """
138
+ Determines whether a user must enroll in multi-factor authentication. Allowed values are REQUIRED and OPTIONAL. When REQUIRED is specified, Enforces users to enroll in MFA. If this value is used, then the CLIENT*TYPES parameter must include SNOWFLAKE*UI, because Snowsight is the only place users can enroll in multi-factor authentication (MFA).
139
+ """
140
+ return pulumi.get(self, "mfa_enrollment")
141
+
142
+ @mfa_enrollment.setter
143
+ def mfa_enrollment(self, value: Optional[pulumi.Input[str]]):
144
+ pulumi.set(self, "mfa_enrollment", value)
145
+
146
+ @property
147
+ @pulumi.getter
148
+ def name(self) -> Optional[pulumi.Input[str]]:
149
+ """
150
+ Specifies the identifier for the authentication policy. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
151
+ """
152
+ return pulumi.get(self, "name")
153
+
154
+ @name.setter
155
+ def name(self, value: Optional[pulumi.Input[str]]):
156
+ pulumi.set(self, "name", value)
157
+
158
+ @property
159
+ @pulumi.getter(name="securityIntegrations")
160
+ def security_integrations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
161
+ """
162
+ A list of security integrations the authentication policy is associated with. This parameter has no effect when SAML or OAUTH are not in the AUTHENTICATION*METHODS list. All values in the SECURITY*INTEGRATIONS list must be compatible with the values in the AUTHENTICATION*METHODS list. For example, if SECURITY*INTEGRATIONS contains a SAML security integration, and AUTHENTICATION_METHODS contains OAUTH, then you cannot create the authentication policy. To allow all security integrations use ALL as parameter.
163
+ """
164
+ return pulumi.get(self, "security_integrations")
165
+
166
+ @security_integrations.setter
167
+ def security_integrations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
168
+ pulumi.set(self, "security_integrations", value)
169
+
170
+
171
+ @pulumi.input_type
172
+ class _AuthenticationPolicyState:
173
+ def __init__(__self__, *,
174
+ authentication_methods: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
175
+ client_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
176
+ comment: Optional[pulumi.Input[str]] = None,
177
+ database: Optional[pulumi.Input[str]] = None,
178
+ describe_outputs: Optional[pulumi.Input[Sequence[pulumi.Input['AuthenticationPolicyDescribeOutputArgs']]]] = None,
179
+ fully_qualified_name: Optional[pulumi.Input[str]] = None,
180
+ mfa_authentication_methods: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
181
+ mfa_enrollment: Optional[pulumi.Input[str]] = None,
182
+ name: Optional[pulumi.Input[str]] = None,
183
+ schema: Optional[pulumi.Input[str]] = None,
184
+ security_integrations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
185
+ show_outputs: Optional[pulumi.Input[Sequence[pulumi.Input['AuthenticationPolicyShowOutputArgs']]]] = None):
186
+ """
187
+ Input properties used for looking up and filtering AuthenticationPolicy resources.
188
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] authentication_methods: A list of authentication methods that are allowed during login. This parameter accepts one or more of the following values: `ALL` | `SAML` | `PASSWORD` | `OAUTH` | `KEYPAIR`
189
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] client_types: A list of clients that can authenticate with Snowflake. If a client tries to connect, and the client is not one of the valid CLIENT*TYPES, then the login attempt fails. Allowed values are `ALL` | `SNOWFLAKE_UI` | `DRIVERS` | `SNOWSQL`. The CLIENT*TYPES property of an authentication policy is a best effort method to block user logins based on specific clients. It should not be used as the sole control to establish a security boundary.
190
+ :param pulumi.Input[str] comment: Specifies a comment for the authentication policy.
191
+ :param pulumi.Input[str] database: The database in which to create the authentication policy. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
192
+ :param pulumi.Input[Sequence[pulumi.Input['AuthenticationPolicyDescribeOutputArgs']]] describe_outputs: Outputs the result of `DESCRIBE AUTHENTICATION POLICY` for the given policy.
193
+ :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).
194
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] mfa_authentication_methods: A list of authentication methods that enforce multi-factor authentication (MFA) during login. Authentication methods not listed in this parameter do not prompt for multi-factor authentication. Allowed values are `ALL` | `SAML` | `PASSWORD`.
195
+ :param pulumi.Input[str] mfa_enrollment: Determines whether a user must enroll in multi-factor authentication. Allowed values are REQUIRED and OPTIONAL. When REQUIRED is specified, Enforces users to enroll in MFA. If this value is used, then the CLIENT*TYPES parameter must include SNOWFLAKE*UI, because Snowsight is the only place users can enroll in multi-factor authentication (MFA).
196
+ :param pulumi.Input[str] name: Specifies the identifier for the authentication policy. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
197
+ :param pulumi.Input[str] schema: The schema in which to create the authentication policy. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
198
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] security_integrations: A list of security integrations the authentication policy is associated with. This parameter has no effect when SAML or OAUTH are not in the AUTHENTICATION*METHODS list. All values in the SECURITY*INTEGRATIONS list must be compatible with the values in the AUTHENTICATION*METHODS list. For example, if SECURITY*INTEGRATIONS contains a SAML security integration, and AUTHENTICATION_METHODS contains OAUTH, then you cannot create the authentication policy. To allow all security integrations use ALL as parameter.
199
+ :param pulumi.Input[Sequence[pulumi.Input['AuthenticationPolicyShowOutputArgs']]] show_outputs: Outputs the result of `SHOW AUTHENTICATION POLICIES` for the given policy.
200
+ """
201
+ if authentication_methods is not None:
202
+ pulumi.set(__self__, "authentication_methods", authentication_methods)
203
+ if client_types is not None:
204
+ pulumi.set(__self__, "client_types", client_types)
205
+ if comment is not None:
206
+ pulumi.set(__self__, "comment", comment)
207
+ if database is not None:
208
+ pulumi.set(__self__, "database", database)
209
+ if describe_outputs is not None:
210
+ pulumi.set(__self__, "describe_outputs", describe_outputs)
211
+ if fully_qualified_name is not None:
212
+ pulumi.set(__self__, "fully_qualified_name", fully_qualified_name)
213
+ if mfa_authentication_methods is not None:
214
+ pulumi.set(__self__, "mfa_authentication_methods", mfa_authentication_methods)
215
+ if mfa_enrollment is not None:
216
+ pulumi.set(__self__, "mfa_enrollment", mfa_enrollment)
217
+ if name is not None:
218
+ pulumi.set(__self__, "name", name)
219
+ if schema is not None:
220
+ pulumi.set(__self__, "schema", schema)
221
+ if security_integrations is not None:
222
+ pulumi.set(__self__, "security_integrations", security_integrations)
223
+ if show_outputs is not None:
224
+ pulumi.set(__self__, "show_outputs", show_outputs)
225
+
226
+ @property
227
+ @pulumi.getter(name="authenticationMethods")
228
+ def authentication_methods(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
229
+ """
230
+ A list of authentication methods that are allowed during login. This parameter accepts one or more of the following values: `ALL` | `SAML` | `PASSWORD` | `OAUTH` | `KEYPAIR`
231
+ """
232
+ return pulumi.get(self, "authentication_methods")
233
+
234
+ @authentication_methods.setter
235
+ def authentication_methods(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
236
+ pulumi.set(self, "authentication_methods", value)
237
+
238
+ @property
239
+ @pulumi.getter(name="clientTypes")
240
+ def client_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
241
+ """
242
+ A list of clients that can authenticate with Snowflake. If a client tries to connect, and the client is not one of the valid CLIENT*TYPES, then the login attempt fails. Allowed values are `ALL` | `SNOWFLAKE_UI` | `DRIVERS` | `SNOWSQL`. The CLIENT*TYPES property of an authentication policy is a best effort method to block user logins based on specific clients. It should not be used as the sole control to establish a security boundary.
243
+ """
244
+ return pulumi.get(self, "client_types")
245
+
246
+ @client_types.setter
247
+ def client_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
248
+ pulumi.set(self, "client_types", value)
249
+
250
+ @property
251
+ @pulumi.getter
252
+ def comment(self) -> Optional[pulumi.Input[str]]:
253
+ """
254
+ Specifies a comment for the authentication policy.
255
+ """
256
+ return pulumi.get(self, "comment")
257
+
258
+ @comment.setter
259
+ def comment(self, value: Optional[pulumi.Input[str]]):
260
+ pulumi.set(self, "comment", value)
261
+
262
+ @property
263
+ @pulumi.getter
264
+ def database(self) -> Optional[pulumi.Input[str]]:
265
+ """
266
+ The database in which to create the authentication policy. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
267
+ """
268
+ return pulumi.get(self, "database")
269
+
270
+ @database.setter
271
+ def database(self, value: Optional[pulumi.Input[str]]):
272
+ pulumi.set(self, "database", value)
273
+
274
+ @property
275
+ @pulumi.getter(name="describeOutputs")
276
+ def describe_outputs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthenticationPolicyDescribeOutputArgs']]]]:
277
+ """
278
+ Outputs the result of `DESCRIBE AUTHENTICATION POLICY` for the given policy.
279
+ """
280
+ return pulumi.get(self, "describe_outputs")
281
+
282
+ @describe_outputs.setter
283
+ def describe_outputs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AuthenticationPolicyDescribeOutputArgs']]]]):
284
+ pulumi.set(self, "describe_outputs", value)
285
+
286
+ @property
287
+ @pulumi.getter(name="fullyQualifiedName")
288
+ def fully_qualified_name(self) -> Optional[pulumi.Input[str]]:
289
+ """
290
+ Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
291
+ """
292
+ return pulumi.get(self, "fully_qualified_name")
293
+
294
+ @fully_qualified_name.setter
295
+ def fully_qualified_name(self, value: Optional[pulumi.Input[str]]):
296
+ pulumi.set(self, "fully_qualified_name", value)
297
+
298
+ @property
299
+ @pulumi.getter(name="mfaAuthenticationMethods")
300
+ def mfa_authentication_methods(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
301
+ """
302
+ A list of authentication methods that enforce multi-factor authentication (MFA) during login. Authentication methods not listed in this parameter do not prompt for multi-factor authentication. Allowed values are `ALL` | `SAML` | `PASSWORD`.
303
+ """
304
+ return pulumi.get(self, "mfa_authentication_methods")
305
+
306
+ @mfa_authentication_methods.setter
307
+ def mfa_authentication_methods(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
308
+ pulumi.set(self, "mfa_authentication_methods", value)
309
+
310
+ @property
311
+ @pulumi.getter(name="mfaEnrollment")
312
+ def mfa_enrollment(self) -> Optional[pulumi.Input[str]]:
313
+ """
314
+ Determines whether a user must enroll in multi-factor authentication. Allowed values are REQUIRED and OPTIONAL. When REQUIRED is specified, Enforces users to enroll in MFA. If this value is used, then the CLIENT*TYPES parameter must include SNOWFLAKE*UI, because Snowsight is the only place users can enroll in multi-factor authentication (MFA).
315
+ """
316
+ return pulumi.get(self, "mfa_enrollment")
317
+
318
+ @mfa_enrollment.setter
319
+ def mfa_enrollment(self, value: Optional[pulumi.Input[str]]):
320
+ pulumi.set(self, "mfa_enrollment", value)
321
+
322
+ @property
323
+ @pulumi.getter
324
+ def name(self) -> Optional[pulumi.Input[str]]:
325
+ """
326
+ Specifies the identifier for the authentication policy. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
327
+ """
328
+ return pulumi.get(self, "name")
329
+
330
+ @name.setter
331
+ def name(self, value: Optional[pulumi.Input[str]]):
332
+ pulumi.set(self, "name", value)
333
+
334
+ @property
335
+ @pulumi.getter
336
+ def schema(self) -> Optional[pulumi.Input[str]]:
337
+ """
338
+ The schema in which to create the authentication policy. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
339
+ """
340
+ return pulumi.get(self, "schema")
341
+
342
+ @schema.setter
343
+ def schema(self, value: Optional[pulumi.Input[str]]):
344
+ pulumi.set(self, "schema", value)
345
+
346
+ @property
347
+ @pulumi.getter(name="securityIntegrations")
348
+ def security_integrations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
349
+ """
350
+ A list of security integrations the authentication policy is associated with. This parameter has no effect when SAML or OAUTH are not in the AUTHENTICATION*METHODS list. All values in the SECURITY*INTEGRATIONS list must be compatible with the values in the AUTHENTICATION*METHODS list. For example, if SECURITY*INTEGRATIONS contains a SAML security integration, and AUTHENTICATION_METHODS contains OAUTH, then you cannot create the authentication policy. To allow all security integrations use ALL as parameter.
351
+ """
352
+ return pulumi.get(self, "security_integrations")
353
+
354
+ @security_integrations.setter
355
+ def security_integrations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
356
+ pulumi.set(self, "security_integrations", value)
357
+
358
+ @property
359
+ @pulumi.getter(name="showOutputs")
360
+ def show_outputs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthenticationPolicyShowOutputArgs']]]]:
361
+ """
362
+ Outputs the result of `SHOW AUTHENTICATION POLICIES` for the given policy.
363
+ """
364
+ return pulumi.get(self, "show_outputs")
365
+
366
+ @show_outputs.setter
367
+ def show_outputs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AuthenticationPolicyShowOutputArgs']]]]):
368
+ pulumi.set(self, "show_outputs", value)
369
+
370
+
371
+ class AuthenticationPolicy(pulumi.CustomResource):
372
+ @overload
373
+ def __init__(__self__,
374
+ resource_name: str,
375
+ opts: Optional[pulumi.ResourceOptions] = None,
376
+ authentication_methods: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
377
+ client_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
378
+ comment: Optional[pulumi.Input[str]] = None,
379
+ database: Optional[pulumi.Input[str]] = None,
380
+ mfa_authentication_methods: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
381
+ mfa_enrollment: Optional[pulumi.Input[str]] = None,
382
+ name: Optional[pulumi.Input[str]] = None,
383
+ schema: Optional[pulumi.Input[str]] = None,
384
+ security_integrations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
385
+ __props__=None):
386
+ """
387
+ ## Import
388
+
389
+ ```sh
390
+ $ pulumi import snowflake:index/authenticationPolicy:AuthenticationPolicy example '"<database_name>"."<schema_name>"."<authentication_policy_name>"'
391
+ ```
392
+
393
+ :param str resource_name: The name of the resource.
394
+ :param pulumi.ResourceOptions opts: Options for the resource.
395
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] authentication_methods: A list of authentication methods that are allowed during login. This parameter accepts one or more of the following values: `ALL` | `SAML` | `PASSWORD` | `OAUTH` | `KEYPAIR`
396
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] client_types: A list of clients that can authenticate with Snowflake. If a client tries to connect, and the client is not one of the valid CLIENT*TYPES, then the login attempt fails. Allowed values are `ALL` | `SNOWFLAKE_UI` | `DRIVERS` | `SNOWSQL`. The CLIENT*TYPES property of an authentication policy is a best effort method to block user logins based on specific clients. It should not be used as the sole control to establish a security boundary.
397
+ :param pulumi.Input[str] comment: Specifies a comment for the authentication policy.
398
+ :param pulumi.Input[str] database: The database in which to create the authentication policy. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
399
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] mfa_authentication_methods: A list of authentication methods that enforce multi-factor authentication (MFA) during login. Authentication methods not listed in this parameter do not prompt for multi-factor authentication. Allowed values are `ALL` | `SAML` | `PASSWORD`.
400
+ :param pulumi.Input[str] mfa_enrollment: Determines whether a user must enroll in multi-factor authentication. Allowed values are REQUIRED and OPTIONAL. When REQUIRED is specified, Enforces users to enroll in MFA. If this value is used, then the CLIENT*TYPES parameter must include SNOWFLAKE*UI, because Snowsight is the only place users can enroll in multi-factor authentication (MFA).
401
+ :param pulumi.Input[str] name: Specifies the identifier for the authentication policy. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
402
+ :param pulumi.Input[str] schema: The schema in which to create the authentication policy. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
403
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] security_integrations: A list of security integrations the authentication policy is associated with. This parameter has no effect when SAML or OAUTH are not in the AUTHENTICATION*METHODS list. All values in the SECURITY*INTEGRATIONS list must be compatible with the values in the AUTHENTICATION*METHODS list. For example, if SECURITY*INTEGRATIONS contains a SAML security integration, and AUTHENTICATION_METHODS contains OAUTH, then you cannot create the authentication policy. To allow all security integrations use ALL as parameter.
404
+ """
405
+ ...
406
+ @overload
407
+ def __init__(__self__,
408
+ resource_name: str,
409
+ args: AuthenticationPolicyArgs,
410
+ opts: Optional[pulumi.ResourceOptions] = None):
411
+ """
412
+ ## Import
413
+
414
+ ```sh
415
+ $ pulumi import snowflake:index/authenticationPolicy:AuthenticationPolicy example '"<database_name>"."<schema_name>"."<authentication_policy_name>"'
416
+ ```
417
+
418
+ :param str resource_name: The name of the resource.
419
+ :param AuthenticationPolicyArgs args: The arguments to use to populate this resource's properties.
420
+ :param pulumi.ResourceOptions opts: Options for the resource.
421
+ """
422
+ ...
423
+ def __init__(__self__, resource_name: str, *args, **kwargs):
424
+ resource_args, opts = _utilities.get_resource_args_opts(AuthenticationPolicyArgs, pulumi.ResourceOptions, *args, **kwargs)
425
+ if resource_args is not None:
426
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
427
+ else:
428
+ __self__._internal_init(resource_name, *args, **kwargs)
429
+
430
+ def _internal_init(__self__,
431
+ resource_name: str,
432
+ opts: Optional[pulumi.ResourceOptions] = None,
433
+ authentication_methods: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
434
+ client_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
435
+ comment: Optional[pulumi.Input[str]] = None,
436
+ database: Optional[pulumi.Input[str]] = None,
437
+ mfa_authentication_methods: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
438
+ mfa_enrollment: Optional[pulumi.Input[str]] = None,
439
+ name: Optional[pulumi.Input[str]] = None,
440
+ schema: Optional[pulumi.Input[str]] = None,
441
+ security_integrations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
442
+ __props__=None):
443
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
444
+ if not isinstance(opts, pulumi.ResourceOptions):
445
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
446
+ if opts.id is None:
447
+ if __props__ is not None:
448
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
449
+ __props__ = AuthenticationPolicyArgs.__new__(AuthenticationPolicyArgs)
450
+
451
+ __props__.__dict__["authentication_methods"] = authentication_methods
452
+ __props__.__dict__["client_types"] = client_types
453
+ __props__.__dict__["comment"] = comment
454
+ if database is None and not opts.urn:
455
+ raise TypeError("Missing required property 'database'")
456
+ __props__.__dict__["database"] = database
457
+ __props__.__dict__["mfa_authentication_methods"] = mfa_authentication_methods
458
+ __props__.__dict__["mfa_enrollment"] = mfa_enrollment
459
+ __props__.__dict__["name"] = name
460
+ if schema is None and not opts.urn:
461
+ raise TypeError("Missing required property 'schema'")
462
+ __props__.__dict__["schema"] = schema
463
+ __props__.__dict__["security_integrations"] = security_integrations
464
+ __props__.__dict__["describe_outputs"] = None
465
+ __props__.__dict__["fully_qualified_name"] = None
466
+ __props__.__dict__["show_outputs"] = None
467
+ super(AuthenticationPolicy, __self__).__init__(
468
+ 'snowflake:index/authenticationPolicy:AuthenticationPolicy',
469
+ resource_name,
470
+ __props__,
471
+ opts)
472
+
473
+ @staticmethod
474
+ def get(resource_name: str,
475
+ id: pulumi.Input[str],
476
+ opts: Optional[pulumi.ResourceOptions] = None,
477
+ authentication_methods: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
478
+ client_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
479
+ comment: Optional[pulumi.Input[str]] = None,
480
+ database: Optional[pulumi.Input[str]] = None,
481
+ describe_outputs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['AuthenticationPolicyDescribeOutputArgs', 'AuthenticationPolicyDescribeOutputArgsDict']]]]] = None,
482
+ fully_qualified_name: Optional[pulumi.Input[str]] = None,
483
+ mfa_authentication_methods: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
484
+ mfa_enrollment: Optional[pulumi.Input[str]] = None,
485
+ name: Optional[pulumi.Input[str]] = None,
486
+ schema: Optional[pulumi.Input[str]] = None,
487
+ security_integrations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
488
+ show_outputs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['AuthenticationPolicyShowOutputArgs', 'AuthenticationPolicyShowOutputArgsDict']]]]] = None) -> 'AuthenticationPolicy':
489
+ """
490
+ Get an existing AuthenticationPolicy resource's state with the given name, id, and optional extra
491
+ properties used to qualify the lookup.
492
+
493
+ :param str resource_name: The unique name of the resulting resource.
494
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
495
+ :param pulumi.ResourceOptions opts: Options for the resource.
496
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] authentication_methods: A list of authentication methods that are allowed during login. This parameter accepts one or more of the following values: `ALL` | `SAML` | `PASSWORD` | `OAUTH` | `KEYPAIR`
497
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] client_types: A list of clients that can authenticate with Snowflake. If a client tries to connect, and the client is not one of the valid CLIENT*TYPES, then the login attempt fails. Allowed values are `ALL` | `SNOWFLAKE_UI` | `DRIVERS` | `SNOWSQL`. The CLIENT*TYPES property of an authentication policy is a best effort method to block user logins based on specific clients. It should not be used as the sole control to establish a security boundary.
498
+ :param pulumi.Input[str] comment: Specifies a comment for the authentication policy.
499
+ :param pulumi.Input[str] database: The database in which to create the authentication policy. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
500
+ :param pulumi.Input[Sequence[pulumi.Input[Union['AuthenticationPolicyDescribeOutputArgs', 'AuthenticationPolicyDescribeOutputArgsDict']]]] describe_outputs: Outputs the result of `DESCRIBE AUTHENTICATION POLICY` for the given policy.
501
+ :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).
502
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] mfa_authentication_methods: A list of authentication methods that enforce multi-factor authentication (MFA) during login. Authentication methods not listed in this parameter do not prompt for multi-factor authentication. Allowed values are `ALL` | `SAML` | `PASSWORD`.
503
+ :param pulumi.Input[str] mfa_enrollment: Determines whether a user must enroll in multi-factor authentication. Allowed values are REQUIRED and OPTIONAL. When REQUIRED is specified, Enforces users to enroll in MFA. If this value is used, then the CLIENT*TYPES parameter must include SNOWFLAKE*UI, because Snowsight is the only place users can enroll in multi-factor authentication (MFA).
504
+ :param pulumi.Input[str] name: Specifies the identifier for the authentication policy. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
505
+ :param pulumi.Input[str] schema: The schema in which to create the authentication policy. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
506
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] security_integrations: A list of security integrations the authentication policy is associated with. This parameter has no effect when SAML or OAUTH are not in the AUTHENTICATION*METHODS list. All values in the SECURITY*INTEGRATIONS list must be compatible with the values in the AUTHENTICATION*METHODS list. For example, if SECURITY*INTEGRATIONS contains a SAML security integration, and AUTHENTICATION_METHODS contains OAUTH, then you cannot create the authentication policy. To allow all security integrations use ALL as parameter.
507
+ :param pulumi.Input[Sequence[pulumi.Input[Union['AuthenticationPolicyShowOutputArgs', 'AuthenticationPolicyShowOutputArgsDict']]]] show_outputs: Outputs the result of `SHOW AUTHENTICATION POLICIES` for the given policy.
508
+ """
509
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
510
+
511
+ __props__ = _AuthenticationPolicyState.__new__(_AuthenticationPolicyState)
512
+
513
+ __props__.__dict__["authentication_methods"] = authentication_methods
514
+ __props__.__dict__["client_types"] = client_types
515
+ __props__.__dict__["comment"] = comment
516
+ __props__.__dict__["database"] = database
517
+ __props__.__dict__["describe_outputs"] = describe_outputs
518
+ __props__.__dict__["fully_qualified_name"] = fully_qualified_name
519
+ __props__.__dict__["mfa_authentication_methods"] = mfa_authentication_methods
520
+ __props__.__dict__["mfa_enrollment"] = mfa_enrollment
521
+ __props__.__dict__["name"] = name
522
+ __props__.__dict__["schema"] = schema
523
+ __props__.__dict__["security_integrations"] = security_integrations
524
+ __props__.__dict__["show_outputs"] = show_outputs
525
+ return AuthenticationPolicy(resource_name, opts=opts, __props__=__props__)
526
+
527
+ @property
528
+ @pulumi.getter(name="authenticationMethods")
529
+ def authentication_methods(self) -> pulumi.Output[Optional[Sequence[str]]]:
530
+ """
531
+ A list of authentication methods that are allowed during login. This parameter accepts one or more of the following values: `ALL` | `SAML` | `PASSWORD` | `OAUTH` | `KEYPAIR`
532
+ """
533
+ return pulumi.get(self, "authentication_methods")
534
+
535
+ @property
536
+ @pulumi.getter(name="clientTypes")
537
+ def client_types(self) -> pulumi.Output[Optional[Sequence[str]]]:
538
+ """
539
+ A list of clients that can authenticate with Snowflake. If a client tries to connect, and the client is not one of the valid CLIENT*TYPES, then the login attempt fails. Allowed values are `ALL` | `SNOWFLAKE_UI` | `DRIVERS` | `SNOWSQL`. The CLIENT*TYPES property of an authentication policy is a best effort method to block user logins based on specific clients. It should not be used as the sole control to establish a security boundary.
540
+ """
541
+ return pulumi.get(self, "client_types")
542
+
543
+ @property
544
+ @pulumi.getter
545
+ def comment(self) -> pulumi.Output[Optional[str]]:
546
+ """
547
+ Specifies a comment for the authentication policy.
548
+ """
549
+ return pulumi.get(self, "comment")
550
+
551
+ @property
552
+ @pulumi.getter
553
+ def database(self) -> pulumi.Output[str]:
554
+ """
555
+ The database in which to create the authentication policy. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
556
+ """
557
+ return pulumi.get(self, "database")
558
+
559
+ @property
560
+ @pulumi.getter(name="describeOutputs")
561
+ def describe_outputs(self) -> pulumi.Output[Sequence['outputs.AuthenticationPolicyDescribeOutput']]:
562
+ """
563
+ Outputs the result of `DESCRIBE AUTHENTICATION POLICY` for the given policy.
564
+ """
565
+ return pulumi.get(self, "describe_outputs")
566
+
567
+ @property
568
+ @pulumi.getter(name="fullyQualifiedName")
569
+ def fully_qualified_name(self) -> pulumi.Output[str]:
570
+ """
571
+ Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
572
+ """
573
+ return pulumi.get(self, "fully_qualified_name")
574
+
575
+ @property
576
+ @pulumi.getter(name="mfaAuthenticationMethods")
577
+ def mfa_authentication_methods(self) -> pulumi.Output[Optional[Sequence[str]]]:
578
+ """
579
+ A list of authentication methods that enforce multi-factor authentication (MFA) during login. Authentication methods not listed in this parameter do not prompt for multi-factor authentication. Allowed values are `ALL` | `SAML` | `PASSWORD`.
580
+ """
581
+ return pulumi.get(self, "mfa_authentication_methods")
582
+
583
+ @property
584
+ @pulumi.getter(name="mfaEnrollment")
585
+ def mfa_enrollment(self) -> pulumi.Output[Optional[str]]:
586
+ """
587
+ Determines whether a user must enroll in multi-factor authentication. Allowed values are REQUIRED and OPTIONAL. When REQUIRED is specified, Enforces users to enroll in MFA. If this value is used, then the CLIENT*TYPES parameter must include SNOWFLAKE*UI, because Snowsight is the only place users can enroll in multi-factor authentication (MFA).
588
+ """
589
+ return pulumi.get(self, "mfa_enrollment")
590
+
591
+ @property
592
+ @pulumi.getter
593
+ def name(self) -> pulumi.Output[str]:
594
+ """
595
+ Specifies the identifier for the authentication policy. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
596
+ """
597
+ return pulumi.get(self, "name")
598
+
599
+ @property
600
+ @pulumi.getter
601
+ def schema(self) -> pulumi.Output[str]:
602
+ """
603
+ The schema in which to create the authentication policy. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
604
+ """
605
+ return pulumi.get(self, "schema")
606
+
607
+ @property
608
+ @pulumi.getter(name="securityIntegrations")
609
+ def security_integrations(self) -> pulumi.Output[Optional[Sequence[str]]]:
610
+ """
611
+ A list of security integrations the authentication policy is associated with. This parameter has no effect when SAML or OAUTH are not in the AUTHENTICATION*METHODS list. All values in the SECURITY*INTEGRATIONS list must be compatible with the values in the AUTHENTICATION*METHODS list. For example, if SECURITY*INTEGRATIONS contains a SAML security integration, and AUTHENTICATION_METHODS contains OAUTH, then you cannot create the authentication policy. To allow all security integrations use ALL as parameter.
612
+ """
613
+ return pulumi.get(self, "security_integrations")
614
+
615
+ @property
616
+ @pulumi.getter(name="showOutputs")
617
+ def show_outputs(self) -> pulumi.Output[Sequence['outputs.AuthenticationPolicyShowOutput']]:
618
+ """
619
+ Outputs the result of `SHOW AUTHENTICATION POLICIES` for the given policy.
620
+ """
621
+ return pulumi.get(self, "show_outputs")
622
+