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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. pulumi_snowflake/__init__.py +78 -209
  2. pulumi_snowflake/_inputs.py +12188 -1362
  3. pulumi_snowflake/_utilities.py +2 -0
  4. pulumi_snowflake/account_role.py +226 -0
  5. pulumi_snowflake/api_authentication_integration_with_authorization_code_grant.py +692 -0
  6. pulumi_snowflake/api_authentication_integration_with_client_credentials.py +645 -0
  7. pulumi_snowflake/api_authentication_integration_with_jwt_bearer.py +680 -0
  8. pulumi_snowflake/cortex_search_service.py +563 -0
  9. pulumi_snowflake/database.py +854 -232
  10. pulumi_snowflake/database_old.py +556 -0
  11. pulumi_snowflake/external_oauth_integration.py +562 -534
  12. pulumi_snowflake/failover_group.py +2 -2
  13. pulumi_snowflake/get_cortex_search_services.py +197 -0
  14. pulumi_snowflake/get_databases.py +71 -62
  15. pulumi_snowflake/get_network_policies.py +122 -0
  16. pulumi_snowflake/get_roles.py +37 -31
  17. pulumi_snowflake/get_schemas.py +115 -38
  18. pulumi_snowflake/get_security_integrations.py +122 -0
  19. pulumi_snowflake/get_streamlits.py +159 -0
  20. pulumi_snowflake/get_warehouses.py +66 -18
  21. pulumi_snowflake/grant_privileges_to_database_role.py +0 -4
  22. pulumi_snowflake/managed_account.py +7 -7
  23. pulumi_snowflake/network_policy.py +103 -19
  24. pulumi_snowflake/oauth_integration.py +4 -0
  25. pulumi_snowflake/oauth_integration_for_custom_clients.py +940 -0
  26. pulumi_snowflake/oauth_integration_for_partner_applications.py +584 -0
  27. pulumi_snowflake/outputs.py +16178 -2927
  28. pulumi_snowflake/pulumi-plugin.json +1 -1
  29. pulumi_snowflake/role.py +44 -72
  30. pulumi_snowflake/saml2_integration.py +975 -0
  31. pulumi_snowflake/saml_integration.py +4 -0
  32. pulumi_snowflake/schema.py +905 -151
  33. pulumi_snowflake/scim_integration.py +257 -103
  34. pulumi_snowflake/secondary_database.py +1059 -0
  35. pulumi_snowflake/sequence.py +6 -6
  36. pulumi_snowflake/shared_database.py +914 -0
  37. pulumi_snowflake/streamlit.py +650 -0
  38. pulumi_snowflake/table.py +0 -120
  39. pulumi_snowflake/table_constraint.py +2 -2
  40. pulumi_snowflake/tag_association.py +38 -38
  41. pulumi_snowflake/unsafe_execute.py +8 -8
  42. pulumi_snowflake/user_password_policy_attachment.py +32 -0
  43. pulumi_snowflake/warehouse.py +143 -120
  44. {pulumi_snowflake-0.56.0a1721327760.dist-info → pulumi_snowflake-0.57.0.dist-info}/METADATA +1 -1
  45. {pulumi_snowflake-0.56.0a1721327760.dist-info → pulumi_snowflake-0.57.0.dist-info}/RECORD +47 -58
  46. {pulumi_snowflake-0.56.0a1721327760.dist-info → pulumi_snowflake-0.57.0.dist-info}/WHEEL +1 -1
  47. pulumi_snowflake/account_grant.py +0 -319
  48. pulumi_snowflake/database_grant.py +0 -471
  49. pulumi_snowflake/external_table_grant.py +0 -666
  50. pulumi_snowflake/failover_group_grant.py +0 -368
  51. pulumi_snowflake/file_format_grant.py +0 -611
  52. pulumi_snowflake/function_grant.py +0 -721
  53. pulumi_snowflake/grant_privileges_to_role.py +0 -821
  54. pulumi_snowflake/integration_grant.py +0 -416
  55. pulumi_snowflake/masking_policy_grant.py +0 -518
  56. pulumi_snowflake/materialized_view_grant.py +0 -665
  57. pulumi_snowflake/pipe_grant.py +0 -563
  58. pulumi_snowflake/procedure_grant.py +0 -721
  59. pulumi_snowflake/resource_monitor_grant.py +0 -363
  60. pulumi_snowflake/role_grants.py +0 -340
  61. pulumi_snowflake/role_ownership_grant.py +0 -329
  62. pulumi_snowflake/row_access_policy_grant.py +0 -516
  63. pulumi_snowflake/schema_grant.py +0 -603
  64. pulumi_snowflake/sequence_grant.py +0 -611
  65. pulumi_snowflake/stage_grant.py +0 -611
  66. pulumi_snowflake/stream_grant.py +0 -611
  67. pulumi_snowflake/table_grant.py +0 -653
  68. pulumi_snowflake/tag_grant.py +0 -508
  69. pulumi_snowflake/task_grant.py +0 -611
  70. pulumi_snowflake/user_grant.py +0 -370
  71. pulumi_snowflake/user_ownership_grant.py +0 -275
  72. pulumi_snowflake/view_grant.py +0 -685
  73. pulumi_snowflake/warehouse_grant.py +0 -416
  74. {pulumi_snowflake-0.56.0a1721327760.dist-info → pulumi_snowflake-0.57.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,940 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import pulumi
8
+ import pulumi.runtime
9
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
10
+ from . import _utilities
11
+ from . import outputs
12
+ from ._inputs import *
13
+
14
+ __all__ = ['OauthIntegrationForCustomClientsArgs', 'OauthIntegrationForCustomClients']
15
+
16
+ @pulumi.input_type
17
+ class OauthIntegrationForCustomClientsArgs:
18
+ def __init__(__self__, *,
19
+ blocked_roles_lists: pulumi.Input[Sequence[pulumi.Input[str]]],
20
+ oauth_client_type: pulumi.Input[str],
21
+ oauth_redirect_uri: pulumi.Input[str],
22
+ comment: Optional[pulumi.Input[str]] = None,
23
+ enabled: Optional[pulumi.Input[str]] = None,
24
+ name: Optional[pulumi.Input[str]] = None,
25
+ network_policy: Optional[pulumi.Input[str]] = None,
26
+ oauth_allow_non_tls_redirect_uri: Optional[pulumi.Input[str]] = None,
27
+ oauth_client_rsa_public_key: Optional[pulumi.Input[str]] = None,
28
+ oauth_client_rsa_public_key2: Optional[pulumi.Input[str]] = None,
29
+ oauth_enforce_pkce: Optional[pulumi.Input[str]] = None,
30
+ oauth_issue_refresh_tokens: Optional[pulumi.Input[str]] = None,
31
+ oauth_refresh_token_validity: Optional[pulumi.Input[int]] = None,
32
+ oauth_use_secondary_roles: Optional[pulumi.Input[str]] = None,
33
+ pre_authorized_roles_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
34
+ """
35
+ The set of arguments for constructing a OauthIntegrationForCustomClients resource.
36
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] blocked_roles_lists: A set of Snowflake roles that a user cannot explicitly consent to using after authenticating.
37
+ :param pulumi.Input[str] oauth_client_type: Specifies the type of client being registered. Snowflake supports both confidential and public clients. Valid options are: `PUBLIC` | `CONFIDENTIAL`.
38
+ :param pulumi.Input[str] oauth_redirect_uri: Specifies the client URI. After a user is authenticated, the web browser is redirected to this URI.
39
+ :param pulumi.Input[str] comment: Specifies a comment for the OAuth integration.
40
+ :param pulumi.Input[str] enabled: Specifies whether this OAuth integration is enabled or disabled. 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[str] name: Specifies the name of the OAuth integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account.
42
+ :param pulumi.Input[str] network_policy: Specifies an existing network policy. This network policy controls network traffic that is attempting to exchange an authorization code for an access or refresh token or to use a refresh token to obtain a new access token.
43
+ :param pulumi.Input[str] oauth_allow_non_tls_redirect_uri: If true, allows setting oauth*redirect*uri to a URI not protected by TLS. 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.
44
+ :param pulumi.Input[str] oauth_enforce_pkce: Boolean that specifies whether Proof Key for Code Exchange (PKCE) should be required for the integration. 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.
45
+ :param pulumi.Input[str] oauth_issue_refresh_tokens: Specifies whether to allow the client to exchange a refresh token for an access token when the current access token has expired. 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.
46
+ :param pulumi.Input[int] oauth_refresh_token_validity: Specifies how long refresh tokens should be valid (in seconds). OAUTH*ISSUE*REFRESH_TOKENS must be set to TRUE.
47
+ :param pulumi.Input[str] oauth_use_secondary_roles: Specifies whether default secondary roles set in the user properties are activated by default in the session being opened. Valid options are: `IMPLICIT` | `NONE`.
48
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] pre_authorized_roles_lists: A set of Snowflake roles that a user does not need to explicitly consent to using after authenticating.
49
+ """
50
+ pulumi.set(__self__, "blocked_roles_lists", blocked_roles_lists)
51
+ pulumi.set(__self__, "oauth_client_type", oauth_client_type)
52
+ pulumi.set(__self__, "oauth_redirect_uri", oauth_redirect_uri)
53
+ if comment is not None:
54
+ pulumi.set(__self__, "comment", comment)
55
+ if enabled is not None:
56
+ pulumi.set(__self__, "enabled", enabled)
57
+ if name is not None:
58
+ pulumi.set(__self__, "name", name)
59
+ if network_policy is not None:
60
+ pulumi.set(__self__, "network_policy", network_policy)
61
+ if oauth_allow_non_tls_redirect_uri is not None:
62
+ pulumi.set(__self__, "oauth_allow_non_tls_redirect_uri", oauth_allow_non_tls_redirect_uri)
63
+ if oauth_client_rsa_public_key is not None:
64
+ pulumi.set(__self__, "oauth_client_rsa_public_key", oauth_client_rsa_public_key)
65
+ if oauth_client_rsa_public_key2 is not None:
66
+ pulumi.set(__self__, "oauth_client_rsa_public_key2", oauth_client_rsa_public_key2)
67
+ if oauth_enforce_pkce is not None:
68
+ pulumi.set(__self__, "oauth_enforce_pkce", oauth_enforce_pkce)
69
+ if oauth_issue_refresh_tokens is not None:
70
+ pulumi.set(__self__, "oauth_issue_refresh_tokens", oauth_issue_refresh_tokens)
71
+ if oauth_refresh_token_validity is not None:
72
+ pulumi.set(__self__, "oauth_refresh_token_validity", oauth_refresh_token_validity)
73
+ if oauth_use_secondary_roles is not None:
74
+ pulumi.set(__self__, "oauth_use_secondary_roles", oauth_use_secondary_roles)
75
+ if pre_authorized_roles_lists is not None:
76
+ pulumi.set(__self__, "pre_authorized_roles_lists", pre_authorized_roles_lists)
77
+
78
+ @property
79
+ @pulumi.getter(name="blockedRolesLists")
80
+ def blocked_roles_lists(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
81
+ """
82
+ A set of Snowflake roles that a user cannot explicitly consent to using after authenticating.
83
+ """
84
+ return pulumi.get(self, "blocked_roles_lists")
85
+
86
+ @blocked_roles_lists.setter
87
+ def blocked_roles_lists(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
88
+ pulumi.set(self, "blocked_roles_lists", value)
89
+
90
+ @property
91
+ @pulumi.getter(name="oauthClientType")
92
+ def oauth_client_type(self) -> pulumi.Input[str]:
93
+ """
94
+ Specifies the type of client being registered. Snowflake supports both confidential and public clients. Valid options are: `PUBLIC` | `CONFIDENTIAL`.
95
+ """
96
+ return pulumi.get(self, "oauth_client_type")
97
+
98
+ @oauth_client_type.setter
99
+ def oauth_client_type(self, value: pulumi.Input[str]):
100
+ pulumi.set(self, "oauth_client_type", value)
101
+
102
+ @property
103
+ @pulumi.getter(name="oauthRedirectUri")
104
+ def oauth_redirect_uri(self) -> pulumi.Input[str]:
105
+ """
106
+ Specifies the client URI. After a user is authenticated, the web browser is redirected to this URI.
107
+ """
108
+ return pulumi.get(self, "oauth_redirect_uri")
109
+
110
+ @oauth_redirect_uri.setter
111
+ def oauth_redirect_uri(self, value: pulumi.Input[str]):
112
+ pulumi.set(self, "oauth_redirect_uri", value)
113
+
114
+ @property
115
+ @pulumi.getter
116
+ def comment(self) -> Optional[pulumi.Input[str]]:
117
+ """
118
+ Specifies a comment for the OAuth integration.
119
+ """
120
+ return pulumi.get(self, "comment")
121
+
122
+ @comment.setter
123
+ def comment(self, value: Optional[pulumi.Input[str]]):
124
+ pulumi.set(self, "comment", value)
125
+
126
+ @property
127
+ @pulumi.getter
128
+ def enabled(self) -> Optional[pulumi.Input[str]]:
129
+ """
130
+ Specifies whether this OAuth integration is enabled or disabled. 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, "enabled")
133
+
134
+ @enabled.setter
135
+ def enabled(self, value: Optional[pulumi.Input[str]]):
136
+ pulumi.set(self, "enabled", value)
137
+
138
+ @property
139
+ @pulumi.getter
140
+ def name(self) -> Optional[pulumi.Input[str]]:
141
+ """
142
+ Specifies the name of the OAuth integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account.
143
+ """
144
+ return pulumi.get(self, "name")
145
+
146
+ @name.setter
147
+ def name(self, value: Optional[pulumi.Input[str]]):
148
+ pulumi.set(self, "name", value)
149
+
150
+ @property
151
+ @pulumi.getter(name="networkPolicy")
152
+ def network_policy(self) -> Optional[pulumi.Input[str]]:
153
+ """
154
+ Specifies an existing network policy. This network policy controls network traffic that is attempting to exchange an authorization code for an access or refresh token or to use a refresh token to obtain a new access token.
155
+ """
156
+ return pulumi.get(self, "network_policy")
157
+
158
+ @network_policy.setter
159
+ def network_policy(self, value: Optional[pulumi.Input[str]]):
160
+ pulumi.set(self, "network_policy", value)
161
+
162
+ @property
163
+ @pulumi.getter(name="oauthAllowNonTlsRedirectUri")
164
+ def oauth_allow_non_tls_redirect_uri(self) -> Optional[pulumi.Input[str]]:
165
+ """
166
+ If true, allows setting oauth*redirect*uri to a URI not protected by TLS. 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.
167
+ """
168
+ return pulumi.get(self, "oauth_allow_non_tls_redirect_uri")
169
+
170
+ @oauth_allow_non_tls_redirect_uri.setter
171
+ def oauth_allow_non_tls_redirect_uri(self, value: Optional[pulumi.Input[str]]):
172
+ pulumi.set(self, "oauth_allow_non_tls_redirect_uri", value)
173
+
174
+ @property
175
+ @pulumi.getter(name="oauthClientRsaPublicKey")
176
+ def oauth_client_rsa_public_key(self) -> Optional[pulumi.Input[str]]:
177
+ return pulumi.get(self, "oauth_client_rsa_public_key")
178
+
179
+ @oauth_client_rsa_public_key.setter
180
+ def oauth_client_rsa_public_key(self, value: Optional[pulumi.Input[str]]):
181
+ pulumi.set(self, "oauth_client_rsa_public_key", value)
182
+
183
+ @property
184
+ @pulumi.getter(name="oauthClientRsaPublicKey2")
185
+ def oauth_client_rsa_public_key2(self) -> Optional[pulumi.Input[str]]:
186
+ return pulumi.get(self, "oauth_client_rsa_public_key2")
187
+
188
+ @oauth_client_rsa_public_key2.setter
189
+ def oauth_client_rsa_public_key2(self, value: Optional[pulumi.Input[str]]):
190
+ pulumi.set(self, "oauth_client_rsa_public_key2", value)
191
+
192
+ @property
193
+ @pulumi.getter(name="oauthEnforcePkce")
194
+ def oauth_enforce_pkce(self) -> Optional[pulumi.Input[str]]:
195
+ """
196
+ Boolean that specifies whether Proof Key for Code Exchange (PKCE) should be required for the integration. 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.
197
+ """
198
+ return pulumi.get(self, "oauth_enforce_pkce")
199
+
200
+ @oauth_enforce_pkce.setter
201
+ def oauth_enforce_pkce(self, value: Optional[pulumi.Input[str]]):
202
+ pulumi.set(self, "oauth_enforce_pkce", value)
203
+
204
+ @property
205
+ @pulumi.getter(name="oauthIssueRefreshTokens")
206
+ def oauth_issue_refresh_tokens(self) -> Optional[pulumi.Input[str]]:
207
+ """
208
+ Specifies whether to allow the client to exchange a refresh token for an access token when the current access token has expired. 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.
209
+ """
210
+ return pulumi.get(self, "oauth_issue_refresh_tokens")
211
+
212
+ @oauth_issue_refresh_tokens.setter
213
+ def oauth_issue_refresh_tokens(self, value: Optional[pulumi.Input[str]]):
214
+ pulumi.set(self, "oauth_issue_refresh_tokens", value)
215
+
216
+ @property
217
+ @pulumi.getter(name="oauthRefreshTokenValidity")
218
+ def oauth_refresh_token_validity(self) -> Optional[pulumi.Input[int]]:
219
+ """
220
+ Specifies how long refresh tokens should be valid (in seconds). OAUTH*ISSUE*REFRESH_TOKENS must be set to TRUE.
221
+ """
222
+ return pulumi.get(self, "oauth_refresh_token_validity")
223
+
224
+ @oauth_refresh_token_validity.setter
225
+ def oauth_refresh_token_validity(self, value: Optional[pulumi.Input[int]]):
226
+ pulumi.set(self, "oauth_refresh_token_validity", value)
227
+
228
+ @property
229
+ @pulumi.getter(name="oauthUseSecondaryRoles")
230
+ def oauth_use_secondary_roles(self) -> Optional[pulumi.Input[str]]:
231
+ """
232
+ Specifies whether default secondary roles set in the user properties are activated by default in the session being opened. Valid options are: `IMPLICIT` | `NONE`.
233
+ """
234
+ return pulumi.get(self, "oauth_use_secondary_roles")
235
+
236
+ @oauth_use_secondary_roles.setter
237
+ def oauth_use_secondary_roles(self, value: Optional[pulumi.Input[str]]):
238
+ pulumi.set(self, "oauth_use_secondary_roles", value)
239
+
240
+ @property
241
+ @pulumi.getter(name="preAuthorizedRolesLists")
242
+ def pre_authorized_roles_lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
243
+ """
244
+ A set of Snowflake roles that a user does not need to explicitly consent to using after authenticating.
245
+ """
246
+ return pulumi.get(self, "pre_authorized_roles_lists")
247
+
248
+ @pre_authorized_roles_lists.setter
249
+ def pre_authorized_roles_lists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
250
+ pulumi.set(self, "pre_authorized_roles_lists", value)
251
+
252
+
253
+ @pulumi.input_type
254
+ class _OauthIntegrationForCustomClientsState:
255
+ def __init__(__self__, *,
256
+ blocked_roles_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
257
+ comment: Optional[pulumi.Input[str]] = None,
258
+ describe_outputs: Optional[pulumi.Input[Sequence[pulumi.Input['OauthIntegrationForCustomClientsDescribeOutputArgs']]]] = None,
259
+ enabled: Optional[pulumi.Input[str]] = None,
260
+ name: Optional[pulumi.Input[str]] = None,
261
+ network_policy: Optional[pulumi.Input[str]] = None,
262
+ oauth_allow_non_tls_redirect_uri: Optional[pulumi.Input[str]] = None,
263
+ oauth_client_rsa_public_key: Optional[pulumi.Input[str]] = None,
264
+ oauth_client_rsa_public_key2: Optional[pulumi.Input[str]] = None,
265
+ oauth_client_type: Optional[pulumi.Input[str]] = None,
266
+ oauth_enforce_pkce: Optional[pulumi.Input[str]] = None,
267
+ oauth_issue_refresh_tokens: Optional[pulumi.Input[str]] = None,
268
+ oauth_redirect_uri: Optional[pulumi.Input[str]] = None,
269
+ oauth_refresh_token_validity: Optional[pulumi.Input[int]] = None,
270
+ oauth_use_secondary_roles: Optional[pulumi.Input[str]] = None,
271
+ pre_authorized_roles_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
272
+ show_outputs: Optional[pulumi.Input[Sequence[pulumi.Input['OauthIntegrationForCustomClientsShowOutputArgs']]]] = None):
273
+ """
274
+ Input properties used for looking up and filtering OauthIntegrationForCustomClients resources.
275
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] blocked_roles_lists: A set of Snowflake roles that a user cannot explicitly consent to using after authenticating.
276
+ :param pulumi.Input[str] comment: Specifies a comment for the OAuth integration.
277
+ :param pulumi.Input[Sequence[pulumi.Input['OauthIntegrationForCustomClientsDescribeOutputArgs']]] describe_outputs: Outputs the result of `DESCRIBE SECURITY INTEGRATION` for the given integration.
278
+ :param pulumi.Input[str] enabled: Specifies whether this OAuth integration is enabled or disabled. 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.
279
+ :param pulumi.Input[str] name: Specifies the name of the OAuth integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account.
280
+ :param pulumi.Input[str] network_policy: Specifies an existing network policy. This network policy controls network traffic that is attempting to exchange an authorization code for an access or refresh token or to use a refresh token to obtain a new access token.
281
+ :param pulumi.Input[str] oauth_allow_non_tls_redirect_uri: If true, allows setting oauth*redirect*uri to a URI not protected by TLS. 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.
282
+ :param pulumi.Input[str] oauth_client_type: Specifies the type of client being registered. Snowflake supports both confidential and public clients. Valid options are: `PUBLIC` | `CONFIDENTIAL`.
283
+ :param pulumi.Input[str] oauth_enforce_pkce: Boolean that specifies whether Proof Key for Code Exchange (PKCE) should be required for the integration. 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.
284
+ :param pulumi.Input[str] oauth_issue_refresh_tokens: Specifies whether to allow the client to exchange a refresh token for an access token when the current access token has expired. 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.
285
+ :param pulumi.Input[str] oauth_redirect_uri: Specifies the client URI. After a user is authenticated, the web browser is redirected to this URI.
286
+ :param pulumi.Input[int] oauth_refresh_token_validity: Specifies how long refresh tokens should be valid (in seconds). OAUTH*ISSUE*REFRESH_TOKENS must be set to TRUE.
287
+ :param pulumi.Input[str] oauth_use_secondary_roles: Specifies whether default secondary roles set in the user properties are activated by default in the session being opened. Valid options are: `IMPLICIT` | `NONE`.
288
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] pre_authorized_roles_lists: A set of Snowflake roles that a user does not need to explicitly consent to using after authenticating.
289
+ :param pulumi.Input[Sequence[pulumi.Input['OauthIntegrationForCustomClientsShowOutputArgs']]] show_outputs: Outputs the result of `SHOW SECURITY INTEGRATION` for the given integration.
290
+ """
291
+ if blocked_roles_lists is not None:
292
+ pulumi.set(__self__, "blocked_roles_lists", blocked_roles_lists)
293
+ if comment is not None:
294
+ pulumi.set(__self__, "comment", comment)
295
+ if describe_outputs is not None:
296
+ pulumi.set(__self__, "describe_outputs", describe_outputs)
297
+ if enabled is not None:
298
+ pulumi.set(__self__, "enabled", enabled)
299
+ if name is not None:
300
+ pulumi.set(__self__, "name", name)
301
+ if network_policy is not None:
302
+ pulumi.set(__self__, "network_policy", network_policy)
303
+ if oauth_allow_non_tls_redirect_uri is not None:
304
+ pulumi.set(__self__, "oauth_allow_non_tls_redirect_uri", oauth_allow_non_tls_redirect_uri)
305
+ if oauth_client_rsa_public_key is not None:
306
+ pulumi.set(__self__, "oauth_client_rsa_public_key", oauth_client_rsa_public_key)
307
+ if oauth_client_rsa_public_key2 is not None:
308
+ pulumi.set(__self__, "oauth_client_rsa_public_key2", oauth_client_rsa_public_key2)
309
+ if oauth_client_type is not None:
310
+ pulumi.set(__self__, "oauth_client_type", oauth_client_type)
311
+ if oauth_enforce_pkce is not None:
312
+ pulumi.set(__self__, "oauth_enforce_pkce", oauth_enforce_pkce)
313
+ if oauth_issue_refresh_tokens is not None:
314
+ pulumi.set(__self__, "oauth_issue_refresh_tokens", oauth_issue_refresh_tokens)
315
+ if oauth_redirect_uri is not None:
316
+ pulumi.set(__self__, "oauth_redirect_uri", oauth_redirect_uri)
317
+ if oauth_refresh_token_validity is not None:
318
+ pulumi.set(__self__, "oauth_refresh_token_validity", oauth_refresh_token_validity)
319
+ if oauth_use_secondary_roles is not None:
320
+ pulumi.set(__self__, "oauth_use_secondary_roles", oauth_use_secondary_roles)
321
+ if pre_authorized_roles_lists is not None:
322
+ pulumi.set(__self__, "pre_authorized_roles_lists", pre_authorized_roles_lists)
323
+ if show_outputs is not None:
324
+ pulumi.set(__self__, "show_outputs", show_outputs)
325
+
326
+ @property
327
+ @pulumi.getter(name="blockedRolesLists")
328
+ def blocked_roles_lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
329
+ """
330
+ A set of Snowflake roles that a user cannot explicitly consent to using after authenticating.
331
+ """
332
+ return pulumi.get(self, "blocked_roles_lists")
333
+
334
+ @blocked_roles_lists.setter
335
+ def blocked_roles_lists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
336
+ pulumi.set(self, "blocked_roles_lists", value)
337
+
338
+ @property
339
+ @pulumi.getter
340
+ def comment(self) -> Optional[pulumi.Input[str]]:
341
+ """
342
+ Specifies a comment for the OAuth integration.
343
+ """
344
+ return pulumi.get(self, "comment")
345
+
346
+ @comment.setter
347
+ def comment(self, value: Optional[pulumi.Input[str]]):
348
+ pulumi.set(self, "comment", value)
349
+
350
+ @property
351
+ @pulumi.getter(name="describeOutputs")
352
+ def describe_outputs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OauthIntegrationForCustomClientsDescribeOutputArgs']]]]:
353
+ """
354
+ Outputs the result of `DESCRIBE SECURITY INTEGRATION` for the given integration.
355
+ """
356
+ return pulumi.get(self, "describe_outputs")
357
+
358
+ @describe_outputs.setter
359
+ def describe_outputs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OauthIntegrationForCustomClientsDescribeOutputArgs']]]]):
360
+ pulumi.set(self, "describe_outputs", value)
361
+
362
+ @property
363
+ @pulumi.getter
364
+ def enabled(self) -> Optional[pulumi.Input[str]]:
365
+ """
366
+ Specifies whether this OAuth integration is enabled or disabled. 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.
367
+ """
368
+ return pulumi.get(self, "enabled")
369
+
370
+ @enabled.setter
371
+ def enabled(self, value: Optional[pulumi.Input[str]]):
372
+ pulumi.set(self, "enabled", value)
373
+
374
+ @property
375
+ @pulumi.getter
376
+ def name(self) -> Optional[pulumi.Input[str]]:
377
+ """
378
+ Specifies the name of the OAuth integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account.
379
+ """
380
+ return pulumi.get(self, "name")
381
+
382
+ @name.setter
383
+ def name(self, value: Optional[pulumi.Input[str]]):
384
+ pulumi.set(self, "name", value)
385
+
386
+ @property
387
+ @pulumi.getter(name="networkPolicy")
388
+ def network_policy(self) -> Optional[pulumi.Input[str]]:
389
+ """
390
+ Specifies an existing network policy. This network policy controls network traffic that is attempting to exchange an authorization code for an access or refresh token or to use a refresh token to obtain a new access token.
391
+ """
392
+ return pulumi.get(self, "network_policy")
393
+
394
+ @network_policy.setter
395
+ def network_policy(self, value: Optional[pulumi.Input[str]]):
396
+ pulumi.set(self, "network_policy", value)
397
+
398
+ @property
399
+ @pulumi.getter(name="oauthAllowNonTlsRedirectUri")
400
+ def oauth_allow_non_tls_redirect_uri(self) -> Optional[pulumi.Input[str]]:
401
+ """
402
+ If true, allows setting oauth*redirect*uri to a URI not protected by TLS. 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.
403
+ """
404
+ return pulumi.get(self, "oauth_allow_non_tls_redirect_uri")
405
+
406
+ @oauth_allow_non_tls_redirect_uri.setter
407
+ def oauth_allow_non_tls_redirect_uri(self, value: Optional[pulumi.Input[str]]):
408
+ pulumi.set(self, "oauth_allow_non_tls_redirect_uri", value)
409
+
410
+ @property
411
+ @pulumi.getter(name="oauthClientRsaPublicKey")
412
+ def oauth_client_rsa_public_key(self) -> Optional[pulumi.Input[str]]:
413
+ return pulumi.get(self, "oauth_client_rsa_public_key")
414
+
415
+ @oauth_client_rsa_public_key.setter
416
+ def oauth_client_rsa_public_key(self, value: Optional[pulumi.Input[str]]):
417
+ pulumi.set(self, "oauth_client_rsa_public_key", value)
418
+
419
+ @property
420
+ @pulumi.getter(name="oauthClientRsaPublicKey2")
421
+ def oauth_client_rsa_public_key2(self) -> Optional[pulumi.Input[str]]:
422
+ return pulumi.get(self, "oauth_client_rsa_public_key2")
423
+
424
+ @oauth_client_rsa_public_key2.setter
425
+ def oauth_client_rsa_public_key2(self, value: Optional[pulumi.Input[str]]):
426
+ pulumi.set(self, "oauth_client_rsa_public_key2", value)
427
+
428
+ @property
429
+ @pulumi.getter(name="oauthClientType")
430
+ def oauth_client_type(self) -> Optional[pulumi.Input[str]]:
431
+ """
432
+ Specifies the type of client being registered. Snowflake supports both confidential and public clients. Valid options are: `PUBLIC` | `CONFIDENTIAL`.
433
+ """
434
+ return pulumi.get(self, "oauth_client_type")
435
+
436
+ @oauth_client_type.setter
437
+ def oauth_client_type(self, value: Optional[pulumi.Input[str]]):
438
+ pulumi.set(self, "oauth_client_type", value)
439
+
440
+ @property
441
+ @pulumi.getter(name="oauthEnforcePkce")
442
+ def oauth_enforce_pkce(self) -> Optional[pulumi.Input[str]]:
443
+ """
444
+ Boolean that specifies whether Proof Key for Code Exchange (PKCE) should be required for the integration. 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.
445
+ """
446
+ return pulumi.get(self, "oauth_enforce_pkce")
447
+
448
+ @oauth_enforce_pkce.setter
449
+ def oauth_enforce_pkce(self, value: Optional[pulumi.Input[str]]):
450
+ pulumi.set(self, "oauth_enforce_pkce", value)
451
+
452
+ @property
453
+ @pulumi.getter(name="oauthIssueRefreshTokens")
454
+ def oauth_issue_refresh_tokens(self) -> Optional[pulumi.Input[str]]:
455
+ """
456
+ Specifies whether to allow the client to exchange a refresh token for an access token when the current access token has expired. 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.
457
+ """
458
+ return pulumi.get(self, "oauth_issue_refresh_tokens")
459
+
460
+ @oauth_issue_refresh_tokens.setter
461
+ def oauth_issue_refresh_tokens(self, value: Optional[pulumi.Input[str]]):
462
+ pulumi.set(self, "oauth_issue_refresh_tokens", value)
463
+
464
+ @property
465
+ @pulumi.getter(name="oauthRedirectUri")
466
+ def oauth_redirect_uri(self) -> Optional[pulumi.Input[str]]:
467
+ """
468
+ Specifies the client URI. After a user is authenticated, the web browser is redirected to this URI.
469
+ """
470
+ return pulumi.get(self, "oauth_redirect_uri")
471
+
472
+ @oauth_redirect_uri.setter
473
+ def oauth_redirect_uri(self, value: Optional[pulumi.Input[str]]):
474
+ pulumi.set(self, "oauth_redirect_uri", value)
475
+
476
+ @property
477
+ @pulumi.getter(name="oauthRefreshTokenValidity")
478
+ def oauth_refresh_token_validity(self) -> Optional[pulumi.Input[int]]:
479
+ """
480
+ Specifies how long refresh tokens should be valid (in seconds). OAUTH*ISSUE*REFRESH_TOKENS must be set to TRUE.
481
+ """
482
+ return pulumi.get(self, "oauth_refresh_token_validity")
483
+
484
+ @oauth_refresh_token_validity.setter
485
+ def oauth_refresh_token_validity(self, value: Optional[pulumi.Input[int]]):
486
+ pulumi.set(self, "oauth_refresh_token_validity", value)
487
+
488
+ @property
489
+ @pulumi.getter(name="oauthUseSecondaryRoles")
490
+ def oauth_use_secondary_roles(self) -> Optional[pulumi.Input[str]]:
491
+ """
492
+ Specifies whether default secondary roles set in the user properties are activated by default in the session being opened. Valid options are: `IMPLICIT` | `NONE`.
493
+ """
494
+ return pulumi.get(self, "oauth_use_secondary_roles")
495
+
496
+ @oauth_use_secondary_roles.setter
497
+ def oauth_use_secondary_roles(self, value: Optional[pulumi.Input[str]]):
498
+ pulumi.set(self, "oauth_use_secondary_roles", value)
499
+
500
+ @property
501
+ @pulumi.getter(name="preAuthorizedRolesLists")
502
+ def pre_authorized_roles_lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
503
+ """
504
+ A set of Snowflake roles that a user does not need to explicitly consent to using after authenticating.
505
+ """
506
+ return pulumi.get(self, "pre_authorized_roles_lists")
507
+
508
+ @pre_authorized_roles_lists.setter
509
+ def pre_authorized_roles_lists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
510
+ pulumi.set(self, "pre_authorized_roles_lists", value)
511
+
512
+ @property
513
+ @pulumi.getter(name="showOutputs")
514
+ def show_outputs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OauthIntegrationForCustomClientsShowOutputArgs']]]]:
515
+ """
516
+ Outputs the result of `SHOW SECURITY INTEGRATION` for the given integration.
517
+ """
518
+ return pulumi.get(self, "show_outputs")
519
+
520
+ @show_outputs.setter
521
+ def show_outputs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OauthIntegrationForCustomClientsShowOutputArgs']]]]):
522
+ pulumi.set(self, "show_outputs", value)
523
+
524
+
525
+ class OauthIntegrationForCustomClients(pulumi.CustomResource):
526
+ @overload
527
+ def __init__(__self__,
528
+ resource_name: str,
529
+ opts: Optional[pulumi.ResourceOptions] = None,
530
+ blocked_roles_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
531
+ comment: Optional[pulumi.Input[str]] = None,
532
+ enabled: Optional[pulumi.Input[str]] = None,
533
+ name: Optional[pulumi.Input[str]] = None,
534
+ network_policy: Optional[pulumi.Input[str]] = None,
535
+ oauth_allow_non_tls_redirect_uri: Optional[pulumi.Input[str]] = None,
536
+ oauth_client_rsa_public_key: Optional[pulumi.Input[str]] = None,
537
+ oauth_client_rsa_public_key2: Optional[pulumi.Input[str]] = None,
538
+ oauth_client_type: Optional[pulumi.Input[str]] = None,
539
+ oauth_enforce_pkce: Optional[pulumi.Input[str]] = None,
540
+ oauth_issue_refresh_tokens: Optional[pulumi.Input[str]] = None,
541
+ oauth_redirect_uri: Optional[pulumi.Input[str]] = None,
542
+ oauth_refresh_token_validity: Optional[pulumi.Input[int]] = None,
543
+ oauth_use_secondary_roles: Optional[pulumi.Input[str]] = None,
544
+ pre_authorized_roles_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
545
+ __props__=None):
546
+ """
547
+ !> **V1 release candidate** This resource was reworked and is a release candidate for the V1. We do not expect significant changes in it before the V1. We will welcome any feedback and adjust the resource if needed. Any errors reported will be resolved with a higher priority. We encourage checking this resource out before the V1 release. Please follow the migration guide to use it.
548
+
549
+ Resource used to manage oauth security integration for custom clients objects. For more information, check [security integrations documentation](https://docs.snowflake.com/en/sql-reference/sql/create-security-integration-oauth-snowflake).
550
+
551
+ ## Example Usage
552
+
553
+ ```python
554
+ import pulumi
555
+ import pulumi_snowflake as snowflake
556
+ import pulumi_std as std
557
+
558
+ # basic resource
559
+ basic = snowflake.OauthIntegrationForCustomClients("basic",
560
+ name="saml_integration",
561
+ oauth_client_type="CONFIDENTIAL",
562
+ oauth_redirect_uri="https://example.com",
563
+ blocked_roles_lists=[
564
+ "ACCOUNTADMIN",
565
+ "SECURITYADMIN",
566
+ ])
567
+ # resource with all fields set
568
+ complete = snowflake.OauthIntegrationForCustomClients("complete",
569
+ name="saml_integration",
570
+ oauth_client_type="CONFIDENTIAL",
571
+ oauth_redirect_uri="https://example.com",
572
+ enabled="true",
573
+ oauth_allow_non_tls_redirect_uri="true",
574
+ oauth_enforce_pkce="true",
575
+ oauth_use_secondary_roles="NONE",
576
+ pre_authorized_roles_lists=[
577
+ "role_id1",
578
+ "role_id2",
579
+ ],
580
+ blocked_roles_lists=[
581
+ "ACCOUNTADMIN",
582
+ "SECURITYADMIN",
583
+ "role_id1",
584
+ "role_id2",
585
+ ],
586
+ oauth_issue_refresh_tokens="true",
587
+ oauth_refresh_token_validity=87600,
588
+ network_policy="network_policy_id",
589
+ oauth_client_rsa_public_key=std.file(input="rsa.pub").result,
590
+ oauth_client_rsa_public_key2=std.file(input="rsa2.pub").result,
591
+ comment="my oauth integration")
592
+ ```
593
+
594
+ ## Import
595
+
596
+ ```sh
597
+ $ pulumi import snowflake:index/oauthIntegrationForCustomClients:OauthIntegrationForCustomClients example "name"
598
+ ```
599
+
600
+ :param str resource_name: The name of the resource.
601
+ :param pulumi.ResourceOptions opts: Options for the resource.
602
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] blocked_roles_lists: A set of Snowflake roles that a user cannot explicitly consent to using after authenticating.
603
+ :param pulumi.Input[str] comment: Specifies a comment for the OAuth integration.
604
+ :param pulumi.Input[str] enabled: Specifies whether this OAuth integration is enabled or disabled. 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.
605
+ :param pulumi.Input[str] name: Specifies the name of the OAuth integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account.
606
+ :param pulumi.Input[str] network_policy: Specifies an existing network policy. This network policy controls network traffic that is attempting to exchange an authorization code for an access or refresh token or to use a refresh token to obtain a new access token.
607
+ :param pulumi.Input[str] oauth_allow_non_tls_redirect_uri: If true, allows setting oauth*redirect*uri to a URI not protected by TLS. 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.
608
+ :param pulumi.Input[str] oauth_client_type: Specifies the type of client being registered. Snowflake supports both confidential and public clients. Valid options are: `PUBLIC` | `CONFIDENTIAL`.
609
+ :param pulumi.Input[str] oauth_enforce_pkce: Boolean that specifies whether Proof Key for Code Exchange (PKCE) should be required for the integration. 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.
610
+ :param pulumi.Input[str] oauth_issue_refresh_tokens: Specifies whether to allow the client to exchange a refresh token for an access token when the current access token has expired. 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.
611
+ :param pulumi.Input[str] oauth_redirect_uri: Specifies the client URI. After a user is authenticated, the web browser is redirected to this URI.
612
+ :param pulumi.Input[int] oauth_refresh_token_validity: Specifies how long refresh tokens should be valid (in seconds). OAUTH*ISSUE*REFRESH_TOKENS must be set to TRUE.
613
+ :param pulumi.Input[str] oauth_use_secondary_roles: Specifies whether default secondary roles set in the user properties are activated by default in the session being opened. Valid options are: `IMPLICIT` | `NONE`.
614
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] pre_authorized_roles_lists: A set of Snowflake roles that a user does not need to explicitly consent to using after authenticating.
615
+ """
616
+ ...
617
+ @overload
618
+ def __init__(__self__,
619
+ resource_name: str,
620
+ args: OauthIntegrationForCustomClientsArgs,
621
+ opts: Optional[pulumi.ResourceOptions] = None):
622
+ """
623
+ !> **V1 release candidate** This resource was reworked and is a release candidate for the V1. We do not expect significant changes in it before the V1. We will welcome any feedback and adjust the resource if needed. Any errors reported will be resolved with a higher priority. We encourage checking this resource out before the V1 release. Please follow the migration guide to use it.
624
+
625
+ Resource used to manage oauth security integration for custom clients objects. For more information, check [security integrations documentation](https://docs.snowflake.com/en/sql-reference/sql/create-security-integration-oauth-snowflake).
626
+
627
+ ## Example Usage
628
+
629
+ ```python
630
+ import pulumi
631
+ import pulumi_snowflake as snowflake
632
+ import pulumi_std as std
633
+
634
+ # basic resource
635
+ basic = snowflake.OauthIntegrationForCustomClients("basic",
636
+ name="saml_integration",
637
+ oauth_client_type="CONFIDENTIAL",
638
+ oauth_redirect_uri="https://example.com",
639
+ blocked_roles_lists=[
640
+ "ACCOUNTADMIN",
641
+ "SECURITYADMIN",
642
+ ])
643
+ # resource with all fields set
644
+ complete = snowflake.OauthIntegrationForCustomClients("complete",
645
+ name="saml_integration",
646
+ oauth_client_type="CONFIDENTIAL",
647
+ oauth_redirect_uri="https://example.com",
648
+ enabled="true",
649
+ oauth_allow_non_tls_redirect_uri="true",
650
+ oauth_enforce_pkce="true",
651
+ oauth_use_secondary_roles="NONE",
652
+ pre_authorized_roles_lists=[
653
+ "role_id1",
654
+ "role_id2",
655
+ ],
656
+ blocked_roles_lists=[
657
+ "ACCOUNTADMIN",
658
+ "SECURITYADMIN",
659
+ "role_id1",
660
+ "role_id2",
661
+ ],
662
+ oauth_issue_refresh_tokens="true",
663
+ oauth_refresh_token_validity=87600,
664
+ network_policy="network_policy_id",
665
+ oauth_client_rsa_public_key=std.file(input="rsa.pub").result,
666
+ oauth_client_rsa_public_key2=std.file(input="rsa2.pub").result,
667
+ comment="my oauth integration")
668
+ ```
669
+
670
+ ## Import
671
+
672
+ ```sh
673
+ $ pulumi import snowflake:index/oauthIntegrationForCustomClients:OauthIntegrationForCustomClients example "name"
674
+ ```
675
+
676
+ :param str resource_name: The name of the resource.
677
+ :param OauthIntegrationForCustomClientsArgs args: The arguments to use to populate this resource's properties.
678
+ :param pulumi.ResourceOptions opts: Options for the resource.
679
+ """
680
+ ...
681
+ def __init__(__self__, resource_name: str, *args, **kwargs):
682
+ resource_args, opts = _utilities.get_resource_args_opts(OauthIntegrationForCustomClientsArgs, pulumi.ResourceOptions, *args, **kwargs)
683
+ if resource_args is not None:
684
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
685
+ else:
686
+ __self__._internal_init(resource_name, *args, **kwargs)
687
+
688
+ def _internal_init(__self__,
689
+ resource_name: str,
690
+ opts: Optional[pulumi.ResourceOptions] = None,
691
+ blocked_roles_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
692
+ comment: Optional[pulumi.Input[str]] = None,
693
+ enabled: Optional[pulumi.Input[str]] = None,
694
+ name: Optional[pulumi.Input[str]] = None,
695
+ network_policy: Optional[pulumi.Input[str]] = None,
696
+ oauth_allow_non_tls_redirect_uri: Optional[pulumi.Input[str]] = None,
697
+ oauth_client_rsa_public_key: Optional[pulumi.Input[str]] = None,
698
+ oauth_client_rsa_public_key2: Optional[pulumi.Input[str]] = None,
699
+ oauth_client_type: Optional[pulumi.Input[str]] = None,
700
+ oauth_enforce_pkce: Optional[pulumi.Input[str]] = None,
701
+ oauth_issue_refresh_tokens: Optional[pulumi.Input[str]] = None,
702
+ oauth_redirect_uri: Optional[pulumi.Input[str]] = None,
703
+ oauth_refresh_token_validity: Optional[pulumi.Input[int]] = None,
704
+ oauth_use_secondary_roles: Optional[pulumi.Input[str]] = None,
705
+ pre_authorized_roles_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
706
+ __props__=None):
707
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
708
+ if not isinstance(opts, pulumi.ResourceOptions):
709
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
710
+ if opts.id is None:
711
+ if __props__ is not None:
712
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
713
+ __props__ = OauthIntegrationForCustomClientsArgs.__new__(OauthIntegrationForCustomClientsArgs)
714
+
715
+ if blocked_roles_lists is None and not opts.urn:
716
+ raise TypeError("Missing required property 'blocked_roles_lists'")
717
+ __props__.__dict__["blocked_roles_lists"] = blocked_roles_lists
718
+ __props__.__dict__["comment"] = comment
719
+ __props__.__dict__["enabled"] = enabled
720
+ __props__.__dict__["name"] = name
721
+ __props__.__dict__["network_policy"] = network_policy
722
+ __props__.__dict__["oauth_allow_non_tls_redirect_uri"] = oauth_allow_non_tls_redirect_uri
723
+ __props__.__dict__["oauth_client_rsa_public_key"] = oauth_client_rsa_public_key
724
+ __props__.__dict__["oauth_client_rsa_public_key2"] = oauth_client_rsa_public_key2
725
+ if oauth_client_type is None and not opts.urn:
726
+ raise TypeError("Missing required property 'oauth_client_type'")
727
+ __props__.__dict__["oauth_client_type"] = oauth_client_type
728
+ __props__.__dict__["oauth_enforce_pkce"] = oauth_enforce_pkce
729
+ __props__.__dict__["oauth_issue_refresh_tokens"] = oauth_issue_refresh_tokens
730
+ if oauth_redirect_uri is None and not opts.urn:
731
+ raise TypeError("Missing required property 'oauth_redirect_uri'")
732
+ __props__.__dict__["oauth_redirect_uri"] = oauth_redirect_uri
733
+ __props__.__dict__["oauth_refresh_token_validity"] = oauth_refresh_token_validity
734
+ __props__.__dict__["oauth_use_secondary_roles"] = oauth_use_secondary_roles
735
+ __props__.__dict__["pre_authorized_roles_lists"] = pre_authorized_roles_lists
736
+ __props__.__dict__["describe_outputs"] = None
737
+ __props__.__dict__["show_outputs"] = None
738
+ super(OauthIntegrationForCustomClients, __self__).__init__(
739
+ 'snowflake:index/oauthIntegrationForCustomClients:OauthIntegrationForCustomClients',
740
+ resource_name,
741
+ __props__,
742
+ opts)
743
+
744
+ @staticmethod
745
+ def get(resource_name: str,
746
+ id: pulumi.Input[str],
747
+ opts: Optional[pulumi.ResourceOptions] = None,
748
+ blocked_roles_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
749
+ comment: Optional[pulumi.Input[str]] = None,
750
+ describe_outputs: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OauthIntegrationForCustomClientsDescribeOutputArgs']]]]] = None,
751
+ enabled: Optional[pulumi.Input[str]] = None,
752
+ name: Optional[pulumi.Input[str]] = None,
753
+ network_policy: Optional[pulumi.Input[str]] = None,
754
+ oauth_allow_non_tls_redirect_uri: Optional[pulumi.Input[str]] = None,
755
+ oauth_client_rsa_public_key: Optional[pulumi.Input[str]] = None,
756
+ oauth_client_rsa_public_key2: Optional[pulumi.Input[str]] = None,
757
+ oauth_client_type: Optional[pulumi.Input[str]] = None,
758
+ oauth_enforce_pkce: Optional[pulumi.Input[str]] = None,
759
+ oauth_issue_refresh_tokens: Optional[pulumi.Input[str]] = None,
760
+ oauth_redirect_uri: Optional[pulumi.Input[str]] = None,
761
+ oauth_refresh_token_validity: Optional[pulumi.Input[int]] = None,
762
+ oauth_use_secondary_roles: Optional[pulumi.Input[str]] = None,
763
+ pre_authorized_roles_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
764
+ show_outputs: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OauthIntegrationForCustomClientsShowOutputArgs']]]]] = None) -> 'OauthIntegrationForCustomClients':
765
+ """
766
+ Get an existing OauthIntegrationForCustomClients resource's state with the given name, id, and optional extra
767
+ properties used to qualify the lookup.
768
+
769
+ :param str resource_name: The unique name of the resulting resource.
770
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
771
+ :param pulumi.ResourceOptions opts: Options for the resource.
772
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] blocked_roles_lists: A set of Snowflake roles that a user cannot explicitly consent to using after authenticating.
773
+ :param pulumi.Input[str] comment: Specifies a comment for the OAuth integration.
774
+ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OauthIntegrationForCustomClientsDescribeOutputArgs']]]] describe_outputs: Outputs the result of `DESCRIBE SECURITY INTEGRATION` for the given integration.
775
+ :param pulumi.Input[str] enabled: Specifies whether this OAuth integration is enabled or disabled. 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.
776
+ :param pulumi.Input[str] name: Specifies the name of the OAuth integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account.
777
+ :param pulumi.Input[str] network_policy: Specifies an existing network policy. This network policy controls network traffic that is attempting to exchange an authorization code for an access or refresh token or to use a refresh token to obtain a new access token.
778
+ :param pulumi.Input[str] oauth_allow_non_tls_redirect_uri: If true, allows setting oauth*redirect*uri to a URI not protected by TLS. 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.
779
+ :param pulumi.Input[str] oauth_client_type: Specifies the type of client being registered. Snowflake supports both confidential and public clients. Valid options are: `PUBLIC` | `CONFIDENTIAL`.
780
+ :param pulumi.Input[str] oauth_enforce_pkce: Boolean that specifies whether Proof Key for Code Exchange (PKCE) should be required for the integration. 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.
781
+ :param pulumi.Input[str] oauth_issue_refresh_tokens: Specifies whether to allow the client to exchange a refresh token for an access token when the current access token has expired. 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.
782
+ :param pulumi.Input[str] oauth_redirect_uri: Specifies the client URI. After a user is authenticated, the web browser is redirected to this URI.
783
+ :param pulumi.Input[int] oauth_refresh_token_validity: Specifies how long refresh tokens should be valid (in seconds). OAUTH*ISSUE*REFRESH_TOKENS must be set to TRUE.
784
+ :param pulumi.Input[str] oauth_use_secondary_roles: Specifies whether default secondary roles set in the user properties are activated by default in the session being opened. Valid options are: `IMPLICIT` | `NONE`.
785
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] pre_authorized_roles_lists: A set of Snowflake roles that a user does not need to explicitly consent to using after authenticating.
786
+ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OauthIntegrationForCustomClientsShowOutputArgs']]]] show_outputs: Outputs the result of `SHOW SECURITY INTEGRATION` for the given integration.
787
+ """
788
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
789
+
790
+ __props__ = _OauthIntegrationForCustomClientsState.__new__(_OauthIntegrationForCustomClientsState)
791
+
792
+ __props__.__dict__["blocked_roles_lists"] = blocked_roles_lists
793
+ __props__.__dict__["comment"] = comment
794
+ __props__.__dict__["describe_outputs"] = describe_outputs
795
+ __props__.__dict__["enabled"] = enabled
796
+ __props__.__dict__["name"] = name
797
+ __props__.__dict__["network_policy"] = network_policy
798
+ __props__.__dict__["oauth_allow_non_tls_redirect_uri"] = oauth_allow_non_tls_redirect_uri
799
+ __props__.__dict__["oauth_client_rsa_public_key"] = oauth_client_rsa_public_key
800
+ __props__.__dict__["oauth_client_rsa_public_key2"] = oauth_client_rsa_public_key2
801
+ __props__.__dict__["oauth_client_type"] = oauth_client_type
802
+ __props__.__dict__["oauth_enforce_pkce"] = oauth_enforce_pkce
803
+ __props__.__dict__["oauth_issue_refresh_tokens"] = oauth_issue_refresh_tokens
804
+ __props__.__dict__["oauth_redirect_uri"] = oauth_redirect_uri
805
+ __props__.__dict__["oauth_refresh_token_validity"] = oauth_refresh_token_validity
806
+ __props__.__dict__["oauth_use_secondary_roles"] = oauth_use_secondary_roles
807
+ __props__.__dict__["pre_authorized_roles_lists"] = pre_authorized_roles_lists
808
+ __props__.__dict__["show_outputs"] = show_outputs
809
+ return OauthIntegrationForCustomClients(resource_name, opts=opts, __props__=__props__)
810
+
811
+ @property
812
+ @pulumi.getter(name="blockedRolesLists")
813
+ def blocked_roles_lists(self) -> pulumi.Output[Sequence[str]]:
814
+ """
815
+ A set of Snowflake roles that a user cannot explicitly consent to using after authenticating.
816
+ """
817
+ return pulumi.get(self, "blocked_roles_lists")
818
+
819
+ @property
820
+ @pulumi.getter
821
+ def comment(self) -> pulumi.Output[Optional[str]]:
822
+ """
823
+ Specifies a comment for the OAuth integration.
824
+ """
825
+ return pulumi.get(self, "comment")
826
+
827
+ @property
828
+ @pulumi.getter(name="describeOutputs")
829
+ def describe_outputs(self) -> pulumi.Output[Sequence['outputs.OauthIntegrationForCustomClientsDescribeOutput']]:
830
+ """
831
+ Outputs the result of `DESCRIBE SECURITY INTEGRATION` for the given integration.
832
+ """
833
+ return pulumi.get(self, "describe_outputs")
834
+
835
+ @property
836
+ @pulumi.getter
837
+ def enabled(self) -> pulumi.Output[Optional[str]]:
838
+ """
839
+ Specifies whether this OAuth integration is enabled or disabled. 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.
840
+ """
841
+ return pulumi.get(self, "enabled")
842
+
843
+ @property
844
+ @pulumi.getter
845
+ def name(self) -> pulumi.Output[str]:
846
+ """
847
+ Specifies the name of the OAuth integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account.
848
+ """
849
+ return pulumi.get(self, "name")
850
+
851
+ @property
852
+ @pulumi.getter(name="networkPolicy")
853
+ def network_policy(self) -> pulumi.Output[Optional[str]]:
854
+ """
855
+ Specifies an existing network policy. This network policy controls network traffic that is attempting to exchange an authorization code for an access or refresh token or to use a refresh token to obtain a new access token.
856
+ """
857
+ return pulumi.get(self, "network_policy")
858
+
859
+ @property
860
+ @pulumi.getter(name="oauthAllowNonTlsRedirectUri")
861
+ def oauth_allow_non_tls_redirect_uri(self) -> pulumi.Output[Optional[str]]:
862
+ """
863
+ If true, allows setting oauth*redirect*uri to a URI not protected by TLS. 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.
864
+ """
865
+ return pulumi.get(self, "oauth_allow_non_tls_redirect_uri")
866
+
867
+ @property
868
+ @pulumi.getter(name="oauthClientRsaPublicKey")
869
+ def oauth_client_rsa_public_key(self) -> pulumi.Output[Optional[str]]:
870
+ return pulumi.get(self, "oauth_client_rsa_public_key")
871
+
872
+ @property
873
+ @pulumi.getter(name="oauthClientRsaPublicKey2")
874
+ def oauth_client_rsa_public_key2(self) -> pulumi.Output[Optional[str]]:
875
+ return pulumi.get(self, "oauth_client_rsa_public_key2")
876
+
877
+ @property
878
+ @pulumi.getter(name="oauthClientType")
879
+ def oauth_client_type(self) -> pulumi.Output[str]:
880
+ """
881
+ Specifies the type of client being registered. Snowflake supports both confidential and public clients. Valid options are: `PUBLIC` | `CONFIDENTIAL`.
882
+ """
883
+ return pulumi.get(self, "oauth_client_type")
884
+
885
+ @property
886
+ @pulumi.getter(name="oauthEnforcePkce")
887
+ def oauth_enforce_pkce(self) -> pulumi.Output[Optional[str]]:
888
+ """
889
+ Boolean that specifies whether Proof Key for Code Exchange (PKCE) should be required for the integration. 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.
890
+ """
891
+ return pulumi.get(self, "oauth_enforce_pkce")
892
+
893
+ @property
894
+ @pulumi.getter(name="oauthIssueRefreshTokens")
895
+ def oauth_issue_refresh_tokens(self) -> pulumi.Output[Optional[str]]:
896
+ """
897
+ Specifies whether to allow the client to exchange a refresh token for an access token when the current access token has expired. 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.
898
+ """
899
+ return pulumi.get(self, "oauth_issue_refresh_tokens")
900
+
901
+ @property
902
+ @pulumi.getter(name="oauthRedirectUri")
903
+ def oauth_redirect_uri(self) -> pulumi.Output[str]:
904
+ """
905
+ Specifies the client URI. After a user is authenticated, the web browser is redirected to this URI.
906
+ """
907
+ return pulumi.get(self, "oauth_redirect_uri")
908
+
909
+ @property
910
+ @pulumi.getter(name="oauthRefreshTokenValidity")
911
+ def oauth_refresh_token_validity(self) -> pulumi.Output[Optional[int]]:
912
+ """
913
+ Specifies how long refresh tokens should be valid (in seconds). OAUTH*ISSUE*REFRESH_TOKENS must be set to TRUE.
914
+ """
915
+ return pulumi.get(self, "oauth_refresh_token_validity")
916
+
917
+ @property
918
+ @pulumi.getter(name="oauthUseSecondaryRoles")
919
+ def oauth_use_secondary_roles(self) -> pulumi.Output[Optional[str]]:
920
+ """
921
+ Specifies whether default secondary roles set in the user properties are activated by default in the session being opened. Valid options are: `IMPLICIT` | `NONE`.
922
+ """
923
+ return pulumi.get(self, "oauth_use_secondary_roles")
924
+
925
+ @property
926
+ @pulumi.getter(name="preAuthorizedRolesLists")
927
+ def pre_authorized_roles_lists(self) -> pulumi.Output[Optional[Sequence[str]]]:
928
+ """
929
+ A set of Snowflake roles that a user does not need to explicitly consent to using after authenticating.
930
+ """
931
+ return pulumi.get(self, "pre_authorized_roles_lists")
932
+
933
+ @property
934
+ @pulumi.getter(name="showOutputs")
935
+ def show_outputs(self) -> pulumi.Output[Sequence['outputs.OauthIntegrationForCustomClientsShowOutput']]:
936
+ """
937
+ Outputs the result of `SHOW SECURITY INTEGRATION` for the given integration.
938
+ """
939
+ return pulumi.get(self, "show_outputs")
940
+