pulumi-snowflake 0.50.2a1709892015__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 +52854 -1662
  3. pulumi_snowflake/_utilities.py +41 -5
  4. pulumi_snowflake/account.py +188 -214
  5. pulumi_snowflake/account_authentication_policy_attachment.py +149 -0
  6. pulumi_snowflake/account_parameter.py +21 -44
  7. pulumi_snowflake/account_password_policy_attachment.py +7 -28
  8. pulumi_snowflake/account_role.py +250 -0
  9. pulumi_snowflake/alert.py +38 -43
  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 +35 -50
  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 -209
  20. pulumi_snowflake/database_role.py +81 -40
  21. pulumi_snowflake/dynamic_table.py +44 -47
  22. pulumi_snowflake/email_notification_integration.py +35 -26
  23. pulumi_snowflake/{unsafe_execute.py → execute.py} +36 -139
  24. pulumi_snowflake/external_function.py +54 -71
  25. pulumi_snowflake/external_oauth_integration.py +593 -538
  26. pulumi_snowflake/external_table.py +67 -86
  27. pulumi_snowflake/external_volume.py +382 -0
  28. pulumi_snowflake/failover_group.py +59 -96
  29. pulumi_snowflake/file_format.py +33 -24
  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 -5
  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 -9
  41. pulumi_snowflake/get_current_role.py +14 -7
  42. pulumi_snowflake/get_database.py +25 -5
  43. pulumi_snowflake/get_database_role.py +162 -0
  44. pulumi_snowflake/get_database_roles.py +79 -43
  45. pulumi_snowflake/get_databases.py +91 -69
  46. pulumi_snowflake/get_dynamic_tables.py +36 -19
  47. pulumi_snowflake/get_external_functions.py +28 -5
  48. pulumi_snowflake/get_external_tables.py +28 -5
  49. pulumi_snowflake/get_failover_groups.py +18 -7
  50. pulumi_snowflake/get_file_formats.py +28 -5
  51. pulumi_snowflake/get_functions.py +28 -5
  52. pulumi_snowflake/get_grants.py +207 -80
  53. pulumi_snowflake/get_masking_policies.py +91 -47
  54. pulumi_snowflake/get_materialized_views.py +28 -5
  55. pulumi_snowflake/get_network_policies.py +129 -0
  56. pulumi_snowflake/get_parameters.py +38 -11
  57. pulumi_snowflake/get_pipes.py +28 -5
  58. pulumi_snowflake/get_procedures.py +28 -5
  59. pulumi_snowflake/get_resource_monitors.py +37 -20
  60. pulumi_snowflake/get_row_access_policies.py +91 -47
  61. pulumi_snowflake/get_schemas.py +145 -37
  62. pulumi_snowflake/get_secrets.py +200 -0
  63. pulumi_snowflake/get_security_integrations.py +129 -0
  64. pulumi_snowflake/get_sequences.py +28 -5
  65. pulumi_snowflake/get_shares.py +18 -5
  66. pulumi_snowflake/get_stages.py +28 -5
  67. pulumi_snowflake/get_storage_integrations.py +16 -5
  68. pulumi_snowflake/get_streamlits.py +170 -0
  69. pulumi_snowflake/get_streams.py +114 -50
  70. pulumi_snowflake/get_system_generate_scim_access_token.py +18 -5
  71. pulumi_snowflake/get_system_get_aws_sns_iam_policy.py +32 -7
  72. pulumi_snowflake/get_system_get_private_link_config.py +121 -6
  73. pulumi_snowflake/get_system_get_snowflake_platform_info.py +15 -7
  74. pulumi_snowflake/get_tables.py +28 -5
  75. pulumi_snowflake/get_tags.py +130 -0
  76. pulumi_snowflake/get_tasks.py +134 -50
  77. pulumi_snowflake/get_users.py +116 -40
  78. pulumi_snowflake/get_views.py +114 -50
  79. pulumi_snowflake/get_warehouses.py +79 -22
  80. pulumi_snowflake/grant_account_role.py +28 -61
  81. pulumi_snowflake/grant_application_role.py +257 -0
  82. pulumi_snowflake/grant_database_role.py +35 -108
  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 -223
  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 +42 -9
  89. pulumi_snowflake/masking_policy.py +213 -306
  90. pulumi_snowflake/materialized_view.py +62 -67
  91. pulumi_snowflake/network_policy.py +217 -57
  92. pulumi_snowflake/network_policy_attachment.py +7 -32
  93. pulumi_snowflake/network_rule.py +473 -0
  94. pulumi_snowflake/notification_integration.py +51 -82
  95. pulumi_snowflake/oauth_integration_for_custom_clients.py +906 -0
  96. pulumi_snowflake/{oauth_integration.py → oauth_integration_for_partner_applications.py} +191 -188
  97. pulumi_snowflake/object_parameter.py +12 -99
  98. pulumi_snowflake/outputs.py +49200 -2928
  99. pulumi_snowflake/password_policy.py +41 -28
  100. pulumi_snowflake/pipe.py +33 -0
  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 -323
  110. pulumi_snowflake/row_access_policy.py +200 -145
  111. pulumi_snowflake/{saml_integration.py → saml2_integration.py} +356 -295
  112. pulumi_snowflake/schema.py +949 -174
  113. pulumi_snowflake/scim_integration.py +286 -105
  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 -30
  121. pulumi_snowflake/service_user.py +3585 -0
  122. pulumi_snowflake/share.py +35 -26
  123. pulumi_snowflake/shared_database.py +939 -0
  124. pulumi_snowflake/stage.py +95 -80
  125. pulumi_snowflake/storage_integration.py +48 -2
  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 -93
  132. pulumi_snowflake/table_column_masking_policy_application.py +7 -14
  133. pulumi_snowflake/table_constraint.py +29 -168
  134. pulumi_snowflake/tag.py +142 -70
  135. pulumi_snowflake/tag_association.py +40 -211
  136. pulumi_snowflake/task.py +3048 -414
  137. pulumi_snowflake/user.py +3351 -380
  138. pulumi_snowflake/user_authentication_policy_attachment.py +197 -0
  139. pulumi_snowflake/user_password_policy_attachment.py +7 -6
  140. pulumi_snowflake/user_public_keys.py +5 -0
  141. pulumi_snowflake/view.py +466 -211
  142. pulumi_snowflake/warehouse.py +184 -164
  143. {pulumi_snowflake-0.50.2a1709892015.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.2a1709892015.dist-info → pulumi_snowflake-1.2.0a1736835738.dist-info}/WHEEL +1 -1
  146. pulumi_snowflake/account_grant.py +0 -339
  147. pulumi_snowflake/database_grant.py +0 -491
  148. pulumi_snowflake/external_table_grant.py +0 -686
  149. pulumi_snowflake/failover_group_grant.py +0 -388
  150. pulumi_snowflake/file_format_grant.py +0 -631
  151. pulumi_snowflake/function.py +0 -868
  152. pulumi_snowflake/function_grant.py +0 -741
  153. pulumi_snowflake/get_role.py +0 -117
  154. pulumi_snowflake/get_roles.py +0 -116
  155. pulumi_snowflake/grant_privileges_to_role.py +0 -667
  156. pulumi_snowflake/integration_grant.py +0 -436
  157. pulumi_snowflake/masking_policy_grant.py +0 -538
  158. pulumi_snowflake/materialized_view_grant.py +0 -685
  159. pulumi_snowflake/pipe_grant.py +0 -583
  160. pulumi_snowflake/procedure.py +0 -883
  161. pulumi_snowflake/procedure_grant.py +0 -741
  162. pulumi_snowflake/resource_monitor_grant.py +0 -383
  163. pulumi_snowflake/role.py +0 -269
  164. pulumi_snowflake/role_grants.py +0 -348
  165. pulumi_snowflake/role_ownership_grant.py +0 -334
  166. pulumi_snowflake/row_access_policy_grant.py +0 -536
  167. pulumi_snowflake/schema_grant.py +0 -643
  168. pulumi_snowflake/sequence_grant.py +0 -631
  169. pulumi_snowflake/session_parameter.py +0 -328
  170. pulumi_snowflake/stage_grant.py +0 -631
  171. pulumi_snowflake/stream.py +0 -610
  172. pulumi_snowflake/stream_grant.py +0 -631
  173. pulumi_snowflake/table_grant.py +0 -673
  174. pulumi_snowflake/tag_grant.py +0 -528
  175. pulumi_snowflake/tag_masking_policy_association.py +0 -210
  176. pulumi_snowflake/task_grant.py +0 -631
  177. pulumi_snowflake/user_grant.py +0 -390
  178. pulumi_snowflake/user_ownership_grant.py +0 -286
  179. pulumi_snowflake/view_grant.py +0 -701
  180. pulumi_snowflake/warehouse_grant.py +0 -436
  181. pulumi_snowflake-0.50.2a1709892015.dist-info/RECORD +0 -136
  182. {pulumi_snowflake-0.50.2a1709892015.dist-info → pulumi_snowflake-1.2.0a1736835738.dist-info}/top_level.txt +0 -0
@@ -4,10 +4,17 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
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
10
15
  from . import _utilities
16
+ from . import outputs
17
+ from ._inputs import *
11
18
 
12
19
  __all__ = ['ExternalOauthIntegrationArgs', 'ExternalOauthIntegration']
13
20
 
@@ -15,67 +22,67 @@ __all__ = ['ExternalOauthIntegrationArgs', 'ExternalOauthIntegration']
15
22
  class ExternalOauthIntegrationArgs:
16
23
  def __init__(__self__, *,
17
24
  enabled: pulumi.Input[bool],
18
- issuer: pulumi.Input[str],
19
- snowflake_user_mapping_attribute: pulumi.Input[str],
20
- token_user_mapping_claims: pulumi.Input[Sequence[pulumi.Input[str]]],
21
- type: pulumi.Input[str],
22
- allowed_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
23
- any_role_mode: Optional[pulumi.Input[str]] = None,
24
- audience_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
25
- blocked_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
25
+ external_oauth_issuer: pulumi.Input[str],
26
+ external_oauth_snowflake_user_mapping_attribute: pulumi.Input[str],
27
+ external_oauth_token_user_mapping_claims: pulumi.Input[Sequence[pulumi.Input[str]]],
28
+ external_oauth_type: pulumi.Input[str],
26
29
  comment: Optional[pulumi.Input[str]] = None,
27
- jws_keys_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
28
- name: Optional[pulumi.Input[str]] = None,
29
- rsa_public_key: Optional[pulumi.Input[str]] = None,
30
- rsa_public_key2: Optional[pulumi.Input[str]] = None,
31
- scope_delimiter: Optional[pulumi.Input[str]] = None,
32
- scope_mapping_attribute: Optional[pulumi.Input[str]] = None):
30
+ external_oauth_allowed_roles_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
31
+ external_oauth_any_role_mode: Optional[pulumi.Input[str]] = None,
32
+ external_oauth_audience_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
33
+ external_oauth_blocked_roles_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
34
+ external_oauth_jws_keys_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
35
+ external_oauth_rsa_public_key: Optional[pulumi.Input[str]] = None,
36
+ external_oauth_rsa_public_key2: Optional[pulumi.Input[str]] = None,
37
+ external_oauth_scope_delimiter: Optional[pulumi.Input[str]] = None,
38
+ external_oauth_scope_mapping_attribute: Optional[pulumi.Input[str]] = None,
39
+ name: Optional[pulumi.Input[str]] = None):
33
40
  """
34
41
  The set of arguments for constructing a ExternalOauthIntegration resource.
35
42
  :param pulumi.Input[bool] enabled: Specifies whether to initiate operation of the integration or suspend it.
36
- :param pulumi.Input[str] issuer: Specifies the URL to define the OAuth 2.0 authorization server.
37
- :param pulumi.Input[str] snowflake_user_mapping_attribute: Indicates which Snowflake user record attribute should be used to map the access token to a Snowflake user record.
38
- :param pulumi.Input[Sequence[pulumi.Input[str]]] token_user_mapping_claims: Specifies the access token claim or claims that can be used to map the access token to a Snowflake user record.
39
- :param pulumi.Input[str] type: Specifies the OAuth 2.0 authorization server to be Okta, Microsoft Azure AD, Ping Identity PingFederate, or a Custom OAuth 2.0 authorization server.
40
- :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_roles: Specifies the list of roles that the client can set as the primary role.
41
- :param pulumi.Input[str] any_role_mode: Specifies whether the OAuth client or user can use a role that is not defined in the OAuth access token.
42
- :param pulumi.Input[Sequence[pulumi.Input[str]]] audience_urls: Specifies additional values that can be used for the access token's audience validation on top of using the Customer's Snowflake Account URL
43
- :param pulumi.Input[Sequence[pulumi.Input[str]]] blocked_roles: Specifies the list of roles that a client cannot set as the primary role. Do not include ACCOUNTADMIN, ORGADMIN or SECURITYADMIN as they are already implicitly enforced and will cause in-place updates.
43
+ :param pulumi.Input[str] external_oauth_issuer: Specifies the URL to define the OAuth 2.0 authorization server.
44
+ :param pulumi.Input[str] external_oauth_snowflake_user_mapping_attribute: Indicates which Snowflake user record attribute should be used to map the access token to a Snowflake user record. Valid values are (case-insensitive): `LOGIN_NAME` | `EMAIL_ADDRESS`.
45
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] external_oauth_token_user_mapping_claims: Specifies the access token claim or claims that can be used to map the access token to a Snowflake user record. If removed from the config, the resource is recreated.
46
+ :param pulumi.Input[str] external_oauth_type: Specifies the OAuth 2.0 authorization server to be Okta, Microsoft Azure AD, Ping Identity PingFederate, or a Custom OAuth 2.0 authorization server. Valid values are (case-insensitive): `OKTA` | `AZURE` | `PING_FEDERATE` | `CUSTOM`.
44
47
  :param pulumi.Input[str] comment: Specifies a comment for the OAuth integration.
45
- :param pulumi.Input[Sequence[pulumi.Input[str]]] jws_keys_urls: Specifies the endpoint or a list of endpoints from which to download public keys or certificates to validate an External OAuth access token. The maximum number of URLs that can be specified in the list is 3.
46
- :param pulumi.Input[str] name: Specifies the name of the External Oath integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account.
47
- :param pulumi.Input[str] rsa_public_key: Specifies a Base64-encoded RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers.
48
- :param pulumi.Input[str] rsa_public_key2: Specifies a second RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers. Used for key rotation.
49
- :param pulumi.Input[str] scope_delimiter: Specifies the scope delimiter in the authorization token.
50
- :param pulumi.Input[str] scope_mapping_attribute: Specifies the access token claim to map the access token to an account role.
48
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] external_oauth_allowed_roles_lists: Specifies the list of roles that the client can set as the primary role. For more information about this resource, see docs.
49
+ :param pulumi.Input[str] external_oauth_any_role_mode: Specifies whether the OAuth client or user can use a role that is not defined in the OAuth access token. Valid values are (case-insensitive): `DISABLE` | `ENABLE` | `ENABLE_FOR_PRIVILEGE`.
50
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] external_oauth_audience_lists: Specifies additional values that can be used for the access token's audience validation on top of using the Customer's Snowflake Account URL
51
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] external_oauth_blocked_roles_lists: Specifies the list of roles that a client cannot set as the primary role. By default, this list includes the ACCOUNTADMIN, ORGADMIN and SECURITYADMIN roles. To remove these privileged roles from the list, use the ALTER ACCOUNT command to set the EXTERNAL*OAUTH*ADD*PRIVILEGED*ROLES*TO*BLOCKED*LIST account parameter to FALSE. For more information about this resource, see docs.
52
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] external_oauth_jws_keys_urls: Specifies the endpoint or a list of endpoints from which to download public keys or certificates to validate an External OAuth access token. The maximum number of URLs that can be specified in the list is 3. If removed from the config, the resource is recreated.
53
+ :param pulumi.Input[str] external_oauth_rsa_public_key: Specifies a Base64-encoded RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers. If removed from the config, the resource is recreated.
54
+ :param pulumi.Input[str] external_oauth_rsa_public_key2: Specifies a second RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers. Used for key rotation. If removed from the config, the resource is recreated.
55
+ :param pulumi.Input[str] external_oauth_scope_delimiter: Specifies the scope delimiter in the authorization token.
56
+ :param pulumi.Input[str] external_oauth_scope_mapping_attribute: Specifies the access token claim to map the access token to an account role. If removed from the config, the resource is recreated.
57
+ :param pulumi.Input[str] name: Specifies the name of the External Oath integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
51
58
  """
52
59
  pulumi.set(__self__, "enabled", enabled)
53
- pulumi.set(__self__, "issuer", issuer)
54
- pulumi.set(__self__, "snowflake_user_mapping_attribute", snowflake_user_mapping_attribute)
55
- pulumi.set(__self__, "token_user_mapping_claims", token_user_mapping_claims)
56
- pulumi.set(__self__, "type", type)
57
- if allowed_roles is not None:
58
- pulumi.set(__self__, "allowed_roles", allowed_roles)
59
- if any_role_mode is not None:
60
- pulumi.set(__self__, "any_role_mode", any_role_mode)
61
- if audience_urls is not None:
62
- pulumi.set(__self__, "audience_urls", audience_urls)
63
- if blocked_roles is not None:
64
- pulumi.set(__self__, "blocked_roles", blocked_roles)
60
+ pulumi.set(__self__, "external_oauth_issuer", external_oauth_issuer)
61
+ pulumi.set(__self__, "external_oauth_snowflake_user_mapping_attribute", external_oauth_snowflake_user_mapping_attribute)
62
+ pulumi.set(__self__, "external_oauth_token_user_mapping_claims", external_oauth_token_user_mapping_claims)
63
+ pulumi.set(__self__, "external_oauth_type", external_oauth_type)
65
64
  if comment is not None:
66
65
  pulumi.set(__self__, "comment", comment)
67
- if jws_keys_urls is not None:
68
- pulumi.set(__self__, "jws_keys_urls", jws_keys_urls)
66
+ if external_oauth_allowed_roles_lists is not None:
67
+ pulumi.set(__self__, "external_oauth_allowed_roles_lists", external_oauth_allowed_roles_lists)
68
+ if external_oauth_any_role_mode is not None:
69
+ pulumi.set(__self__, "external_oauth_any_role_mode", external_oauth_any_role_mode)
70
+ if external_oauth_audience_lists is not None:
71
+ pulumi.set(__self__, "external_oauth_audience_lists", external_oauth_audience_lists)
72
+ if external_oauth_blocked_roles_lists is not None:
73
+ pulumi.set(__self__, "external_oauth_blocked_roles_lists", external_oauth_blocked_roles_lists)
74
+ if external_oauth_jws_keys_urls is not None:
75
+ pulumi.set(__self__, "external_oauth_jws_keys_urls", external_oauth_jws_keys_urls)
76
+ if external_oauth_rsa_public_key is not None:
77
+ pulumi.set(__self__, "external_oauth_rsa_public_key", external_oauth_rsa_public_key)
78
+ if external_oauth_rsa_public_key2 is not None:
79
+ pulumi.set(__self__, "external_oauth_rsa_public_key2", external_oauth_rsa_public_key2)
80
+ if external_oauth_scope_delimiter is not None:
81
+ pulumi.set(__self__, "external_oauth_scope_delimiter", external_oauth_scope_delimiter)
82
+ if external_oauth_scope_mapping_attribute is not None:
83
+ pulumi.set(__self__, "external_oauth_scope_mapping_attribute", external_oauth_scope_mapping_attribute)
69
84
  if name is not None:
70
85
  pulumi.set(__self__, "name", name)
71
- if rsa_public_key is not None:
72
- pulumi.set(__self__, "rsa_public_key", rsa_public_key)
73
- if rsa_public_key2 is not None:
74
- pulumi.set(__self__, "rsa_public_key2", rsa_public_key2)
75
- if scope_delimiter is not None:
76
- pulumi.set(__self__, "scope_delimiter", scope_delimiter)
77
- if scope_mapping_attribute is not None:
78
- pulumi.set(__self__, "scope_mapping_attribute", scope_mapping_attribute)
79
86
 
80
87
  @property
81
88
  @pulumi.getter
@@ -90,464 +97,512 @@ class ExternalOauthIntegrationArgs:
90
97
  pulumi.set(self, "enabled", value)
91
98
 
92
99
  @property
93
- @pulumi.getter
94
- def issuer(self) -> pulumi.Input[str]:
100
+ @pulumi.getter(name="externalOauthIssuer")
101
+ def external_oauth_issuer(self) -> pulumi.Input[str]:
95
102
  """
96
103
  Specifies the URL to define the OAuth 2.0 authorization server.
97
104
  """
98
- return pulumi.get(self, "issuer")
105
+ return pulumi.get(self, "external_oauth_issuer")
99
106
 
100
- @issuer.setter
101
- def issuer(self, value: pulumi.Input[str]):
102
- pulumi.set(self, "issuer", value)
107
+ @external_oauth_issuer.setter
108
+ def external_oauth_issuer(self, value: pulumi.Input[str]):
109
+ pulumi.set(self, "external_oauth_issuer", value)
103
110
 
104
111
  @property
105
- @pulumi.getter(name="snowflakeUserMappingAttribute")
106
- def snowflake_user_mapping_attribute(self) -> pulumi.Input[str]:
112
+ @pulumi.getter(name="externalOauthSnowflakeUserMappingAttribute")
113
+ def external_oauth_snowflake_user_mapping_attribute(self) -> pulumi.Input[str]:
107
114
  """
108
- Indicates which Snowflake user record attribute should be used to map the access token to a Snowflake user record.
115
+ Indicates which Snowflake user record attribute should be used to map the access token to a Snowflake user record. Valid values are (case-insensitive): `LOGIN_NAME` | `EMAIL_ADDRESS`.
109
116
  """
110
- return pulumi.get(self, "snowflake_user_mapping_attribute")
117
+ return pulumi.get(self, "external_oauth_snowflake_user_mapping_attribute")
111
118
 
112
- @snowflake_user_mapping_attribute.setter
113
- def snowflake_user_mapping_attribute(self, value: pulumi.Input[str]):
114
- pulumi.set(self, "snowflake_user_mapping_attribute", value)
119
+ @external_oauth_snowflake_user_mapping_attribute.setter
120
+ def external_oauth_snowflake_user_mapping_attribute(self, value: pulumi.Input[str]):
121
+ pulumi.set(self, "external_oauth_snowflake_user_mapping_attribute", value)
115
122
 
116
123
  @property
117
- @pulumi.getter(name="tokenUserMappingClaims")
118
- def token_user_mapping_claims(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
124
+ @pulumi.getter(name="externalOauthTokenUserMappingClaims")
125
+ def external_oauth_token_user_mapping_claims(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
119
126
  """
120
- Specifies the access token claim or claims that can be used to map the access token to a Snowflake user record.
127
+ Specifies the access token claim or claims that can be used to map the access token to a Snowflake user record. If removed from the config, the resource is recreated.
121
128
  """
122
- return pulumi.get(self, "token_user_mapping_claims")
129
+ return pulumi.get(self, "external_oauth_token_user_mapping_claims")
123
130
 
124
- @token_user_mapping_claims.setter
125
- def token_user_mapping_claims(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
126
- pulumi.set(self, "token_user_mapping_claims", value)
131
+ @external_oauth_token_user_mapping_claims.setter
132
+ def external_oauth_token_user_mapping_claims(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
133
+ pulumi.set(self, "external_oauth_token_user_mapping_claims", value)
127
134
 
128
135
  @property
129
- @pulumi.getter
130
- def type(self) -> pulumi.Input[str]:
136
+ @pulumi.getter(name="externalOauthType")
137
+ def external_oauth_type(self) -> pulumi.Input[str]:
131
138
  """
132
- Specifies the OAuth 2.0 authorization server to be Okta, Microsoft Azure AD, Ping Identity PingFederate, or a Custom OAuth 2.0 authorization server.
139
+ Specifies the OAuth 2.0 authorization server to be Okta, Microsoft Azure AD, Ping Identity PingFederate, or a Custom OAuth 2.0 authorization server. Valid values are (case-insensitive): `OKTA` | `AZURE` | `PING_FEDERATE` | `CUSTOM`.
133
140
  """
134
- return pulumi.get(self, "type")
141
+ return pulumi.get(self, "external_oauth_type")
135
142
 
136
- @type.setter
137
- def type(self, value: pulumi.Input[str]):
138
- pulumi.set(self, "type", value)
143
+ @external_oauth_type.setter
144
+ def external_oauth_type(self, value: pulumi.Input[str]):
145
+ pulumi.set(self, "external_oauth_type", value)
139
146
 
140
147
  @property
141
- @pulumi.getter(name="allowedRoles")
142
- def allowed_roles(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
148
+ @pulumi.getter
149
+ def comment(self) -> Optional[pulumi.Input[str]]:
143
150
  """
144
- Specifies the list of roles that the client can set as the primary role.
151
+ Specifies a comment for the OAuth integration.
145
152
  """
146
- return pulumi.get(self, "allowed_roles")
153
+ return pulumi.get(self, "comment")
147
154
 
148
- @allowed_roles.setter
149
- def allowed_roles(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
150
- pulumi.set(self, "allowed_roles", value)
155
+ @comment.setter
156
+ def comment(self, value: Optional[pulumi.Input[str]]):
157
+ pulumi.set(self, "comment", value)
151
158
 
152
159
  @property
153
- @pulumi.getter(name="anyRoleMode")
154
- def any_role_mode(self) -> Optional[pulumi.Input[str]]:
160
+ @pulumi.getter(name="externalOauthAllowedRolesLists")
161
+ def external_oauth_allowed_roles_lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
155
162
  """
156
- Specifies whether the OAuth client or user can use a role that is not defined in the OAuth access token.
163
+ Specifies the list of roles that the client can set as the primary role. For more information about this resource, see docs.
157
164
  """
158
- return pulumi.get(self, "any_role_mode")
165
+ return pulumi.get(self, "external_oauth_allowed_roles_lists")
159
166
 
160
- @any_role_mode.setter
161
- def any_role_mode(self, value: Optional[pulumi.Input[str]]):
162
- pulumi.set(self, "any_role_mode", value)
167
+ @external_oauth_allowed_roles_lists.setter
168
+ def external_oauth_allowed_roles_lists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
169
+ pulumi.set(self, "external_oauth_allowed_roles_lists", value)
163
170
 
164
171
  @property
165
- @pulumi.getter(name="audienceUrls")
166
- def audience_urls(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
172
+ @pulumi.getter(name="externalOauthAnyRoleMode")
173
+ def external_oauth_any_role_mode(self) -> Optional[pulumi.Input[str]]:
167
174
  """
168
- Specifies additional values that can be used for the access token's audience validation on top of using the Customer's Snowflake Account URL
175
+ Specifies whether the OAuth client or user can use a role that is not defined in the OAuth access token. Valid values are (case-insensitive): `DISABLE` | `ENABLE` | `ENABLE_FOR_PRIVILEGE`.
169
176
  """
170
- return pulumi.get(self, "audience_urls")
177
+ return pulumi.get(self, "external_oauth_any_role_mode")
171
178
 
172
- @audience_urls.setter
173
- def audience_urls(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
174
- pulumi.set(self, "audience_urls", value)
179
+ @external_oauth_any_role_mode.setter
180
+ def external_oauth_any_role_mode(self, value: Optional[pulumi.Input[str]]):
181
+ pulumi.set(self, "external_oauth_any_role_mode", value)
175
182
 
176
183
  @property
177
- @pulumi.getter(name="blockedRoles")
178
- def blocked_roles(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
184
+ @pulumi.getter(name="externalOauthAudienceLists")
185
+ def external_oauth_audience_lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
179
186
  """
180
- Specifies the list of roles that a client cannot set as the primary role. Do not include ACCOUNTADMIN, ORGADMIN or SECURITYADMIN as they are already implicitly enforced and will cause in-place updates.
187
+ Specifies additional values that can be used for the access token's audience validation on top of using the Customer's Snowflake Account URL
181
188
  """
182
- return pulumi.get(self, "blocked_roles")
189
+ return pulumi.get(self, "external_oauth_audience_lists")
183
190
 
184
- @blocked_roles.setter
185
- def blocked_roles(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
186
- pulumi.set(self, "blocked_roles", value)
191
+ @external_oauth_audience_lists.setter
192
+ def external_oauth_audience_lists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
193
+ pulumi.set(self, "external_oauth_audience_lists", value)
187
194
 
188
195
  @property
189
- @pulumi.getter
190
- def comment(self) -> Optional[pulumi.Input[str]]:
196
+ @pulumi.getter(name="externalOauthBlockedRolesLists")
197
+ def external_oauth_blocked_roles_lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
191
198
  """
192
- Specifies a comment for the OAuth integration.
199
+ Specifies the list of roles that a client cannot set as the primary role. By default, this list includes the ACCOUNTADMIN, ORGADMIN and SECURITYADMIN roles. To remove these privileged roles from the list, use the ALTER ACCOUNT command to set the EXTERNAL*OAUTH*ADD*PRIVILEGED*ROLES*TO*BLOCKED*LIST account parameter to FALSE. For more information about this resource, see docs.
193
200
  """
194
- return pulumi.get(self, "comment")
201
+ return pulumi.get(self, "external_oauth_blocked_roles_lists")
195
202
 
196
- @comment.setter
197
- def comment(self, value: Optional[pulumi.Input[str]]):
198
- pulumi.set(self, "comment", value)
203
+ @external_oauth_blocked_roles_lists.setter
204
+ def external_oauth_blocked_roles_lists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
205
+ pulumi.set(self, "external_oauth_blocked_roles_lists", value)
199
206
 
200
207
  @property
201
- @pulumi.getter(name="jwsKeysUrls")
202
- def jws_keys_urls(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
208
+ @pulumi.getter(name="externalOauthJwsKeysUrls")
209
+ def external_oauth_jws_keys_urls(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
203
210
  """
204
- Specifies the endpoint or a list of endpoints from which to download public keys or certificates to validate an External OAuth access token. The maximum number of URLs that can be specified in the list is 3.
211
+ Specifies the endpoint or a list of endpoints from which to download public keys or certificates to validate an External OAuth access token. The maximum number of URLs that can be specified in the list is 3. If removed from the config, the resource is recreated.
205
212
  """
206
- return pulumi.get(self, "jws_keys_urls")
213
+ return pulumi.get(self, "external_oauth_jws_keys_urls")
207
214
 
208
- @jws_keys_urls.setter
209
- def jws_keys_urls(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
210
- pulumi.set(self, "jws_keys_urls", value)
215
+ @external_oauth_jws_keys_urls.setter
216
+ def external_oauth_jws_keys_urls(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
217
+ pulumi.set(self, "external_oauth_jws_keys_urls", value)
211
218
 
212
219
  @property
213
- @pulumi.getter
214
- def name(self) -> Optional[pulumi.Input[str]]:
220
+ @pulumi.getter(name="externalOauthRsaPublicKey")
221
+ def external_oauth_rsa_public_key(self) -> Optional[pulumi.Input[str]]:
215
222
  """
216
- Specifies the name of the External Oath integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account.
223
+ Specifies a Base64-encoded RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers. If removed from the config, the resource is recreated.
217
224
  """
218
- return pulumi.get(self, "name")
225
+ return pulumi.get(self, "external_oauth_rsa_public_key")
219
226
 
220
- @name.setter
221
- def name(self, value: Optional[pulumi.Input[str]]):
222
- pulumi.set(self, "name", value)
227
+ @external_oauth_rsa_public_key.setter
228
+ def external_oauth_rsa_public_key(self, value: Optional[pulumi.Input[str]]):
229
+ pulumi.set(self, "external_oauth_rsa_public_key", value)
223
230
 
224
231
  @property
225
- @pulumi.getter(name="rsaPublicKey")
226
- def rsa_public_key(self) -> Optional[pulumi.Input[str]]:
232
+ @pulumi.getter(name="externalOauthRsaPublicKey2")
233
+ def external_oauth_rsa_public_key2(self) -> Optional[pulumi.Input[str]]:
227
234
  """
228
- Specifies a Base64-encoded RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers.
235
+ Specifies a second RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers. Used for key rotation. If removed from the config, the resource is recreated.
229
236
  """
230
- return pulumi.get(self, "rsa_public_key")
237
+ return pulumi.get(self, "external_oauth_rsa_public_key2")
231
238
 
232
- @rsa_public_key.setter
233
- def rsa_public_key(self, value: Optional[pulumi.Input[str]]):
234
- pulumi.set(self, "rsa_public_key", value)
239
+ @external_oauth_rsa_public_key2.setter
240
+ def external_oauth_rsa_public_key2(self, value: Optional[pulumi.Input[str]]):
241
+ pulumi.set(self, "external_oauth_rsa_public_key2", value)
235
242
 
236
243
  @property
237
- @pulumi.getter(name="rsaPublicKey2")
238
- def rsa_public_key2(self) -> Optional[pulumi.Input[str]]:
244
+ @pulumi.getter(name="externalOauthScopeDelimiter")
245
+ def external_oauth_scope_delimiter(self) -> Optional[pulumi.Input[str]]:
239
246
  """
240
- Specifies a second RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers. Used for key rotation.
247
+ Specifies the scope delimiter in the authorization token.
241
248
  """
242
- return pulumi.get(self, "rsa_public_key2")
249
+ return pulumi.get(self, "external_oauth_scope_delimiter")
243
250
 
244
- @rsa_public_key2.setter
245
- def rsa_public_key2(self, value: Optional[pulumi.Input[str]]):
246
- pulumi.set(self, "rsa_public_key2", value)
251
+ @external_oauth_scope_delimiter.setter
252
+ def external_oauth_scope_delimiter(self, value: Optional[pulumi.Input[str]]):
253
+ pulumi.set(self, "external_oauth_scope_delimiter", value)
247
254
 
248
255
  @property
249
- @pulumi.getter(name="scopeDelimiter")
250
- def scope_delimiter(self) -> Optional[pulumi.Input[str]]:
256
+ @pulumi.getter(name="externalOauthScopeMappingAttribute")
257
+ def external_oauth_scope_mapping_attribute(self) -> Optional[pulumi.Input[str]]:
251
258
  """
252
- Specifies the scope delimiter in the authorization token.
259
+ Specifies the access token claim to map the access token to an account role. If removed from the config, the resource is recreated.
253
260
  """
254
- return pulumi.get(self, "scope_delimiter")
261
+ return pulumi.get(self, "external_oauth_scope_mapping_attribute")
255
262
 
256
- @scope_delimiter.setter
257
- def scope_delimiter(self, value: Optional[pulumi.Input[str]]):
258
- pulumi.set(self, "scope_delimiter", value)
263
+ @external_oauth_scope_mapping_attribute.setter
264
+ def external_oauth_scope_mapping_attribute(self, value: Optional[pulumi.Input[str]]):
265
+ pulumi.set(self, "external_oauth_scope_mapping_attribute", value)
259
266
 
260
267
  @property
261
- @pulumi.getter(name="scopeMappingAttribute")
262
- def scope_mapping_attribute(self) -> Optional[pulumi.Input[str]]:
268
+ @pulumi.getter
269
+ def name(self) -> Optional[pulumi.Input[str]]:
263
270
  """
264
- Specifies the access token claim to map the access token to an account role.
271
+ Specifies the name of the External Oath integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
265
272
  """
266
- return pulumi.get(self, "scope_mapping_attribute")
273
+ return pulumi.get(self, "name")
267
274
 
268
- @scope_mapping_attribute.setter
269
- def scope_mapping_attribute(self, value: Optional[pulumi.Input[str]]):
270
- pulumi.set(self, "scope_mapping_attribute", value)
275
+ @name.setter
276
+ def name(self, value: Optional[pulumi.Input[str]]):
277
+ pulumi.set(self, "name", value)
271
278
 
272
279
 
273
280
  @pulumi.input_type
274
281
  class _ExternalOauthIntegrationState:
275
282
  def __init__(__self__, *,
276
- allowed_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
277
- any_role_mode: Optional[pulumi.Input[str]] = None,
278
- audience_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
279
- blocked_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
280
283
  comment: Optional[pulumi.Input[str]] = None,
281
- created_on: Optional[pulumi.Input[str]] = None,
284
+ describe_outputs: Optional[pulumi.Input[Sequence[pulumi.Input['ExternalOauthIntegrationDescribeOutputArgs']]]] = None,
282
285
  enabled: Optional[pulumi.Input[bool]] = None,
283
- issuer: Optional[pulumi.Input[str]] = None,
284
- jws_keys_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
286
+ external_oauth_allowed_roles_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
287
+ external_oauth_any_role_mode: Optional[pulumi.Input[str]] = None,
288
+ external_oauth_audience_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
289
+ external_oauth_blocked_roles_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
290
+ external_oauth_issuer: Optional[pulumi.Input[str]] = None,
291
+ external_oauth_jws_keys_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
292
+ external_oauth_rsa_public_key: Optional[pulumi.Input[str]] = None,
293
+ external_oauth_rsa_public_key2: Optional[pulumi.Input[str]] = None,
294
+ external_oauth_scope_delimiter: Optional[pulumi.Input[str]] = None,
295
+ external_oauth_scope_mapping_attribute: Optional[pulumi.Input[str]] = None,
296
+ external_oauth_snowflake_user_mapping_attribute: Optional[pulumi.Input[str]] = None,
297
+ external_oauth_token_user_mapping_claims: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
298
+ external_oauth_type: Optional[pulumi.Input[str]] = None,
299
+ fully_qualified_name: Optional[pulumi.Input[str]] = None,
285
300
  name: Optional[pulumi.Input[str]] = None,
286
- rsa_public_key: Optional[pulumi.Input[str]] = None,
287
- rsa_public_key2: Optional[pulumi.Input[str]] = None,
288
- scope_delimiter: Optional[pulumi.Input[str]] = None,
289
- scope_mapping_attribute: Optional[pulumi.Input[str]] = None,
290
- snowflake_user_mapping_attribute: Optional[pulumi.Input[str]] = None,
291
- token_user_mapping_claims: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
292
- type: Optional[pulumi.Input[str]] = None):
301
+ related_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ExternalOauthIntegrationRelatedParameterArgs']]]] = None,
302
+ show_outputs: Optional[pulumi.Input[Sequence[pulumi.Input['ExternalOauthIntegrationShowOutputArgs']]]] = None):
293
303
  """
294
304
  Input properties used for looking up and filtering ExternalOauthIntegration resources.
295
- :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_roles: Specifies the list of roles that the client can set as the primary role.
296
- :param pulumi.Input[str] any_role_mode: Specifies whether the OAuth client or user can use a role that is not defined in the OAuth access token.
297
- :param pulumi.Input[Sequence[pulumi.Input[str]]] audience_urls: Specifies additional values that can be used for the access token's audience validation on top of using the Customer's Snowflake Account URL
298
- :param pulumi.Input[Sequence[pulumi.Input[str]]] blocked_roles: Specifies the list of roles that a client cannot set as the primary role. Do not include ACCOUNTADMIN, ORGADMIN or SECURITYADMIN as they are already implicitly enforced and will cause in-place updates.
299
305
  :param pulumi.Input[str] comment: Specifies a comment for the OAuth integration.
300
- :param pulumi.Input[str] created_on: Date and time when the External OAUTH integration was created.
306
+ :param pulumi.Input[Sequence[pulumi.Input['ExternalOauthIntegrationDescribeOutputArgs']]] describe_outputs: Outputs the result of `DESCRIBE SECURITY INTEGRATIONS` for the given security integration.
301
307
  :param pulumi.Input[bool] enabled: Specifies whether to initiate operation of the integration or suspend it.
302
- :param pulumi.Input[str] issuer: Specifies the URL to define the OAuth 2.0 authorization server.
303
- :param pulumi.Input[Sequence[pulumi.Input[str]]] jws_keys_urls: Specifies the endpoint or a list of endpoints from which to download public keys or certificates to validate an External OAuth access token. The maximum number of URLs that can be specified in the list is 3.
304
- :param pulumi.Input[str] name: Specifies the name of the External Oath integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account.
305
- :param pulumi.Input[str] rsa_public_key: Specifies a Base64-encoded RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers.
306
- :param pulumi.Input[str] rsa_public_key2: Specifies a second RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers. Used for key rotation.
307
- :param pulumi.Input[str] scope_delimiter: Specifies the scope delimiter in the authorization token.
308
- :param pulumi.Input[str] scope_mapping_attribute: Specifies the access token claim to map the access token to an account role.
309
- :param pulumi.Input[str] snowflake_user_mapping_attribute: Indicates which Snowflake user record attribute should be used to map the access token to a Snowflake user record.
310
- :param pulumi.Input[Sequence[pulumi.Input[str]]] token_user_mapping_claims: Specifies the access token claim or claims that can be used to map the access token to a Snowflake user record.
311
- :param pulumi.Input[str] type: Specifies the OAuth 2.0 authorization server to be Okta, Microsoft Azure AD, Ping Identity PingFederate, or a Custom OAuth 2.0 authorization server.
312
- """
313
- if allowed_roles is not None:
314
- pulumi.set(__self__, "allowed_roles", allowed_roles)
315
- if any_role_mode is not None:
316
- pulumi.set(__self__, "any_role_mode", any_role_mode)
317
- if audience_urls is not None:
318
- pulumi.set(__self__, "audience_urls", audience_urls)
319
- if blocked_roles is not None:
320
- pulumi.set(__self__, "blocked_roles", blocked_roles)
308
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] external_oauth_allowed_roles_lists: Specifies the list of roles that the client can set as the primary role. For more information about this resource, see docs.
309
+ :param pulumi.Input[str] external_oauth_any_role_mode: Specifies whether the OAuth client or user can use a role that is not defined in the OAuth access token. Valid values are (case-insensitive): `DISABLE` | `ENABLE` | `ENABLE_FOR_PRIVILEGE`.
310
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] external_oauth_audience_lists: Specifies additional values that can be used for the access token's audience validation on top of using the Customer's Snowflake Account URL
311
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] external_oauth_blocked_roles_lists: Specifies the list of roles that a client cannot set as the primary role. By default, this list includes the ACCOUNTADMIN, ORGADMIN and SECURITYADMIN roles. To remove these privileged roles from the list, use the ALTER ACCOUNT command to set the EXTERNAL*OAUTH*ADD*PRIVILEGED*ROLES*TO*BLOCKED*LIST account parameter to FALSE. For more information about this resource, see docs.
312
+ :param pulumi.Input[str] external_oauth_issuer: Specifies the URL to define the OAuth 2.0 authorization server.
313
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] external_oauth_jws_keys_urls: Specifies the endpoint or a list of endpoints from which to download public keys or certificates to validate an External OAuth access token. The maximum number of URLs that can be specified in the list is 3. If removed from the config, the resource is recreated.
314
+ :param pulumi.Input[str] external_oauth_rsa_public_key: Specifies a Base64-encoded RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers. If removed from the config, the resource is recreated.
315
+ :param pulumi.Input[str] external_oauth_rsa_public_key2: Specifies a second RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers. Used for key rotation. If removed from the config, the resource is recreated.
316
+ :param pulumi.Input[str] external_oauth_scope_delimiter: Specifies the scope delimiter in the authorization token.
317
+ :param pulumi.Input[str] external_oauth_scope_mapping_attribute: Specifies the access token claim to map the access token to an account role. If removed from the config, the resource is recreated.
318
+ :param pulumi.Input[str] external_oauth_snowflake_user_mapping_attribute: Indicates which Snowflake user record attribute should be used to map the access token to a Snowflake user record. Valid values are (case-insensitive): `LOGIN_NAME` | `EMAIL_ADDRESS`.
319
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] external_oauth_token_user_mapping_claims: Specifies the access token claim or claims that can be used to map the access token to a Snowflake user record. If removed from the config, the resource is recreated.
320
+ :param pulumi.Input[str] external_oauth_type: Specifies the OAuth 2.0 authorization server to be Okta, Microsoft Azure AD, Ping Identity PingFederate, or a Custom OAuth 2.0 authorization server. Valid values are (case-insensitive): `OKTA` | `AZURE` | `PING_FEDERATE` | `CUSTOM`.
321
+ :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).
322
+ :param pulumi.Input[str] name: Specifies the name of the External Oath integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
323
+ :param pulumi.Input[Sequence[pulumi.Input['ExternalOauthIntegrationRelatedParameterArgs']]] related_parameters: Parameters related to this security integration.
324
+ :param pulumi.Input[Sequence[pulumi.Input['ExternalOauthIntegrationShowOutputArgs']]] show_outputs: Outputs the result of `SHOW SECURITY INTEGRATIONS` for the given security integration.
325
+ """
321
326
  if comment is not None:
322
327
  pulumi.set(__self__, "comment", comment)
323
- if created_on is not None:
324
- pulumi.set(__self__, "created_on", created_on)
328
+ if describe_outputs is not None:
329
+ pulumi.set(__self__, "describe_outputs", describe_outputs)
325
330
  if enabled is not None:
326
331
  pulumi.set(__self__, "enabled", enabled)
327
- if issuer is not None:
328
- pulumi.set(__self__, "issuer", issuer)
329
- if jws_keys_urls is not None:
330
- pulumi.set(__self__, "jws_keys_urls", jws_keys_urls)
332
+ if external_oauth_allowed_roles_lists is not None:
333
+ pulumi.set(__self__, "external_oauth_allowed_roles_lists", external_oauth_allowed_roles_lists)
334
+ if external_oauth_any_role_mode is not None:
335
+ pulumi.set(__self__, "external_oauth_any_role_mode", external_oauth_any_role_mode)
336
+ if external_oauth_audience_lists is not None:
337
+ pulumi.set(__self__, "external_oauth_audience_lists", external_oauth_audience_lists)
338
+ if external_oauth_blocked_roles_lists is not None:
339
+ pulumi.set(__self__, "external_oauth_blocked_roles_lists", external_oauth_blocked_roles_lists)
340
+ if external_oauth_issuer is not None:
341
+ pulumi.set(__self__, "external_oauth_issuer", external_oauth_issuer)
342
+ if external_oauth_jws_keys_urls is not None:
343
+ pulumi.set(__self__, "external_oauth_jws_keys_urls", external_oauth_jws_keys_urls)
344
+ if external_oauth_rsa_public_key is not None:
345
+ pulumi.set(__self__, "external_oauth_rsa_public_key", external_oauth_rsa_public_key)
346
+ if external_oauth_rsa_public_key2 is not None:
347
+ pulumi.set(__self__, "external_oauth_rsa_public_key2", external_oauth_rsa_public_key2)
348
+ if external_oauth_scope_delimiter is not None:
349
+ pulumi.set(__self__, "external_oauth_scope_delimiter", external_oauth_scope_delimiter)
350
+ if external_oauth_scope_mapping_attribute is not None:
351
+ pulumi.set(__self__, "external_oauth_scope_mapping_attribute", external_oauth_scope_mapping_attribute)
352
+ if external_oauth_snowflake_user_mapping_attribute is not None:
353
+ pulumi.set(__self__, "external_oauth_snowflake_user_mapping_attribute", external_oauth_snowflake_user_mapping_attribute)
354
+ if external_oauth_token_user_mapping_claims is not None:
355
+ pulumi.set(__self__, "external_oauth_token_user_mapping_claims", external_oauth_token_user_mapping_claims)
356
+ if external_oauth_type is not None:
357
+ pulumi.set(__self__, "external_oauth_type", external_oauth_type)
358
+ if fully_qualified_name is not None:
359
+ pulumi.set(__self__, "fully_qualified_name", fully_qualified_name)
331
360
  if name is not None:
332
361
  pulumi.set(__self__, "name", name)
333
- if rsa_public_key is not None:
334
- pulumi.set(__self__, "rsa_public_key", rsa_public_key)
335
- if rsa_public_key2 is not None:
336
- pulumi.set(__self__, "rsa_public_key2", rsa_public_key2)
337
- if scope_delimiter is not None:
338
- pulumi.set(__self__, "scope_delimiter", scope_delimiter)
339
- if scope_mapping_attribute is not None:
340
- pulumi.set(__self__, "scope_mapping_attribute", scope_mapping_attribute)
341
- if snowflake_user_mapping_attribute is not None:
342
- pulumi.set(__self__, "snowflake_user_mapping_attribute", snowflake_user_mapping_attribute)
343
- if token_user_mapping_claims is not None:
344
- pulumi.set(__self__, "token_user_mapping_claims", token_user_mapping_claims)
345
- if type is not None:
346
- pulumi.set(__self__, "type", type)
362
+ if related_parameters is not None:
363
+ pulumi.set(__self__, "related_parameters", related_parameters)
364
+ if show_outputs is not None:
365
+ pulumi.set(__self__, "show_outputs", show_outputs)
347
366
 
348
367
  @property
349
- @pulumi.getter(name="allowedRoles")
350
- def allowed_roles(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
368
+ @pulumi.getter
369
+ def comment(self) -> Optional[pulumi.Input[str]]:
351
370
  """
352
- Specifies the list of roles that the client can set as the primary role.
371
+ Specifies a comment for the OAuth integration.
353
372
  """
354
- return pulumi.get(self, "allowed_roles")
373
+ return pulumi.get(self, "comment")
355
374
 
356
- @allowed_roles.setter
357
- def allowed_roles(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
358
- pulumi.set(self, "allowed_roles", value)
375
+ @comment.setter
376
+ def comment(self, value: Optional[pulumi.Input[str]]):
377
+ pulumi.set(self, "comment", value)
359
378
 
360
379
  @property
361
- @pulumi.getter(name="anyRoleMode")
362
- def any_role_mode(self) -> Optional[pulumi.Input[str]]:
380
+ @pulumi.getter(name="describeOutputs")
381
+ def describe_outputs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ExternalOauthIntegrationDescribeOutputArgs']]]]:
363
382
  """
364
- Specifies whether the OAuth client or user can use a role that is not defined in the OAuth access token.
383
+ Outputs the result of `DESCRIBE SECURITY INTEGRATIONS` for the given security integration.
365
384
  """
366
- return pulumi.get(self, "any_role_mode")
385
+ return pulumi.get(self, "describe_outputs")
367
386
 
368
- @any_role_mode.setter
369
- def any_role_mode(self, value: Optional[pulumi.Input[str]]):
370
- pulumi.set(self, "any_role_mode", value)
387
+ @describe_outputs.setter
388
+ def describe_outputs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ExternalOauthIntegrationDescribeOutputArgs']]]]):
389
+ pulumi.set(self, "describe_outputs", value)
371
390
 
372
391
  @property
373
- @pulumi.getter(name="audienceUrls")
374
- def audience_urls(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
392
+ @pulumi.getter
393
+ def enabled(self) -> Optional[pulumi.Input[bool]]:
375
394
  """
376
- Specifies additional values that can be used for the access token's audience validation on top of using the Customer's Snowflake Account URL
395
+ Specifies whether to initiate operation of the integration or suspend it.
377
396
  """
378
- return pulumi.get(self, "audience_urls")
397
+ return pulumi.get(self, "enabled")
379
398
 
380
- @audience_urls.setter
381
- def audience_urls(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
382
- pulumi.set(self, "audience_urls", value)
399
+ @enabled.setter
400
+ def enabled(self, value: Optional[pulumi.Input[bool]]):
401
+ pulumi.set(self, "enabled", value)
383
402
 
384
403
  @property
385
- @pulumi.getter(name="blockedRoles")
386
- def blocked_roles(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
404
+ @pulumi.getter(name="externalOauthAllowedRolesLists")
405
+ def external_oauth_allowed_roles_lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
387
406
  """
388
- Specifies the list of roles that a client cannot set as the primary role. Do not include ACCOUNTADMIN, ORGADMIN or SECURITYADMIN as they are already implicitly enforced and will cause in-place updates.
407
+ Specifies the list of roles that the client can set as the primary role. For more information about this resource, see docs.
389
408
  """
390
- return pulumi.get(self, "blocked_roles")
409
+ return pulumi.get(self, "external_oauth_allowed_roles_lists")
391
410
 
392
- @blocked_roles.setter
393
- def blocked_roles(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
394
- pulumi.set(self, "blocked_roles", value)
411
+ @external_oauth_allowed_roles_lists.setter
412
+ def external_oauth_allowed_roles_lists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
413
+ pulumi.set(self, "external_oauth_allowed_roles_lists", value)
395
414
 
396
415
  @property
397
- @pulumi.getter
398
- def comment(self) -> Optional[pulumi.Input[str]]:
416
+ @pulumi.getter(name="externalOauthAnyRoleMode")
417
+ def external_oauth_any_role_mode(self) -> Optional[pulumi.Input[str]]:
399
418
  """
400
- Specifies a comment for the OAuth integration.
419
+ Specifies whether the OAuth client or user can use a role that is not defined in the OAuth access token. Valid values are (case-insensitive): `DISABLE` | `ENABLE` | `ENABLE_FOR_PRIVILEGE`.
401
420
  """
402
- return pulumi.get(self, "comment")
421
+ return pulumi.get(self, "external_oauth_any_role_mode")
403
422
 
404
- @comment.setter
405
- def comment(self, value: Optional[pulumi.Input[str]]):
406
- pulumi.set(self, "comment", value)
423
+ @external_oauth_any_role_mode.setter
424
+ def external_oauth_any_role_mode(self, value: Optional[pulumi.Input[str]]):
425
+ pulumi.set(self, "external_oauth_any_role_mode", value)
407
426
 
408
427
  @property
409
- @pulumi.getter(name="createdOn")
410
- def created_on(self) -> Optional[pulumi.Input[str]]:
428
+ @pulumi.getter(name="externalOauthAudienceLists")
429
+ def external_oauth_audience_lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
411
430
  """
412
- Date and time when the External OAUTH integration was created.
431
+ Specifies additional values that can be used for the access token's audience validation on top of using the Customer's Snowflake Account URL
413
432
  """
414
- return pulumi.get(self, "created_on")
433
+ return pulumi.get(self, "external_oauth_audience_lists")
415
434
 
416
- @created_on.setter
417
- def created_on(self, value: Optional[pulumi.Input[str]]):
418
- pulumi.set(self, "created_on", value)
435
+ @external_oauth_audience_lists.setter
436
+ def external_oauth_audience_lists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
437
+ pulumi.set(self, "external_oauth_audience_lists", value)
419
438
 
420
439
  @property
421
- @pulumi.getter
422
- def enabled(self) -> Optional[pulumi.Input[bool]]:
440
+ @pulumi.getter(name="externalOauthBlockedRolesLists")
441
+ def external_oauth_blocked_roles_lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
423
442
  """
424
- Specifies whether to initiate operation of the integration or suspend it.
443
+ Specifies the list of roles that a client cannot set as the primary role. By default, this list includes the ACCOUNTADMIN, ORGADMIN and SECURITYADMIN roles. To remove these privileged roles from the list, use the ALTER ACCOUNT command to set the EXTERNAL*OAUTH*ADD*PRIVILEGED*ROLES*TO*BLOCKED*LIST account parameter to FALSE. For more information about this resource, see docs.
425
444
  """
426
- return pulumi.get(self, "enabled")
445
+ return pulumi.get(self, "external_oauth_blocked_roles_lists")
427
446
 
428
- @enabled.setter
429
- def enabled(self, value: Optional[pulumi.Input[bool]]):
430
- pulumi.set(self, "enabled", value)
447
+ @external_oauth_blocked_roles_lists.setter
448
+ def external_oauth_blocked_roles_lists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
449
+ pulumi.set(self, "external_oauth_blocked_roles_lists", value)
431
450
 
432
451
  @property
433
- @pulumi.getter
434
- def issuer(self) -> Optional[pulumi.Input[str]]:
452
+ @pulumi.getter(name="externalOauthIssuer")
453
+ def external_oauth_issuer(self) -> Optional[pulumi.Input[str]]:
435
454
  """
436
455
  Specifies the URL to define the OAuth 2.0 authorization server.
437
456
  """
438
- return pulumi.get(self, "issuer")
457
+ return pulumi.get(self, "external_oauth_issuer")
439
458
 
440
- @issuer.setter
441
- def issuer(self, value: Optional[pulumi.Input[str]]):
442
- pulumi.set(self, "issuer", value)
459
+ @external_oauth_issuer.setter
460
+ def external_oauth_issuer(self, value: Optional[pulumi.Input[str]]):
461
+ pulumi.set(self, "external_oauth_issuer", value)
443
462
 
444
463
  @property
445
- @pulumi.getter(name="jwsKeysUrls")
446
- def jws_keys_urls(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
464
+ @pulumi.getter(name="externalOauthJwsKeysUrls")
465
+ def external_oauth_jws_keys_urls(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
447
466
  """
448
- Specifies the endpoint or a list of endpoints from which to download public keys or certificates to validate an External OAuth access token. The maximum number of URLs that can be specified in the list is 3.
467
+ Specifies the endpoint or a list of endpoints from which to download public keys or certificates to validate an External OAuth access token. The maximum number of URLs that can be specified in the list is 3. If removed from the config, the resource is recreated.
449
468
  """
450
- return pulumi.get(self, "jws_keys_urls")
469
+ return pulumi.get(self, "external_oauth_jws_keys_urls")
451
470
 
452
- @jws_keys_urls.setter
453
- def jws_keys_urls(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
454
- pulumi.set(self, "jws_keys_urls", value)
471
+ @external_oauth_jws_keys_urls.setter
472
+ def external_oauth_jws_keys_urls(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
473
+ pulumi.set(self, "external_oauth_jws_keys_urls", value)
455
474
 
456
475
  @property
457
- @pulumi.getter
458
- def name(self) -> Optional[pulumi.Input[str]]:
476
+ @pulumi.getter(name="externalOauthRsaPublicKey")
477
+ def external_oauth_rsa_public_key(self) -> Optional[pulumi.Input[str]]:
459
478
  """
460
- Specifies the name of the External Oath integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account.
479
+ Specifies a Base64-encoded RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers. If removed from the config, the resource is recreated.
461
480
  """
462
- return pulumi.get(self, "name")
481
+ return pulumi.get(self, "external_oauth_rsa_public_key")
463
482
 
464
- @name.setter
465
- def name(self, value: Optional[pulumi.Input[str]]):
466
- pulumi.set(self, "name", value)
483
+ @external_oauth_rsa_public_key.setter
484
+ def external_oauth_rsa_public_key(self, value: Optional[pulumi.Input[str]]):
485
+ pulumi.set(self, "external_oauth_rsa_public_key", value)
467
486
 
468
487
  @property
469
- @pulumi.getter(name="rsaPublicKey")
470
- def rsa_public_key(self) -> Optional[pulumi.Input[str]]:
488
+ @pulumi.getter(name="externalOauthRsaPublicKey2")
489
+ def external_oauth_rsa_public_key2(self) -> Optional[pulumi.Input[str]]:
471
490
  """
472
- Specifies a Base64-encoded RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers.
491
+ Specifies a second RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers. Used for key rotation. If removed from the config, the resource is recreated.
473
492
  """
474
- return pulumi.get(self, "rsa_public_key")
493
+ return pulumi.get(self, "external_oauth_rsa_public_key2")
475
494
 
476
- @rsa_public_key.setter
477
- def rsa_public_key(self, value: Optional[pulumi.Input[str]]):
478
- pulumi.set(self, "rsa_public_key", value)
495
+ @external_oauth_rsa_public_key2.setter
496
+ def external_oauth_rsa_public_key2(self, value: Optional[pulumi.Input[str]]):
497
+ pulumi.set(self, "external_oauth_rsa_public_key2", value)
479
498
 
480
499
  @property
481
- @pulumi.getter(name="rsaPublicKey2")
482
- def rsa_public_key2(self) -> Optional[pulumi.Input[str]]:
500
+ @pulumi.getter(name="externalOauthScopeDelimiter")
501
+ def external_oauth_scope_delimiter(self) -> Optional[pulumi.Input[str]]:
483
502
  """
484
- Specifies a second RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers. Used for key rotation.
503
+ Specifies the scope delimiter in the authorization token.
485
504
  """
486
- return pulumi.get(self, "rsa_public_key2")
505
+ return pulumi.get(self, "external_oauth_scope_delimiter")
487
506
 
488
- @rsa_public_key2.setter
489
- def rsa_public_key2(self, value: Optional[pulumi.Input[str]]):
490
- pulumi.set(self, "rsa_public_key2", value)
507
+ @external_oauth_scope_delimiter.setter
508
+ def external_oauth_scope_delimiter(self, value: Optional[pulumi.Input[str]]):
509
+ pulumi.set(self, "external_oauth_scope_delimiter", value)
491
510
 
492
511
  @property
493
- @pulumi.getter(name="scopeDelimiter")
494
- def scope_delimiter(self) -> Optional[pulumi.Input[str]]:
512
+ @pulumi.getter(name="externalOauthScopeMappingAttribute")
513
+ def external_oauth_scope_mapping_attribute(self) -> Optional[pulumi.Input[str]]:
495
514
  """
496
- Specifies the scope delimiter in the authorization token.
515
+ Specifies the access token claim to map the access token to an account role. If removed from the config, the resource is recreated.
497
516
  """
498
- return pulumi.get(self, "scope_delimiter")
517
+ return pulumi.get(self, "external_oauth_scope_mapping_attribute")
499
518
 
500
- @scope_delimiter.setter
501
- def scope_delimiter(self, value: Optional[pulumi.Input[str]]):
502
- pulumi.set(self, "scope_delimiter", value)
519
+ @external_oauth_scope_mapping_attribute.setter
520
+ def external_oauth_scope_mapping_attribute(self, value: Optional[pulumi.Input[str]]):
521
+ pulumi.set(self, "external_oauth_scope_mapping_attribute", value)
503
522
 
504
523
  @property
505
- @pulumi.getter(name="scopeMappingAttribute")
506
- def scope_mapping_attribute(self) -> Optional[pulumi.Input[str]]:
524
+ @pulumi.getter(name="externalOauthSnowflakeUserMappingAttribute")
525
+ def external_oauth_snowflake_user_mapping_attribute(self) -> Optional[pulumi.Input[str]]:
507
526
  """
508
- Specifies the access token claim to map the access token to an account role.
527
+ Indicates which Snowflake user record attribute should be used to map the access token to a Snowflake user record. Valid values are (case-insensitive): `LOGIN_NAME` | `EMAIL_ADDRESS`.
509
528
  """
510
- return pulumi.get(self, "scope_mapping_attribute")
529
+ return pulumi.get(self, "external_oauth_snowflake_user_mapping_attribute")
511
530
 
512
- @scope_mapping_attribute.setter
513
- def scope_mapping_attribute(self, value: Optional[pulumi.Input[str]]):
514
- pulumi.set(self, "scope_mapping_attribute", value)
531
+ @external_oauth_snowflake_user_mapping_attribute.setter
532
+ def external_oauth_snowflake_user_mapping_attribute(self, value: Optional[pulumi.Input[str]]):
533
+ pulumi.set(self, "external_oauth_snowflake_user_mapping_attribute", value)
515
534
 
516
535
  @property
517
- @pulumi.getter(name="snowflakeUserMappingAttribute")
518
- def snowflake_user_mapping_attribute(self) -> Optional[pulumi.Input[str]]:
536
+ @pulumi.getter(name="externalOauthTokenUserMappingClaims")
537
+ def external_oauth_token_user_mapping_claims(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
519
538
  """
520
- Indicates which Snowflake user record attribute should be used to map the access token to a Snowflake user record.
539
+ Specifies the access token claim or claims that can be used to map the access token to a Snowflake user record. If removed from the config, the resource is recreated.
521
540
  """
522
- return pulumi.get(self, "snowflake_user_mapping_attribute")
541
+ return pulumi.get(self, "external_oauth_token_user_mapping_claims")
523
542
 
524
- @snowflake_user_mapping_attribute.setter
525
- def snowflake_user_mapping_attribute(self, value: Optional[pulumi.Input[str]]):
526
- pulumi.set(self, "snowflake_user_mapping_attribute", value)
543
+ @external_oauth_token_user_mapping_claims.setter
544
+ def external_oauth_token_user_mapping_claims(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
545
+ pulumi.set(self, "external_oauth_token_user_mapping_claims", value)
527
546
 
528
547
  @property
529
- @pulumi.getter(name="tokenUserMappingClaims")
530
- def token_user_mapping_claims(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
548
+ @pulumi.getter(name="externalOauthType")
549
+ def external_oauth_type(self) -> Optional[pulumi.Input[str]]:
531
550
  """
532
- Specifies the access token claim or claims that can be used to map the access token to a Snowflake user record.
551
+ Specifies the OAuth 2.0 authorization server to be Okta, Microsoft Azure AD, Ping Identity PingFederate, or a Custom OAuth 2.0 authorization server. Valid values are (case-insensitive): `OKTA` | `AZURE` | `PING_FEDERATE` | `CUSTOM`.
533
552
  """
534
- return pulumi.get(self, "token_user_mapping_claims")
553
+ return pulumi.get(self, "external_oauth_type")
535
554
 
536
- @token_user_mapping_claims.setter
537
- def token_user_mapping_claims(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
538
- pulumi.set(self, "token_user_mapping_claims", value)
555
+ @external_oauth_type.setter
556
+ def external_oauth_type(self, value: Optional[pulumi.Input[str]]):
557
+ pulumi.set(self, "external_oauth_type", value)
558
+
559
+ @property
560
+ @pulumi.getter(name="fullyQualifiedName")
561
+ def fully_qualified_name(self) -> Optional[pulumi.Input[str]]:
562
+ """
563
+ Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
564
+ """
565
+ return pulumi.get(self, "fully_qualified_name")
566
+
567
+ @fully_qualified_name.setter
568
+ def fully_qualified_name(self, value: Optional[pulumi.Input[str]]):
569
+ pulumi.set(self, "fully_qualified_name", value)
539
570
 
540
571
  @property
541
572
  @pulumi.getter
542
- def type(self) -> Optional[pulumi.Input[str]]:
573
+ def name(self) -> Optional[pulumi.Input[str]]:
543
574
  """
544
- Specifies the OAuth 2.0 authorization server to be Okta, Microsoft Azure AD, Ping Identity PingFederate, or a Custom OAuth 2.0 authorization server.
575
+ Specifies the name of the External Oath integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
545
576
  """
546
- return pulumi.get(self, "type")
577
+ return pulumi.get(self, "name")
547
578
 
548
- @type.setter
549
- def type(self, value: Optional[pulumi.Input[str]]):
550
- pulumi.set(self, "type", value)
579
+ @name.setter
580
+ def name(self, value: Optional[pulumi.Input[str]]):
581
+ pulumi.set(self, "name", value)
582
+
583
+ @property
584
+ @pulumi.getter(name="relatedParameters")
585
+ def related_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ExternalOauthIntegrationRelatedParameterArgs']]]]:
586
+ """
587
+ Parameters related to this security integration.
588
+ """
589
+ return pulumi.get(self, "related_parameters")
590
+
591
+ @related_parameters.setter
592
+ def related_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ExternalOauthIntegrationRelatedParameterArgs']]]]):
593
+ pulumi.set(self, "related_parameters", value)
594
+
595
+ @property
596
+ @pulumi.getter(name="showOutputs")
597
+ def show_outputs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ExternalOauthIntegrationShowOutputArgs']]]]:
598
+ """
599
+ Outputs the result of `SHOW SECURITY INTEGRATIONS` for the given security integration.
600
+ """
601
+ return pulumi.get(self, "show_outputs")
602
+
603
+ @show_outputs.setter
604
+ def show_outputs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ExternalOauthIntegrationShowOutputArgs']]]]):
605
+ pulumi.set(self, "show_outputs", value)
551
606
 
552
607
 
553
608
  class ExternalOauthIntegration(pulumi.CustomResource):
@@ -555,66 +610,48 @@ class ExternalOauthIntegration(pulumi.CustomResource):
555
610
  def __init__(__self__,
556
611
  resource_name: str,
557
612
  opts: Optional[pulumi.ResourceOptions] = None,
558
- allowed_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
559
- any_role_mode: Optional[pulumi.Input[str]] = None,
560
- audience_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
561
- blocked_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
562
613
  comment: Optional[pulumi.Input[str]] = None,
563
614
  enabled: Optional[pulumi.Input[bool]] = None,
564
- issuer: Optional[pulumi.Input[str]] = None,
565
- jws_keys_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
615
+ external_oauth_allowed_roles_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
616
+ external_oauth_any_role_mode: Optional[pulumi.Input[str]] = None,
617
+ external_oauth_audience_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
618
+ external_oauth_blocked_roles_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
619
+ external_oauth_issuer: Optional[pulumi.Input[str]] = None,
620
+ external_oauth_jws_keys_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
621
+ external_oauth_rsa_public_key: Optional[pulumi.Input[str]] = None,
622
+ external_oauth_rsa_public_key2: Optional[pulumi.Input[str]] = None,
623
+ external_oauth_scope_delimiter: Optional[pulumi.Input[str]] = None,
624
+ external_oauth_scope_mapping_attribute: Optional[pulumi.Input[str]] = None,
625
+ external_oauth_snowflake_user_mapping_attribute: Optional[pulumi.Input[str]] = None,
626
+ external_oauth_token_user_mapping_claims: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
627
+ external_oauth_type: Optional[pulumi.Input[str]] = None,
566
628
  name: Optional[pulumi.Input[str]] = None,
567
- rsa_public_key: Optional[pulumi.Input[str]] = None,
568
- rsa_public_key2: Optional[pulumi.Input[str]] = None,
569
- scope_delimiter: Optional[pulumi.Input[str]] = None,
570
- scope_mapping_attribute: Optional[pulumi.Input[str]] = None,
571
- snowflake_user_mapping_attribute: Optional[pulumi.Input[str]] = None,
572
- token_user_mapping_claims: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
573
- type: Optional[pulumi.Input[str]] = None,
574
629
  __props__=None):
575
630
  """
576
- An External OAuth security integration allows a client to use a third-party authorization server to obtain the access tokens needed to interact with Snowflake.
577
-
578
- ## Example Usage
579
-
580
- ```python
581
- import pulumi
582
- import pulumi_snowflake as snowflake
583
-
584
- azure = snowflake.ExternalOauthIntegration("azure",
585
- audience_urls=["https://analysis.windows.net/powerbi/connector/Snowflake"],
586
- enabled=True,
587
- issuer="https://sts.windows.net/00000000-0000-0000-0000-000000000000",
588
- jws_keys_urls=["https://login.windows.net/common/discovery/keys"],
589
- snowflake_user_mapping_attribute="LOGIN_NAME",
590
- token_user_mapping_claims=["upn"],
591
- type="AZURE")
592
- ```
593
-
594
631
  ## Import
595
632
 
596
633
  ```sh
597
- $ pulumi import snowflake:index/externalOauthIntegration:ExternalOauthIntegration example name
634
+ $ pulumi import snowflake:index/externalOauthIntegration:ExternalOauthIntegration example '"<integration_name>"'
598
635
  ```
599
636
 
600
637
  :param str resource_name: The name of the resource.
601
638
  :param pulumi.ResourceOptions opts: Options for the resource.
602
- :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_roles: Specifies the list of roles that the client can set as the primary role.
603
- :param pulumi.Input[str] any_role_mode: Specifies whether the OAuth client or user can use a role that is not defined in the OAuth access token.
604
- :param pulumi.Input[Sequence[pulumi.Input[str]]] audience_urls: Specifies additional values that can be used for the access token's audience validation on top of using the Customer's Snowflake Account URL
605
- :param pulumi.Input[Sequence[pulumi.Input[str]]] blocked_roles: Specifies the list of roles that a client cannot set as the primary role. Do not include ACCOUNTADMIN, ORGADMIN or SECURITYADMIN as they are already implicitly enforced and will cause in-place updates.
606
639
  :param pulumi.Input[str] comment: Specifies a comment for the OAuth integration.
607
640
  :param pulumi.Input[bool] enabled: Specifies whether to initiate operation of the integration or suspend it.
608
- :param pulumi.Input[str] issuer: Specifies the URL to define the OAuth 2.0 authorization server.
609
- :param pulumi.Input[Sequence[pulumi.Input[str]]] jws_keys_urls: Specifies the endpoint or a list of endpoints from which to download public keys or certificates to validate an External OAuth access token. The maximum number of URLs that can be specified in the list is 3.
610
- :param pulumi.Input[str] name: Specifies the name of the External Oath integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account.
611
- :param pulumi.Input[str] rsa_public_key: Specifies a Base64-encoded RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers.
612
- :param pulumi.Input[str] rsa_public_key2: Specifies a second RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers. Used for key rotation.
613
- :param pulumi.Input[str] scope_delimiter: Specifies the scope delimiter in the authorization token.
614
- :param pulumi.Input[str] scope_mapping_attribute: Specifies the access token claim to map the access token to an account role.
615
- :param pulumi.Input[str] snowflake_user_mapping_attribute: Indicates which Snowflake user record attribute should be used to map the access token to a Snowflake user record.
616
- :param pulumi.Input[Sequence[pulumi.Input[str]]] token_user_mapping_claims: Specifies the access token claim or claims that can be used to map the access token to a Snowflake user record.
617
- :param pulumi.Input[str] type: Specifies the OAuth 2.0 authorization server to be Okta, Microsoft Azure AD, Ping Identity PingFederate, or a Custom OAuth 2.0 authorization server.
641
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] external_oauth_allowed_roles_lists: Specifies the list of roles that the client can set as the primary role. For more information about this resource, see docs.
642
+ :param pulumi.Input[str] external_oauth_any_role_mode: Specifies whether the OAuth client or user can use a role that is not defined in the OAuth access token. Valid values are (case-insensitive): `DISABLE` | `ENABLE` | `ENABLE_FOR_PRIVILEGE`.
643
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] external_oauth_audience_lists: Specifies additional values that can be used for the access token's audience validation on top of using the Customer's Snowflake Account URL
644
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] external_oauth_blocked_roles_lists: Specifies the list of roles that a client cannot set as the primary role. By default, this list includes the ACCOUNTADMIN, ORGADMIN and SECURITYADMIN roles. To remove these privileged roles from the list, use the ALTER ACCOUNT command to set the EXTERNAL*OAUTH*ADD*PRIVILEGED*ROLES*TO*BLOCKED*LIST account parameter to FALSE. For more information about this resource, see docs.
645
+ :param pulumi.Input[str] external_oauth_issuer: Specifies the URL to define the OAuth 2.0 authorization server.
646
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] external_oauth_jws_keys_urls: Specifies the endpoint or a list of endpoints from which to download public keys or certificates to validate an External OAuth access token. The maximum number of URLs that can be specified in the list is 3. If removed from the config, the resource is recreated.
647
+ :param pulumi.Input[str] external_oauth_rsa_public_key: Specifies a Base64-encoded RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers. If removed from the config, the resource is recreated.
648
+ :param pulumi.Input[str] external_oauth_rsa_public_key2: Specifies a second RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers. Used for key rotation. If removed from the config, the resource is recreated.
649
+ :param pulumi.Input[str] external_oauth_scope_delimiter: Specifies the scope delimiter in the authorization token.
650
+ :param pulumi.Input[str] external_oauth_scope_mapping_attribute: Specifies the access token claim to map the access token to an account role. If removed from the config, the resource is recreated.
651
+ :param pulumi.Input[str] external_oauth_snowflake_user_mapping_attribute: Indicates which Snowflake user record attribute should be used to map the access token to a Snowflake user record. Valid values are (case-insensitive): `LOGIN_NAME` | `EMAIL_ADDRESS`.
652
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] external_oauth_token_user_mapping_claims: Specifies the access token claim or claims that can be used to map the access token to a Snowflake user record. If removed from the config, the resource is recreated.
653
+ :param pulumi.Input[str] external_oauth_type: Specifies the OAuth 2.0 authorization server to be Okta, Microsoft Azure AD, Ping Identity PingFederate, or a Custom OAuth 2.0 authorization server. Valid values are (case-insensitive): `OKTA` | `AZURE` | `PING_FEDERATE` | `CUSTOM`.
654
+ :param pulumi.Input[str] name: Specifies the name of the External Oath integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
618
655
  """
619
656
  ...
620
657
  @overload
@@ -623,28 +660,10 @@ class ExternalOauthIntegration(pulumi.CustomResource):
623
660
  args: ExternalOauthIntegrationArgs,
624
661
  opts: Optional[pulumi.ResourceOptions] = None):
625
662
  """
626
- An External OAuth security integration allows a client to use a third-party authorization server to obtain the access tokens needed to interact with Snowflake.
627
-
628
- ## Example Usage
629
-
630
- ```python
631
- import pulumi
632
- import pulumi_snowflake as snowflake
633
-
634
- azure = snowflake.ExternalOauthIntegration("azure",
635
- audience_urls=["https://analysis.windows.net/powerbi/connector/Snowflake"],
636
- enabled=True,
637
- issuer="https://sts.windows.net/00000000-0000-0000-0000-000000000000",
638
- jws_keys_urls=["https://login.windows.net/common/discovery/keys"],
639
- snowflake_user_mapping_attribute="LOGIN_NAME",
640
- token_user_mapping_claims=["upn"],
641
- type="AZURE")
642
- ```
643
-
644
663
  ## Import
645
664
 
646
665
  ```sh
647
- $ pulumi import snowflake:index/externalOauthIntegration:ExternalOauthIntegration example name
666
+ $ pulumi import snowflake:index/externalOauthIntegration:ExternalOauthIntegration example '"<integration_name>"'
648
667
  ```
649
668
 
650
669
  :param str resource_name: The name of the resource.
@@ -662,22 +681,22 @@ class ExternalOauthIntegration(pulumi.CustomResource):
662
681
  def _internal_init(__self__,
663
682
  resource_name: str,
664
683
  opts: Optional[pulumi.ResourceOptions] = None,
665
- allowed_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
666
- any_role_mode: Optional[pulumi.Input[str]] = None,
667
- audience_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
668
- blocked_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
669
684
  comment: Optional[pulumi.Input[str]] = None,
670
685
  enabled: Optional[pulumi.Input[bool]] = None,
671
- issuer: Optional[pulumi.Input[str]] = None,
672
- jws_keys_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
686
+ external_oauth_allowed_roles_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
687
+ external_oauth_any_role_mode: Optional[pulumi.Input[str]] = None,
688
+ external_oauth_audience_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
689
+ external_oauth_blocked_roles_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
690
+ external_oauth_issuer: Optional[pulumi.Input[str]] = None,
691
+ external_oauth_jws_keys_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
692
+ external_oauth_rsa_public_key: Optional[pulumi.Input[str]] = None,
693
+ external_oauth_rsa_public_key2: Optional[pulumi.Input[str]] = None,
694
+ external_oauth_scope_delimiter: Optional[pulumi.Input[str]] = None,
695
+ external_oauth_scope_mapping_attribute: Optional[pulumi.Input[str]] = None,
696
+ external_oauth_snowflake_user_mapping_attribute: Optional[pulumi.Input[str]] = None,
697
+ external_oauth_token_user_mapping_claims: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
698
+ external_oauth_type: Optional[pulumi.Input[str]] = None,
673
699
  name: Optional[pulumi.Input[str]] = None,
674
- rsa_public_key: Optional[pulumi.Input[str]] = None,
675
- rsa_public_key2: Optional[pulumi.Input[str]] = None,
676
- scope_delimiter: Optional[pulumi.Input[str]] = None,
677
- scope_mapping_attribute: Optional[pulumi.Input[str]] = None,
678
- snowflake_user_mapping_attribute: Optional[pulumi.Input[str]] = None,
679
- token_user_mapping_claims: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
680
- type: Optional[pulumi.Input[str]] = None,
681
700
  __props__=None):
682
701
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
683
702
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -687,33 +706,36 @@ class ExternalOauthIntegration(pulumi.CustomResource):
687
706
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
688
707
  __props__ = ExternalOauthIntegrationArgs.__new__(ExternalOauthIntegrationArgs)
689
708
 
690
- __props__.__dict__["allowed_roles"] = allowed_roles
691
- __props__.__dict__["any_role_mode"] = any_role_mode
692
- __props__.__dict__["audience_urls"] = audience_urls
693
- __props__.__dict__["blocked_roles"] = blocked_roles
694
709
  __props__.__dict__["comment"] = comment
695
710
  if enabled is None and not opts.urn:
696
711
  raise TypeError("Missing required property 'enabled'")
697
712
  __props__.__dict__["enabled"] = enabled
698
- if issuer is None and not opts.urn:
699
- raise TypeError("Missing required property 'issuer'")
700
- __props__.__dict__["issuer"] = issuer
701
- __props__.__dict__["jws_keys_urls"] = jws_keys_urls
713
+ __props__.__dict__["external_oauth_allowed_roles_lists"] = external_oauth_allowed_roles_lists
714
+ __props__.__dict__["external_oauth_any_role_mode"] = external_oauth_any_role_mode
715
+ __props__.__dict__["external_oauth_audience_lists"] = external_oauth_audience_lists
716
+ __props__.__dict__["external_oauth_blocked_roles_lists"] = external_oauth_blocked_roles_lists
717
+ if external_oauth_issuer is None and not opts.urn:
718
+ raise TypeError("Missing required property 'external_oauth_issuer'")
719
+ __props__.__dict__["external_oauth_issuer"] = external_oauth_issuer
720
+ __props__.__dict__["external_oauth_jws_keys_urls"] = external_oauth_jws_keys_urls
721
+ __props__.__dict__["external_oauth_rsa_public_key"] = external_oauth_rsa_public_key
722
+ __props__.__dict__["external_oauth_rsa_public_key2"] = external_oauth_rsa_public_key2
723
+ __props__.__dict__["external_oauth_scope_delimiter"] = external_oauth_scope_delimiter
724
+ __props__.__dict__["external_oauth_scope_mapping_attribute"] = external_oauth_scope_mapping_attribute
725
+ if external_oauth_snowflake_user_mapping_attribute is None and not opts.urn:
726
+ raise TypeError("Missing required property 'external_oauth_snowflake_user_mapping_attribute'")
727
+ __props__.__dict__["external_oauth_snowflake_user_mapping_attribute"] = external_oauth_snowflake_user_mapping_attribute
728
+ if external_oauth_token_user_mapping_claims is None and not opts.urn:
729
+ raise TypeError("Missing required property 'external_oauth_token_user_mapping_claims'")
730
+ __props__.__dict__["external_oauth_token_user_mapping_claims"] = external_oauth_token_user_mapping_claims
731
+ if external_oauth_type is None and not opts.urn:
732
+ raise TypeError("Missing required property 'external_oauth_type'")
733
+ __props__.__dict__["external_oauth_type"] = external_oauth_type
702
734
  __props__.__dict__["name"] = name
703
- __props__.__dict__["rsa_public_key"] = rsa_public_key
704
- __props__.__dict__["rsa_public_key2"] = rsa_public_key2
705
- __props__.__dict__["scope_delimiter"] = scope_delimiter
706
- __props__.__dict__["scope_mapping_attribute"] = scope_mapping_attribute
707
- if snowflake_user_mapping_attribute is None and not opts.urn:
708
- raise TypeError("Missing required property 'snowflake_user_mapping_attribute'")
709
- __props__.__dict__["snowflake_user_mapping_attribute"] = snowflake_user_mapping_attribute
710
- if token_user_mapping_claims is None and not opts.urn:
711
- raise TypeError("Missing required property 'token_user_mapping_claims'")
712
- __props__.__dict__["token_user_mapping_claims"] = token_user_mapping_claims
713
- if type is None and not opts.urn:
714
- raise TypeError("Missing required property 'type'")
715
- __props__.__dict__["type"] = type
716
- __props__.__dict__["created_on"] = None
735
+ __props__.__dict__["describe_outputs"] = None
736
+ __props__.__dict__["fully_qualified_name"] = None
737
+ __props__.__dict__["related_parameters"] = None
738
+ __props__.__dict__["show_outputs"] = None
717
739
  super(ExternalOauthIntegration, __self__).__init__(
718
740
  'snowflake:index/externalOauthIntegration:ExternalOauthIntegration',
719
741
  resource_name,
@@ -724,23 +746,26 @@ class ExternalOauthIntegration(pulumi.CustomResource):
724
746
  def get(resource_name: str,
725
747
  id: pulumi.Input[str],
726
748
  opts: Optional[pulumi.ResourceOptions] = None,
727
- allowed_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
728
- any_role_mode: Optional[pulumi.Input[str]] = None,
729
- audience_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
730
- blocked_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
731
749
  comment: Optional[pulumi.Input[str]] = None,
732
- created_on: Optional[pulumi.Input[str]] = None,
750
+ describe_outputs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ExternalOauthIntegrationDescribeOutputArgs', 'ExternalOauthIntegrationDescribeOutputArgsDict']]]]] = None,
733
751
  enabled: Optional[pulumi.Input[bool]] = None,
734
- issuer: Optional[pulumi.Input[str]] = None,
735
- jws_keys_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
752
+ external_oauth_allowed_roles_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
753
+ external_oauth_any_role_mode: Optional[pulumi.Input[str]] = None,
754
+ external_oauth_audience_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
755
+ external_oauth_blocked_roles_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
756
+ external_oauth_issuer: Optional[pulumi.Input[str]] = None,
757
+ external_oauth_jws_keys_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
758
+ external_oauth_rsa_public_key: Optional[pulumi.Input[str]] = None,
759
+ external_oauth_rsa_public_key2: Optional[pulumi.Input[str]] = None,
760
+ external_oauth_scope_delimiter: Optional[pulumi.Input[str]] = None,
761
+ external_oauth_scope_mapping_attribute: Optional[pulumi.Input[str]] = None,
762
+ external_oauth_snowflake_user_mapping_attribute: Optional[pulumi.Input[str]] = None,
763
+ external_oauth_token_user_mapping_claims: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
764
+ external_oauth_type: Optional[pulumi.Input[str]] = None,
765
+ fully_qualified_name: Optional[pulumi.Input[str]] = None,
736
766
  name: Optional[pulumi.Input[str]] = None,
737
- rsa_public_key: Optional[pulumi.Input[str]] = None,
738
- rsa_public_key2: Optional[pulumi.Input[str]] = None,
739
- scope_delimiter: Optional[pulumi.Input[str]] = None,
740
- scope_mapping_attribute: Optional[pulumi.Input[str]] = None,
741
- snowflake_user_mapping_attribute: Optional[pulumi.Input[str]] = None,
742
- token_user_mapping_claims: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
743
- type: Optional[pulumi.Input[str]] = None) -> 'ExternalOauthIntegration':
767
+ related_parameters: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ExternalOauthIntegrationRelatedParameterArgs', 'ExternalOauthIntegrationRelatedParameterArgsDict']]]]] = None,
768
+ show_outputs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ExternalOauthIntegrationShowOutputArgs', 'ExternalOauthIntegrationShowOutputArgsDict']]]]] = None) -> 'ExternalOauthIntegration':
744
769
  """
745
770
  Get an existing ExternalOauthIntegration resource's state with the given name, id, and optional extra
746
771
  properties used to qualify the lookup.
@@ -748,180 +773,210 @@ class ExternalOauthIntegration(pulumi.CustomResource):
748
773
  :param str resource_name: The unique name of the resulting resource.
749
774
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
750
775
  :param pulumi.ResourceOptions opts: Options for the resource.
751
- :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_roles: Specifies the list of roles that the client can set as the primary role.
752
- :param pulumi.Input[str] any_role_mode: Specifies whether the OAuth client or user can use a role that is not defined in the OAuth access token.
753
- :param pulumi.Input[Sequence[pulumi.Input[str]]] audience_urls: Specifies additional values that can be used for the access token's audience validation on top of using the Customer's Snowflake Account URL
754
- :param pulumi.Input[Sequence[pulumi.Input[str]]] blocked_roles: Specifies the list of roles that a client cannot set as the primary role. Do not include ACCOUNTADMIN, ORGADMIN or SECURITYADMIN as they are already implicitly enforced and will cause in-place updates.
755
776
  :param pulumi.Input[str] comment: Specifies a comment for the OAuth integration.
756
- :param pulumi.Input[str] created_on: Date and time when the External OAUTH integration was created.
777
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ExternalOauthIntegrationDescribeOutputArgs', 'ExternalOauthIntegrationDescribeOutputArgsDict']]]] describe_outputs: Outputs the result of `DESCRIBE SECURITY INTEGRATIONS` for the given security integration.
757
778
  :param pulumi.Input[bool] enabled: Specifies whether to initiate operation of the integration or suspend it.
758
- :param pulumi.Input[str] issuer: Specifies the URL to define the OAuth 2.0 authorization server.
759
- :param pulumi.Input[Sequence[pulumi.Input[str]]] jws_keys_urls: Specifies the endpoint or a list of endpoints from which to download public keys or certificates to validate an External OAuth access token. The maximum number of URLs that can be specified in the list is 3.
760
- :param pulumi.Input[str] name: Specifies the name of the External Oath integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account.
761
- :param pulumi.Input[str] rsa_public_key: Specifies a Base64-encoded RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers.
762
- :param pulumi.Input[str] rsa_public_key2: Specifies a second RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers. Used for key rotation.
763
- :param pulumi.Input[str] scope_delimiter: Specifies the scope delimiter in the authorization token.
764
- :param pulumi.Input[str] scope_mapping_attribute: Specifies the access token claim to map the access token to an account role.
765
- :param pulumi.Input[str] snowflake_user_mapping_attribute: Indicates which Snowflake user record attribute should be used to map the access token to a Snowflake user record.
766
- :param pulumi.Input[Sequence[pulumi.Input[str]]] token_user_mapping_claims: Specifies the access token claim or claims that can be used to map the access token to a Snowflake user record.
767
- :param pulumi.Input[str] type: Specifies the OAuth 2.0 authorization server to be Okta, Microsoft Azure AD, Ping Identity PingFederate, or a Custom OAuth 2.0 authorization server.
779
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] external_oauth_allowed_roles_lists: Specifies the list of roles that the client can set as the primary role. For more information about this resource, see docs.
780
+ :param pulumi.Input[str] external_oauth_any_role_mode: Specifies whether the OAuth client or user can use a role that is not defined in the OAuth access token. Valid values are (case-insensitive): `DISABLE` | `ENABLE` | `ENABLE_FOR_PRIVILEGE`.
781
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] external_oauth_audience_lists: Specifies additional values that can be used for the access token's audience validation on top of using the Customer's Snowflake Account URL
782
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] external_oauth_blocked_roles_lists: Specifies the list of roles that a client cannot set as the primary role. By default, this list includes the ACCOUNTADMIN, ORGADMIN and SECURITYADMIN roles. To remove these privileged roles from the list, use the ALTER ACCOUNT command to set the EXTERNAL*OAUTH*ADD*PRIVILEGED*ROLES*TO*BLOCKED*LIST account parameter to FALSE. For more information about this resource, see docs.
783
+ :param pulumi.Input[str] external_oauth_issuer: Specifies the URL to define the OAuth 2.0 authorization server.
784
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] external_oauth_jws_keys_urls: Specifies the endpoint or a list of endpoints from which to download public keys or certificates to validate an External OAuth access token. The maximum number of URLs that can be specified in the list is 3. If removed from the config, the resource is recreated.
785
+ :param pulumi.Input[str] external_oauth_rsa_public_key: Specifies a Base64-encoded RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers. If removed from the config, the resource is recreated.
786
+ :param pulumi.Input[str] external_oauth_rsa_public_key2: Specifies a second RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers. Used for key rotation. If removed from the config, the resource is recreated.
787
+ :param pulumi.Input[str] external_oauth_scope_delimiter: Specifies the scope delimiter in the authorization token.
788
+ :param pulumi.Input[str] external_oauth_scope_mapping_attribute: Specifies the access token claim to map the access token to an account role. If removed from the config, the resource is recreated.
789
+ :param pulumi.Input[str] external_oauth_snowflake_user_mapping_attribute: Indicates which Snowflake user record attribute should be used to map the access token to a Snowflake user record. Valid values are (case-insensitive): `LOGIN_NAME` | `EMAIL_ADDRESS`.
790
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] external_oauth_token_user_mapping_claims: Specifies the access token claim or claims that can be used to map the access token to a Snowflake user record. If removed from the config, the resource is recreated.
791
+ :param pulumi.Input[str] external_oauth_type: Specifies the OAuth 2.0 authorization server to be Okta, Microsoft Azure AD, Ping Identity PingFederate, or a Custom OAuth 2.0 authorization server. Valid values are (case-insensitive): `OKTA` | `AZURE` | `PING_FEDERATE` | `CUSTOM`.
792
+ :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).
793
+ :param pulumi.Input[str] name: Specifies the name of the External Oath integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
794
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ExternalOauthIntegrationRelatedParameterArgs', 'ExternalOauthIntegrationRelatedParameterArgsDict']]]] related_parameters: Parameters related to this security integration.
795
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ExternalOauthIntegrationShowOutputArgs', 'ExternalOauthIntegrationShowOutputArgsDict']]]] show_outputs: Outputs the result of `SHOW SECURITY INTEGRATIONS` for the given security integration.
768
796
  """
769
797
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
770
798
 
771
799
  __props__ = _ExternalOauthIntegrationState.__new__(_ExternalOauthIntegrationState)
772
800
 
773
- __props__.__dict__["allowed_roles"] = allowed_roles
774
- __props__.__dict__["any_role_mode"] = any_role_mode
775
- __props__.__dict__["audience_urls"] = audience_urls
776
- __props__.__dict__["blocked_roles"] = blocked_roles
777
801
  __props__.__dict__["comment"] = comment
778
- __props__.__dict__["created_on"] = created_on
802
+ __props__.__dict__["describe_outputs"] = describe_outputs
779
803
  __props__.__dict__["enabled"] = enabled
780
- __props__.__dict__["issuer"] = issuer
781
- __props__.__dict__["jws_keys_urls"] = jws_keys_urls
804
+ __props__.__dict__["external_oauth_allowed_roles_lists"] = external_oauth_allowed_roles_lists
805
+ __props__.__dict__["external_oauth_any_role_mode"] = external_oauth_any_role_mode
806
+ __props__.__dict__["external_oauth_audience_lists"] = external_oauth_audience_lists
807
+ __props__.__dict__["external_oauth_blocked_roles_lists"] = external_oauth_blocked_roles_lists
808
+ __props__.__dict__["external_oauth_issuer"] = external_oauth_issuer
809
+ __props__.__dict__["external_oauth_jws_keys_urls"] = external_oauth_jws_keys_urls
810
+ __props__.__dict__["external_oauth_rsa_public_key"] = external_oauth_rsa_public_key
811
+ __props__.__dict__["external_oauth_rsa_public_key2"] = external_oauth_rsa_public_key2
812
+ __props__.__dict__["external_oauth_scope_delimiter"] = external_oauth_scope_delimiter
813
+ __props__.__dict__["external_oauth_scope_mapping_attribute"] = external_oauth_scope_mapping_attribute
814
+ __props__.__dict__["external_oauth_snowflake_user_mapping_attribute"] = external_oauth_snowflake_user_mapping_attribute
815
+ __props__.__dict__["external_oauth_token_user_mapping_claims"] = external_oauth_token_user_mapping_claims
816
+ __props__.__dict__["external_oauth_type"] = external_oauth_type
817
+ __props__.__dict__["fully_qualified_name"] = fully_qualified_name
782
818
  __props__.__dict__["name"] = name
783
- __props__.__dict__["rsa_public_key"] = rsa_public_key
784
- __props__.__dict__["rsa_public_key2"] = rsa_public_key2
785
- __props__.__dict__["scope_delimiter"] = scope_delimiter
786
- __props__.__dict__["scope_mapping_attribute"] = scope_mapping_attribute
787
- __props__.__dict__["snowflake_user_mapping_attribute"] = snowflake_user_mapping_attribute
788
- __props__.__dict__["token_user_mapping_claims"] = token_user_mapping_claims
789
- __props__.__dict__["type"] = type
819
+ __props__.__dict__["related_parameters"] = related_parameters
820
+ __props__.__dict__["show_outputs"] = show_outputs
790
821
  return ExternalOauthIntegration(resource_name, opts=opts, __props__=__props__)
791
822
 
792
823
  @property
793
- @pulumi.getter(name="allowedRoles")
794
- def allowed_roles(self) -> pulumi.Output[Optional[Sequence[str]]]:
824
+ @pulumi.getter
825
+ def comment(self) -> pulumi.Output[Optional[str]]:
795
826
  """
796
- Specifies the list of roles that the client can set as the primary role.
827
+ Specifies a comment for the OAuth integration.
797
828
  """
798
- return pulumi.get(self, "allowed_roles")
829
+ return pulumi.get(self, "comment")
799
830
 
800
831
  @property
801
- @pulumi.getter(name="anyRoleMode")
802
- def any_role_mode(self) -> pulumi.Output[Optional[str]]:
832
+ @pulumi.getter(name="describeOutputs")
833
+ def describe_outputs(self) -> pulumi.Output[Sequence['outputs.ExternalOauthIntegrationDescribeOutput']]:
803
834
  """
804
- Specifies whether the OAuth client or user can use a role that is not defined in the OAuth access token.
835
+ Outputs the result of `DESCRIBE SECURITY INTEGRATIONS` for the given security integration.
805
836
  """
806
- return pulumi.get(self, "any_role_mode")
837
+ return pulumi.get(self, "describe_outputs")
807
838
 
808
839
  @property
809
- @pulumi.getter(name="audienceUrls")
810
- def audience_urls(self) -> pulumi.Output[Optional[Sequence[str]]]:
840
+ @pulumi.getter
841
+ def enabled(self) -> pulumi.Output[bool]:
811
842
  """
812
- Specifies additional values that can be used for the access token's audience validation on top of using the Customer's Snowflake Account URL
843
+ Specifies whether to initiate operation of the integration or suspend it.
813
844
  """
814
- return pulumi.get(self, "audience_urls")
845
+ return pulumi.get(self, "enabled")
815
846
 
816
847
  @property
817
- @pulumi.getter(name="blockedRoles")
818
- def blocked_roles(self) -> pulumi.Output[Optional[Sequence[str]]]:
848
+ @pulumi.getter(name="externalOauthAllowedRolesLists")
849
+ def external_oauth_allowed_roles_lists(self) -> pulumi.Output[Optional[Sequence[str]]]:
819
850
  """
820
- Specifies the list of roles that a client cannot set as the primary role. Do not include ACCOUNTADMIN, ORGADMIN or SECURITYADMIN as they are already implicitly enforced and will cause in-place updates.
851
+ Specifies the list of roles that the client can set as the primary role. For more information about this resource, see docs.
821
852
  """
822
- return pulumi.get(self, "blocked_roles")
853
+ return pulumi.get(self, "external_oauth_allowed_roles_lists")
823
854
 
824
855
  @property
825
- @pulumi.getter
826
- def comment(self) -> pulumi.Output[Optional[str]]:
856
+ @pulumi.getter(name="externalOauthAnyRoleMode")
857
+ def external_oauth_any_role_mode(self) -> pulumi.Output[Optional[str]]:
827
858
  """
828
- Specifies a comment for the OAuth integration.
859
+ Specifies whether the OAuth client or user can use a role that is not defined in the OAuth access token. Valid values are (case-insensitive): `DISABLE` | `ENABLE` | `ENABLE_FOR_PRIVILEGE`.
829
860
  """
830
- return pulumi.get(self, "comment")
861
+ return pulumi.get(self, "external_oauth_any_role_mode")
831
862
 
832
863
  @property
833
- @pulumi.getter(name="createdOn")
834
- def created_on(self) -> pulumi.Output[str]:
864
+ @pulumi.getter(name="externalOauthAudienceLists")
865
+ def external_oauth_audience_lists(self) -> pulumi.Output[Optional[Sequence[str]]]:
835
866
  """
836
- Date and time when the External OAUTH integration was created.
867
+ Specifies additional values that can be used for the access token's audience validation on top of using the Customer's Snowflake Account URL
837
868
  """
838
- return pulumi.get(self, "created_on")
869
+ return pulumi.get(self, "external_oauth_audience_lists")
839
870
 
840
871
  @property
841
- @pulumi.getter
842
- def enabled(self) -> pulumi.Output[bool]:
872
+ @pulumi.getter(name="externalOauthBlockedRolesLists")
873
+ def external_oauth_blocked_roles_lists(self) -> pulumi.Output[Optional[Sequence[str]]]:
843
874
  """
844
- Specifies whether to initiate operation of the integration or suspend it.
875
+ Specifies the list of roles that a client cannot set as the primary role. By default, this list includes the ACCOUNTADMIN, ORGADMIN and SECURITYADMIN roles. To remove these privileged roles from the list, use the ALTER ACCOUNT command to set the EXTERNAL*OAUTH*ADD*PRIVILEGED*ROLES*TO*BLOCKED*LIST account parameter to FALSE. For more information about this resource, see docs.
845
876
  """
846
- return pulumi.get(self, "enabled")
877
+ return pulumi.get(self, "external_oauth_blocked_roles_lists")
847
878
 
848
879
  @property
849
- @pulumi.getter
850
- def issuer(self) -> pulumi.Output[str]:
880
+ @pulumi.getter(name="externalOauthIssuer")
881
+ def external_oauth_issuer(self) -> pulumi.Output[str]:
851
882
  """
852
883
  Specifies the URL to define the OAuth 2.0 authorization server.
853
884
  """
854
- return pulumi.get(self, "issuer")
885
+ return pulumi.get(self, "external_oauth_issuer")
855
886
 
856
887
  @property
857
- @pulumi.getter(name="jwsKeysUrls")
858
- def jws_keys_urls(self) -> pulumi.Output[Optional[Sequence[str]]]:
888
+ @pulumi.getter(name="externalOauthJwsKeysUrls")
889
+ def external_oauth_jws_keys_urls(self) -> pulumi.Output[Optional[Sequence[str]]]:
859
890
  """
860
- Specifies the endpoint or a list of endpoints from which to download public keys or certificates to validate an External OAuth access token. The maximum number of URLs that can be specified in the list is 3.
891
+ Specifies the endpoint or a list of endpoints from which to download public keys or certificates to validate an External OAuth access token. The maximum number of URLs that can be specified in the list is 3. If removed from the config, the resource is recreated.
861
892
  """
862
- return pulumi.get(self, "jws_keys_urls")
893
+ return pulumi.get(self, "external_oauth_jws_keys_urls")
863
894
 
864
895
  @property
865
- @pulumi.getter
866
- def name(self) -> pulumi.Output[str]:
896
+ @pulumi.getter(name="externalOauthRsaPublicKey")
897
+ def external_oauth_rsa_public_key(self) -> pulumi.Output[Optional[str]]:
867
898
  """
868
- Specifies the name of the External Oath integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account.
899
+ Specifies a Base64-encoded RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers. If removed from the config, the resource is recreated.
869
900
  """
870
- return pulumi.get(self, "name")
901
+ return pulumi.get(self, "external_oauth_rsa_public_key")
871
902
 
872
903
  @property
873
- @pulumi.getter(name="rsaPublicKey")
874
- def rsa_public_key(self) -> pulumi.Output[Optional[str]]:
904
+ @pulumi.getter(name="externalOauthRsaPublicKey2")
905
+ def external_oauth_rsa_public_key2(self) -> pulumi.Output[Optional[str]]:
875
906
  """
876
- Specifies a Base64-encoded RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers.
907
+ Specifies a second RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers. Used for key rotation. If removed from the config, the resource is recreated.
877
908
  """
878
- return pulumi.get(self, "rsa_public_key")
909
+ return pulumi.get(self, "external_oauth_rsa_public_key2")
879
910
 
880
911
  @property
881
- @pulumi.getter(name="rsaPublicKey2")
882
- def rsa_public_key2(self) -> pulumi.Output[Optional[str]]:
912
+ @pulumi.getter(name="externalOauthScopeDelimiter")
913
+ def external_oauth_scope_delimiter(self) -> pulumi.Output[Optional[str]]:
883
914
  """
884
- Specifies a second RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers. Used for key rotation.
915
+ Specifies the scope delimiter in the authorization token.
885
916
  """
886
- return pulumi.get(self, "rsa_public_key2")
917
+ return pulumi.get(self, "external_oauth_scope_delimiter")
887
918
 
888
919
  @property
889
- @pulumi.getter(name="scopeDelimiter")
890
- def scope_delimiter(self) -> pulumi.Output[Optional[str]]:
920
+ @pulumi.getter(name="externalOauthScopeMappingAttribute")
921
+ def external_oauth_scope_mapping_attribute(self) -> pulumi.Output[Optional[str]]:
891
922
  """
892
- Specifies the scope delimiter in the authorization token.
923
+ Specifies the access token claim to map the access token to an account role. If removed from the config, the resource is recreated.
893
924
  """
894
- return pulumi.get(self, "scope_delimiter")
925
+ return pulumi.get(self, "external_oauth_scope_mapping_attribute")
895
926
 
896
927
  @property
897
- @pulumi.getter(name="scopeMappingAttribute")
898
- def scope_mapping_attribute(self) -> pulumi.Output[Optional[str]]:
928
+ @pulumi.getter(name="externalOauthSnowflakeUserMappingAttribute")
929
+ def external_oauth_snowflake_user_mapping_attribute(self) -> pulumi.Output[str]:
899
930
  """
900
- Specifies the access token claim to map the access token to an account role.
931
+ Indicates which Snowflake user record attribute should be used to map the access token to a Snowflake user record. Valid values are (case-insensitive): `LOGIN_NAME` | `EMAIL_ADDRESS`.
901
932
  """
902
- return pulumi.get(self, "scope_mapping_attribute")
933
+ return pulumi.get(self, "external_oauth_snowflake_user_mapping_attribute")
903
934
 
904
935
  @property
905
- @pulumi.getter(name="snowflakeUserMappingAttribute")
906
- def snowflake_user_mapping_attribute(self) -> pulumi.Output[str]:
936
+ @pulumi.getter(name="externalOauthTokenUserMappingClaims")
937
+ def external_oauth_token_user_mapping_claims(self) -> pulumi.Output[Sequence[str]]:
907
938
  """
908
- Indicates which Snowflake user record attribute should be used to map the access token to a Snowflake user record.
939
+ Specifies the access token claim or claims that can be used to map the access token to a Snowflake user record. If removed from the config, the resource is recreated.
909
940
  """
910
- return pulumi.get(self, "snowflake_user_mapping_attribute")
941
+ return pulumi.get(self, "external_oauth_token_user_mapping_claims")
911
942
 
912
943
  @property
913
- @pulumi.getter(name="tokenUserMappingClaims")
914
- def token_user_mapping_claims(self) -> pulumi.Output[Sequence[str]]:
944
+ @pulumi.getter(name="externalOauthType")
945
+ def external_oauth_type(self) -> pulumi.Output[str]:
915
946
  """
916
- Specifies the access token claim or claims that can be used to map the access token to a Snowflake user record.
947
+ Specifies the OAuth 2.0 authorization server to be Okta, Microsoft Azure AD, Ping Identity PingFederate, or a Custom OAuth 2.0 authorization server. Valid values are (case-insensitive): `OKTA` | `AZURE` | `PING_FEDERATE` | `CUSTOM`.
917
948
  """
918
- return pulumi.get(self, "token_user_mapping_claims")
949
+ return pulumi.get(self, "external_oauth_type")
950
+
951
+ @property
952
+ @pulumi.getter(name="fullyQualifiedName")
953
+ def fully_qualified_name(self) -> pulumi.Output[str]:
954
+ """
955
+ Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
956
+ """
957
+ return pulumi.get(self, "fully_qualified_name")
919
958
 
920
959
  @property
921
960
  @pulumi.getter
922
- def type(self) -> pulumi.Output[str]:
961
+ def name(self) -> pulumi.Output[str]:
962
+ """
963
+ Specifies the name of the External Oath integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
964
+ """
965
+ return pulumi.get(self, "name")
966
+
967
+ @property
968
+ @pulumi.getter(name="relatedParameters")
969
+ def related_parameters(self) -> pulumi.Output[Sequence['outputs.ExternalOauthIntegrationRelatedParameter']]:
970
+ """
971
+ Parameters related to this security integration.
972
+ """
973
+ return pulumi.get(self, "related_parameters")
974
+
975
+ @property
976
+ @pulumi.getter(name="showOutputs")
977
+ def show_outputs(self) -> pulumi.Output[Sequence['outputs.ExternalOauthIntegrationShowOutput']]:
923
978
  """
924
- Specifies the OAuth 2.0 authorization server to be Okta, Microsoft Azure AD, Ping Identity PingFederate, or a Custom OAuth 2.0 authorization server.
979
+ Outputs the result of `SHOW SECURITY INTEGRATIONS` for the given security integration.
925
980
  """
926
- return pulumi.get(self, "type")
981
+ return pulumi.get(self, "show_outputs")
927
982