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

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

Potentially problematic release.


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

Files changed (182) hide show
  1. pulumi_snowflake/__init__.py +224 -172
  2. pulumi_snowflake/_inputs.py +52857 -1665
  3. pulumi_snowflake/_utilities.py +41 -5
  4. pulumi_snowflake/account.py +188 -218
  5. pulumi_snowflake/account_authentication_policy_attachment.py +149 -0
  6. pulumi_snowflake/account_parameter.py +21 -48
  7. pulumi_snowflake/account_password_policy_attachment.py +7 -32
  8. pulumi_snowflake/account_role.py +250 -0
  9. pulumi_snowflake/alert.py +38 -47
  10. pulumi_snowflake/api_authentication_integration_with_authorization_code_grant.py +704 -0
  11. pulumi_snowflake/api_authentication_integration_with_client_credentials.py +657 -0
  12. pulumi_snowflake/api_authentication_integration_with_jwt_bearer.py +692 -0
  13. pulumi_snowflake/api_integration.py +33 -52
  14. pulumi_snowflake/authentication_policy.py +622 -0
  15. pulumi_snowflake/config/__init__.pyi +76 -99
  16. pulumi_snowflake/config/outputs.py +5 -0
  17. pulumi_snowflake/config/vars.py +93 -124
  18. pulumi_snowflake/cortex_search_service.py +596 -0
  19. pulumi_snowflake/database.py +819 -213
  20. pulumi_snowflake/database_role.py +81 -44
  21. pulumi_snowflake/dynamic_table.py +42 -49
  22. pulumi_snowflake/email_notification_integration.py +33 -28
  23. pulumi_snowflake/{unsafe_execute.py → execute.py} +36 -39
  24. pulumi_snowflake/external_function.py +54 -75
  25. pulumi_snowflake/external_oauth_integration.py +593 -542
  26. pulumi_snowflake/external_table.py +67 -90
  27. pulumi_snowflake/external_volume.py +382 -0
  28. pulumi_snowflake/failover_group.py +57 -98
  29. pulumi_snowflake/file_format.py +33 -28
  30. pulumi_snowflake/function_java.py +1211 -0
  31. pulumi_snowflake/function_javascript.py +882 -0
  32. pulumi_snowflake/function_python.py +1212 -0
  33. pulumi_snowflake/function_scala.py +1212 -0
  34. pulumi_snowflake/function_sql.py +835 -0
  35. pulumi_snowflake/get_account_roles.py +129 -0
  36. pulumi_snowflake/get_accounts.py +53 -22
  37. pulumi_snowflake/get_alerts.py +22 -9
  38. pulumi_snowflake/get_connections.py +109 -0
  39. pulumi_snowflake/get_cortex_search_services.py +216 -0
  40. pulumi_snowflake/get_current_account.py +24 -13
  41. pulumi_snowflake/get_current_role.py +14 -7
  42. pulumi_snowflake/get_database.py +25 -9
  43. pulumi_snowflake/get_database_role.py +162 -0
  44. pulumi_snowflake/get_database_roles.py +79 -47
  45. pulumi_snowflake/get_databases.py +91 -73
  46. pulumi_snowflake/get_dynamic_tables.py +36 -19
  47. pulumi_snowflake/get_external_functions.py +28 -9
  48. pulumi_snowflake/get_external_tables.py +28 -9
  49. pulumi_snowflake/get_failover_groups.py +18 -7
  50. pulumi_snowflake/get_file_formats.py +28 -9
  51. pulumi_snowflake/get_functions.py +28 -9
  52. pulumi_snowflake/get_grants.py +207 -84
  53. pulumi_snowflake/get_masking_policies.py +91 -51
  54. pulumi_snowflake/get_materialized_views.py +28 -9
  55. pulumi_snowflake/get_network_policies.py +129 -0
  56. pulumi_snowflake/get_parameters.py +38 -15
  57. pulumi_snowflake/get_pipes.py +28 -9
  58. pulumi_snowflake/get_procedures.py +28 -9
  59. pulumi_snowflake/get_resource_monitors.py +37 -24
  60. pulumi_snowflake/get_row_access_policies.py +91 -51
  61. pulumi_snowflake/get_schemas.py +145 -41
  62. pulumi_snowflake/get_secrets.py +200 -0
  63. pulumi_snowflake/get_security_integrations.py +129 -0
  64. pulumi_snowflake/get_sequences.py +28 -9
  65. pulumi_snowflake/get_shares.py +18 -9
  66. pulumi_snowflake/get_stages.py +28 -9
  67. pulumi_snowflake/get_storage_integrations.py +16 -9
  68. pulumi_snowflake/get_streamlits.py +170 -0
  69. pulumi_snowflake/get_streams.py +114 -54
  70. pulumi_snowflake/get_system_generate_scim_access_token.py +18 -9
  71. pulumi_snowflake/get_system_get_aws_sns_iam_policy.py +32 -7
  72. pulumi_snowflake/get_system_get_private_link_config.py +120 -5
  73. pulumi_snowflake/get_system_get_snowflake_platform_info.py +15 -7
  74. pulumi_snowflake/get_tables.py +28 -9
  75. pulumi_snowflake/get_tags.py +130 -0
  76. pulumi_snowflake/get_tasks.py +134 -54
  77. pulumi_snowflake/get_users.py +116 -44
  78. pulumi_snowflake/get_views.py +114 -54
  79. pulumi_snowflake/get_warehouses.py +79 -26
  80. pulumi_snowflake/grant_account_role.py +28 -75
  81. pulumi_snowflake/grant_application_role.py +257 -0
  82. pulumi_snowflake/grant_database_role.py +35 -94
  83. pulumi_snowflake/grant_ownership.py +382 -0
  84. pulumi_snowflake/grant_privileges_to_account_role.py +42 -78
  85. pulumi_snowflake/grant_privileges_to_database_role.py +37 -383
  86. pulumi_snowflake/grant_privileges_to_share.py +96 -44
  87. pulumi_snowflake/legacy_service_user.py +3670 -0
  88. pulumi_snowflake/managed_account.py +40 -11
  89. pulumi_snowflake/masking_policy.py +213 -310
  90. pulumi_snowflake/materialized_view.py +62 -71
  91. pulumi_snowflake/network_policy.py +217 -61
  92. pulumi_snowflake/network_policy_attachment.py +5 -34
  93. pulumi_snowflake/network_rule.py +473 -0
  94. pulumi_snowflake/notification_integration.py +49 -84
  95. pulumi_snowflake/oauth_integration_for_custom_clients.py +906 -0
  96. pulumi_snowflake/{oauth_integration.py → oauth_integration_for_partner_applications.py} +191 -192
  97. pulumi_snowflake/object_parameter.py +10 -101
  98. pulumi_snowflake/outputs.py +49200 -2928
  99. pulumi_snowflake/password_policy.py +41 -28
  100. pulumi_snowflake/pipe.py +33 -4
  101. pulumi_snowflake/primary_connection.py +330 -0
  102. pulumi_snowflake/procedure_java.py +1273 -0
  103. pulumi_snowflake/procedure_javascript.py +895 -0
  104. pulumi_snowflake/procedure_python.py +1226 -0
  105. pulumi_snowflake/procedure_scala.py +1273 -0
  106. pulumi_snowflake/procedure_sql.py +895 -0
  107. pulumi_snowflake/provider.py +378 -613
  108. pulumi_snowflake/pulumi-plugin.json +2 -1
  109. pulumi_snowflake/resource_monitor.py +118 -327
  110. pulumi_snowflake/row_access_policy.py +200 -149
  111. pulumi_snowflake/{saml_integration.py → saml2_integration.py} +356 -299
  112. pulumi_snowflake/schema.py +949 -178
  113. pulumi_snowflake/scim_integration.py +286 -109
  114. pulumi_snowflake/secondary_connection.py +339 -0
  115. pulumi_snowflake/secondary_database.py +1080 -0
  116. pulumi_snowflake/secret_with_authorization_code_grant.py +548 -0
  117. pulumi_snowflake/secret_with_basic_authentication.py +500 -0
  118. pulumi_snowflake/secret_with_client_credentials.py +511 -0
  119. pulumi_snowflake/secret_with_generic_string.py +452 -0
  120. pulumi_snowflake/sequence.py +9 -34
  121. pulumi_snowflake/service_user.py +3585 -0
  122. pulumi_snowflake/share.py +33 -28
  123. pulumi_snowflake/shared_database.py +939 -0
  124. pulumi_snowflake/stage.py +95 -84
  125. pulumi_snowflake/storage_integration.py +46 -4
  126. pulumi_snowflake/stream_on_directory_table.py +517 -0
  127. pulumi_snowflake/stream_on_external_table.py +632 -0
  128. pulumi_snowflake/stream_on_table.py +666 -0
  129. pulumi_snowflake/stream_on_view.py +666 -0
  130. pulumi_snowflake/streamlit.py +671 -0
  131. pulumi_snowflake/table.py +86 -97
  132. pulumi_snowflake/table_column_masking_policy_application.py +7 -14
  133. pulumi_snowflake/table_constraint.py +29 -172
  134. pulumi_snowflake/tag.py +142 -74
  135. pulumi_snowflake/tag_association.py +40 -215
  136. pulumi_snowflake/task.py +3048 -418
  137. pulumi_snowflake/user.py +3351 -384
  138. pulumi_snowflake/user_authentication_policy_attachment.py +197 -0
  139. pulumi_snowflake/user_password_policy_attachment.py +5 -4
  140. pulumi_snowflake/user_public_keys.py +5 -0
  141. pulumi_snowflake/view.py +466 -215
  142. pulumi_snowflake/warehouse.py +184 -168
  143. {pulumi_snowflake-0.50.3a1710160126.dist-info → pulumi_snowflake-1.2.0a1736835738.dist-info}/METADATA +7 -6
  144. pulumi_snowflake-1.2.0a1736835738.dist-info/RECORD +148 -0
  145. {pulumi_snowflake-0.50.3a1710160126.dist-info → pulumi_snowflake-1.2.0a1736835738.dist-info}/WHEEL +1 -1
  146. pulumi_snowflake/account_grant.py +0 -343
  147. pulumi_snowflake/database_grant.py +0 -495
  148. pulumi_snowflake/external_table_grant.py +0 -690
  149. pulumi_snowflake/failover_group_grant.py +0 -388
  150. pulumi_snowflake/file_format_grant.py +0 -635
  151. pulumi_snowflake/function.py +0 -872
  152. pulumi_snowflake/function_grant.py +0 -745
  153. pulumi_snowflake/get_role.py +0 -121
  154. pulumi_snowflake/get_roles.py +0 -120
  155. pulumi_snowflake/grant_privileges_to_role.py +0 -825
  156. pulumi_snowflake/integration_grant.py +0 -440
  157. pulumi_snowflake/masking_policy_grant.py +0 -542
  158. pulumi_snowflake/materialized_view_grant.py +0 -689
  159. pulumi_snowflake/pipe_grant.py +0 -587
  160. pulumi_snowflake/procedure.py +0 -887
  161. pulumi_snowflake/procedure_grant.py +0 -745
  162. pulumi_snowflake/resource_monitor_grant.py +0 -387
  163. pulumi_snowflake/role.py +0 -273
  164. pulumi_snowflake/role_grants.py +0 -352
  165. pulumi_snowflake/role_ownership_grant.py +0 -338
  166. pulumi_snowflake/row_access_policy_grant.py +0 -540
  167. pulumi_snowflake/schema_grant.py +0 -647
  168. pulumi_snowflake/sequence_grant.py +0 -635
  169. pulumi_snowflake/session_parameter.py +0 -332
  170. pulumi_snowflake/stage_grant.py +0 -635
  171. pulumi_snowflake/stream.py +0 -614
  172. pulumi_snowflake/stream_grant.py +0 -635
  173. pulumi_snowflake/table_grant.py +0 -677
  174. pulumi_snowflake/tag_grant.py +0 -532
  175. pulumi_snowflake/tag_masking_policy_association.py +0 -210
  176. pulumi_snowflake/task_grant.py +0 -635
  177. pulumi_snowflake/user_grant.py +0 -394
  178. pulumi_snowflake/user_ownership_grant.py +0 -286
  179. pulumi_snowflake/view_grant.py +0 -705
  180. pulumi_snowflake/warehouse_grant.py +0 -440
  181. pulumi_snowflake-0.50.3a1710160126.dist-info/RECORD +0 -136
  182. {pulumi_snowflake-0.50.3a1710160126.dist-info → pulumi_snowflake-1.2.0a1736835738.dist-info}/top_level.txt +0 -0
@@ -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,68 +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
- <!--Start PulumiCodeChooser -->
581
- ```python
582
- import pulumi
583
- import pulumi_snowflake as snowflake
584
-
585
- azure = snowflake.ExternalOauthIntegration("azure",
586
- audience_urls=["https://analysis.windows.net/powerbi/connector/Snowflake"],
587
- enabled=True,
588
- issuer="https://sts.windows.net/00000000-0000-0000-0000-000000000000",
589
- jws_keys_urls=["https://login.windows.net/common/discovery/keys"],
590
- snowflake_user_mapping_attribute="LOGIN_NAME",
591
- token_user_mapping_claims=["upn"],
592
- type="AZURE")
593
- ```
594
- <!--End PulumiCodeChooser -->
595
-
596
631
  ## Import
597
632
 
598
633
  ```sh
599
- $ pulumi import snowflake:index/externalOauthIntegration:ExternalOauthIntegration example name
634
+ $ pulumi import snowflake:index/externalOauthIntegration:ExternalOauthIntegration example '"<integration_name>"'
600
635
  ```
601
636
 
602
637
  :param str resource_name: The name of the resource.
603
638
  :param pulumi.ResourceOptions opts: Options for the resource.
604
- :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_roles: Specifies the list of roles that the client can set as the primary role.
605
- :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.
606
- :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
607
- :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.
608
639
  :param pulumi.Input[str] comment: Specifies a comment for the OAuth integration.
609
640
  :param pulumi.Input[bool] enabled: Specifies whether to initiate operation of the integration or suspend it.
610
- :param pulumi.Input[str] issuer: Specifies the URL to define the OAuth 2.0 authorization server.
611
- :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.
612
- :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.
613
- :param pulumi.Input[str] rsa_public_key: Specifies a Base64-encoded RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers.
614
- :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.
615
- :param pulumi.Input[str] scope_delimiter: Specifies the scope delimiter in the authorization token.
616
- :param pulumi.Input[str] scope_mapping_attribute: Specifies the access token claim to map the access token to an account role.
617
- :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.
618
- :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.
619
- :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: `|`, `.`, `"`.
620
655
  """
621
656
  ...
622
657
  @overload
@@ -625,30 +660,10 @@ class ExternalOauthIntegration(pulumi.CustomResource):
625
660
  args: ExternalOauthIntegrationArgs,
626
661
  opts: Optional[pulumi.ResourceOptions] = None):
627
662
  """
628
- 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.
629
-
630
- ## Example Usage
631
-
632
- <!--Start PulumiCodeChooser -->
633
- ```python
634
- import pulumi
635
- import pulumi_snowflake as snowflake
636
-
637
- azure = snowflake.ExternalOauthIntegration("azure",
638
- audience_urls=["https://analysis.windows.net/powerbi/connector/Snowflake"],
639
- enabled=True,
640
- issuer="https://sts.windows.net/00000000-0000-0000-0000-000000000000",
641
- jws_keys_urls=["https://login.windows.net/common/discovery/keys"],
642
- snowflake_user_mapping_attribute="LOGIN_NAME",
643
- token_user_mapping_claims=["upn"],
644
- type="AZURE")
645
- ```
646
- <!--End PulumiCodeChooser -->
647
-
648
663
  ## Import
649
664
 
650
665
  ```sh
651
- $ pulumi import snowflake:index/externalOauthIntegration:ExternalOauthIntegration example name
666
+ $ pulumi import snowflake:index/externalOauthIntegration:ExternalOauthIntegration example '"<integration_name>"'
652
667
  ```
653
668
 
654
669
  :param str resource_name: The name of the resource.
@@ -666,22 +681,22 @@ class ExternalOauthIntegration(pulumi.CustomResource):
666
681
  def _internal_init(__self__,
667
682
  resource_name: str,
668
683
  opts: Optional[pulumi.ResourceOptions] = None,
669
- allowed_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
670
- any_role_mode: Optional[pulumi.Input[str]] = None,
671
- audience_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
672
- blocked_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
673
684
  comment: Optional[pulumi.Input[str]] = None,
674
685
  enabled: Optional[pulumi.Input[bool]] = None,
675
- issuer: Optional[pulumi.Input[str]] = None,
676
- 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,
677
699
  name: Optional[pulumi.Input[str]] = None,
678
- rsa_public_key: Optional[pulumi.Input[str]] = None,
679
- rsa_public_key2: Optional[pulumi.Input[str]] = None,
680
- scope_delimiter: Optional[pulumi.Input[str]] = None,
681
- scope_mapping_attribute: Optional[pulumi.Input[str]] = None,
682
- snowflake_user_mapping_attribute: Optional[pulumi.Input[str]] = None,
683
- token_user_mapping_claims: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
684
- type: Optional[pulumi.Input[str]] = None,
685
700
  __props__=None):
686
701
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
687
702
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -691,33 +706,36 @@ class ExternalOauthIntegration(pulumi.CustomResource):
691
706
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
692
707
  __props__ = ExternalOauthIntegrationArgs.__new__(ExternalOauthIntegrationArgs)
693
708
 
694
- __props__.__dict__["allowed_roles"] = allowed_roles
695
- __props__.__dict__["any_role_mode"] = any_role_mode
696
- __props__.__dict__["audience_urls"] = audience_urls
697
- __props__.__dict__["blocked_roles"] = blocked_roles
698
709
  __props__.__dict__["comment"] = comment
699
710
  if enabled is None and not opts.urn:
700
711
  raise TypeError("Missing required property 'enabled'")
701
712
  __props__.__dict__["enabled"] = enabled
702
- if issuer is None and not opts.urn:
703
- raise TypeError("Missing required property 'issuer'")
704
- __props__.__dict__["issuer"] = issuer
705
- __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
706
734
  __props__.__dict__["name"] = name
707
- __props__.__dict__["rsa_public_key"] = rsa_public_key
708
- __props__.__dict__["rsa_public_key2"] = rsa_public_key2
709
- __props__.__dict__["scope_delimiter"] = scope_delimiter
710
- __props__.__dict__["scope_mapping_attribute"] = scope_mapping_attribute
711
- if snowflake_user_mapping_attribute is None and not opts.urn:
712
- raise TypeError("Missing required property 'snowflake_user_mapping_attribute'")
713
- __props__.__dict__["snowflake_user_mapping_attribute"] = snowflake_user_mapping_attribute
714
- if token_user_mapping_claims is None and not opts.urn:
715
- raise TypeError("Missing required property 'token_user_mapping_claims'")
716
- __props__.__dict__["token_user_mapping_claims"] = token_user_mapping_claims
717
- if type is None and not opts.urn:
718
- raise TypeError("Missing required property 'type'")
719
- __props__.__dict__["type"] = type
720
- __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
721
739
  super(ExternalOauthIntegration, __self__).__init__(
722
740
  'snowflake:index/externalOauthIntegration:ExternalOauthIntegration',
723
741
  resource_name,
@@ -728,23 +746,26 @@ class ExternalOauthIntegration(pulumi.CustomResource):
728
746
  def get(resource_name: str,
729
747
  id: pulumi.Input[str],
730
748
  opts: Optional[pulumi.ResourceOptions] = None,
731
- allowed_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
732
- any_role_mode: Optional[pulumi.Input[str]] = None,
733
- audience_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
734
- blocked_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
735
749
  comment: Optional[pulumi.Input[str]] = None,
736
- created_on: Optional[pulumi.Input[str]] = None,
750
+ describe_outputs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ExternalOauthIntegrationDescribeOutputArgs', 'ExternalOauthIntegrationDescribeOutputArgsDict']]]]] = None,
737
751
  enabled: Optional[pulumi.Input[bool]] = None,
738
- issuer: Optional[pulumi.Input[str]] = None,
739
- 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,
740
766
  name: Optional[pulumi.Input[str]] = None,
741
- rsa_public_key: Optional[pulumi.Input[str]] = None,
742
- rsa_public_key2: Optional[pulumi.Input[str]] = None,
743
- scope_delimiter: Optional[pulumi.Input[str]] = None,
744
- scope_mapping_attribute: Optional[pulumi.Input[str]] = None,
745
- snowflake_user_mapping_attribute: Optional[pulumi.Input[str]] = None,
746
- token_user_mapping_claims: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
747
- 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':
748
769
  """
749
770
  Get an existing ExternalOauthIntegration resource's state with the given name, id, and optional extra
750
771
  properties used to qualify the lookup.
@@ -752,180 +773,210 @@ class ExternalOauthIntegration(pulumi.CustomResource):
752
773
  :param str resource_name: The unique name of the resulting resource.
753
774
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
754
775
  :param pulumi.ResourceOptions opts: Options for the resource.
755
- :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_roles: Specifies the list of roles that the client can set as the primary role.
756
- :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.
757
- :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
758
- :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.
759
776
  :param pulumi.Input[str] comment: Specifies a comment for the OAuth integration.
760
- :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.
761
778
  :param pulumi.Input[bool] enabled: Specifies whether to initiate operation of the integration or suspend it.
762
- :param pulumi.Input[str] issuer: Specifies the URL to define the OAuth 2.0 authorization server.
763
- :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.
764
- :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.
765
- :param pulumi.Input[str] rsa_public_key: Specifies a Base64-encoded RSA public key, without the -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers.
766
- :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.
767
- :param pulumi.Input[str] scope_delimiter: Specifies the scope delimiter in the authorization token.
768
- :param pulumi.Input[str] scope_mapping_attribute: Specifies the access token claim to map the access token to an account role.
769
- :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.
770
- :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.
771
- :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.
772
796
  """
773
797
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
774
798
 
775
799
  __props__ = _ExternalOauthIntegrationState.__new__(_ExternalOauthIntegrationState)
776
800
 
777
- __props__.__dict__["allowed_roles"] = allowed_roles
778
- __props__.__dict__["any_role_mode"] = any_role_mode
779
- __props__.__dict__["audience_urls"] = audience_urls
780
- __props__.__dict__["blocked_roles"] = blocked_roles
781
801
  __props__.__dict__["comment"] = comment
782
- __props__.__dict__["created_on"] = created_on
802
+ __props__.__dict__["describe_outputs"] = describe_outputs
783
803
  __props__.__dict__["enabled"] = enabled
784
- __props__.__dict__["issuer"] = issuer
785
- __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
786
818
  __props__.__dict__["name"] = name
787
- __props__.__dict__["rsa_public_key"] = rsa_public_key
788
- __props__.__dict__["rsa_public_key2"] = rsa_public_key2
789
- __props__.__dict__["scope_delimiter"] = scope_delimiter
790
- __props__.__dict__["scope_mapping_attribute"] = scope_mapping_attribute
791
- __props__.__dict__["snowflake_user_mapping_attribute"] = snowflake_user_mapping_attribute
792
- __props__.__dict__["token_user_mapping_claims"] = token_user_mapping_claims
793
- __props__.__dict__["type"] = type
819
+ __props__.__dict__["related_parameters"] = related_parameters
820
+ __props__.__dict__["show_outputs"] = show_outputs
794
821
  return ExternalOauthIntegration(resource_name, opts=opts, __props__=__props__)
795
822
 
796
823
  @property
797
- @pulumi.getter(name="allowedRoles")
798
- def allowed_roles(self) -> pulumi.Output[Optional[Sequence[str]]]:
824
+ @pulumi.getter
825
+ def comment(self) -> pulumi.Output[Optional[str]]:
799
826
  """
800
- Specifies the list of roles that the client can set as the primary role.
827
+ Specifies a comment for the OAuth integration.
801
828
  """
802
- return pulumi.get(self, "allowed_roles")
829
+ return pulumi.get(self, "comment")
803
830
 
804
831
  @property
805
- @pulumi.getter(name="anyRoleMode")
806
- def any_role_mode(self) -> pulumi.Output[Optional[str]]:
832
+ @pulumi.getter(name="describeOutputs")
833
+ def describe_outputs(self) -> pulumi.Output[Sequence['outputs.ExternalOauthIntegrationDescribeOutput']]:
807
834
  """
808
- 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.
809
836
  """
810
- return pulumi.get(self, "any_role_mode")
837
+ return pulumi.get(self, "describe_outputs")
811
838
 
812
839
  @property
813
- @pulumi.getter(name="audienceUrls")
814
- def audience_urls(self) -> pulumi.Output[Optional[Sequence[str]]]:
840
+ @pulumi.getter
841
+ def enabled(self) -> pulumi.Output[bool]:
815
842
  """
816
- 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.
817
844
  """
818
- return pulumi.get(self, "audience_urls")
845
+ return pulumi.get(self, "enabled")
819
846
 
820
847
  @property
821
- @pulumi.getter(name="blockedRoles")
822
- 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]]]:
823
850
  """
824
- 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.
825
852
  """
826
- return pulumi.get(self, "blocked_roles")
853
+ return pulumi.get(self, "external_oauth_allowed_roles_lists")
827
854
 
828
855
  @property
829
- @pulumi.getter
830
- def comment(self) -> pulumi.Output[Optional[str]]:
856
+ @pulumi.getter(name="externalOauthAnyRoleMode")
857
+ def external_oauth_any_role_mode(self) -> pulumi.Output[Optional[str]]:
831
858
  """
832
- 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`.
833
860
  """
834
- return pulumi.get(self, "comment")
861
+ return pulumi.get(self, "external_oauth_any_role_mode")
835
862
 
836
863
  @property
837
- @pulumi.getter(name="createdOn")
838
- def created_on(self) -> pulumi.Output[str]:
864
+ @pulumi.getter(name="externalOauthAudienceLists")
865
+ def external_oauth_audience_lists(self) -> pulumi.Output[Optional[Sequence[str]]]:
839
866
  """
840
- 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
841
868
  """
842
- return pulumi.get(self, "created_on")
869
+ return pulumi.get(self, "external_oauth_audience_lists")
843
870
 
844
871
  @property
845
- @pulumi.getter
846
- def enabled(self) -> pulumi.Output[bool]:
872
+ @pulumi.getter(name="externalOauthBlockedRolesLists")
873
+ def external_oauth_blocked_roles_lists(self) -> pulumi.Output[Optional[Sequence[str]]]:
847
874
  """
848
- 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.
849
876
  """
850
- return pulumi.get(self, "enabled")
877
+ return pulumi.get(self, "external_oauth_blocked_roles_lists")
851
878
 
852
879
  @property
853
- @pulumi.getter
854
- def issuer(self) -> pulumi.Output[str]:
880
+ @pulumi.getter(name="externalOauthIssuer")
881
+ def external_oauth_issuer(self) -> pulumi.Output[str]:
855
882
  """
856
883
  Specifies the URL to define the OAuth 2.0 authorization server.
857
884
  """
858
- return pulumi.get(self, "issuer")
885
+ return pulumi.get(self, "external_oauth_issuer")
859
886
 
860
887
  @property
861
- @pulumi.getter(name="jwsKeysUrls")
862
- 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]]]:
863
890
  """
864
- 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.
865
892
  """
866
- return pulumi.get(self, "jws_keys_urls")
893
+ return pulumi.get(self, "external_oauth_jws_keys_urls")
867
894
 
868
895
  @property
869
- @pulumi.getter
870
- def name(self) -> pulumi.Output[str]:
896
+ @pulumi.getter(name="externalOauthRsaPublicKey")
897
+ def external_oauth_rsa_public_key(self) -> pulumi.Output[Optional[str]]:
871
898
  """
872
- 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.
873
900
  """
874
- return pulumi.get(self, "name")
901
+ return pulumi.get(self, "external_oauth_rsa_public_key")
875
902
 
876
903
  @property
877
- @pulumi.getter(name="rsaPublicKey")
878
- 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]]:
879
906
  """
880
- 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.
881
908
  """
882
- return pulumi.get(self, "rsa_public_key")
909
+ return pulumi.get(self, "external_oauth_rsa_public_key2")
883
910
 
884
911
  @property
885
- @pulumi.getter(name="rsaPublicKey2")
886
- 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]]:
887
914
  """
888
- 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.
889
916
  """
890
- return pulumi.get(self, "rsa_public_key2")
917
+ return pulumi.get(self, "external_oauth_scope_delimiter")
891
918
 
892
919
  @property
893
- @pulumi.getter(name="scopeDelimiter")
894
- 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]]:
895
922
  """
896
- 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.
897
924
  """
898
- return pulumi.get(self, "scope_delimiter")
925
+ return pulumi.get(self, "external_oauth_scope_mapping_attribute")
899
926
 
900
927
  @property
901
- @pulumi.getter(name="scopeMappingAttribute")
902
- 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]:
903
930
  """
904
- 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`.
905
932
  """
906
- return pulumi.get(self, "scope_mapping_attribute")
933
+ return pulumi.get(self, "external_oauth_snowflake_user_mapping_attribute")
907
934
 
908
935
  @property
909
- @pulumi.getter(name="snowflakeUserMappingAttribute")
910
- 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]]:
911
938
  """
912
- 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.
913
940
  """
914
- return pulumi.get(self, "snowflake_user_mapping_attribute")
941
+ return pulumi.get(self, "external_oauth_token_user_mapping_claims")
915
942
 
916
943
  @property
917
- @pulumi.getter(name="tokenUserMappingClaims")
918
- def token_user_mapping_claims(self) -> pulumi.Output[Sequence[str]]:
944
+ @pulumi.getter(name="externalOauthType")
945
+ def external_oauth_type(self) -> pulumi.Output[str]:
919
946
  """
920
- 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`.
921
948
  """
922
- 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")
923
958
 
924
959
  @property
925
960
  @pulumi.getter
926
- 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']]:
927
978
  """
928
- 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.
929
980
  """
930
- return pulumi.get(self, "type")
981
+ return pulumi.get(self, "show_outputs")
931
982