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

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

Potentially problematic release.


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

Files changed (182) hide show
  1. pulumi_snowflake/__init__.py +224 -172
  2. pulumi_snowflake/_inputs.py +52857 -1665
  3. pulumi_snowflake/_utilities.py +41 -5
  4. pulumi_snowflake/account.py +188 -218
  5. pulumi_snowflake/account_authentication_policy_attachment.py +149 -0
  6. pulumi_snowflake/account_parameter.py +21 -48
  7. pulumi_snowflake/account_password_policy_attachment.py +7 -32
  8. pulumi_snowflake/account_role.py +250 -0
  9. pulumi_snowflake/alert.py +38 -47
  10. pulumi_snowflake/api_authentication_integration_with_authorization_code_grant.py +704 -0
  11. pulumi_snowflake/api_authentication_integration_with_client_credentials.py +657 -0
  12. pulumi_snowflake/api_authentication_integration_with_jwt_bearer.py +692 -0
  13. pulumi_snowflake/api_integration.py +33 -52
  14. pulumi_snowflake/authentication_policy.py +622 -0
  15. pulumi_snowflake/config/__init__.pyi +76 -99
  16. pulumi_snowflake/config/outputs.py +5 -0
  17. pulumi_snowflake/config/vars.py +93 -124
  18. pulumi_snowflake/cortex_search_service.py +596 -0
  19. pulumi_snowflake/database.py +819 -213
  20. pulumi_snowflake/database_role.py +81 -44
  21. pulumi_snowflake/dynamic_table.py +42 -49
  22. pulumi_snowflake/email_notification_integration.py +33 -28
  23. pulumi_snowflake/{unsafe_execute.py → execute.py} +36 -39
  24. pulumi_snowflake/external_function.py +54 -75
  25. pulumi_snowflake/external_oauth_integration.py +593 -542
  26. pulumi_snowflake/external_table.py +67 -90
  27. pulumi_snowflake/external_volume.py +382 -0
  28. pulumi_snowflake/failover_group.py +57 -98
  29. pulumi_snowflake/file_format.py +33 -28
  30. pulumi_snowflake/function_java.py +1211 -0
  31. pulumi_snowflake/function_javascript.py +882 -0
  32. pulumi_snowflake/function_python.py +1212 -0
  33. pulumi_snowflake/function_scala.py +1212 -0
  34. pulumi_snowflake/function_sql.py +835 -0
  35. pulumi_snowflake/get_account_roles.py +129 -0
  36. pulumi_snowflake/get_accounts.py +53 -22
  37. pulumi_snowflake/get_alerts.py +22 -9
  38. pulumi_snowflake/get_connections.py +109 -0
  39. pulumi_snowflake/get_cortex_search_services.py +216 -0
  40. pulumi_snowflake/get_current_account.py +24 -13
  41. pulumi_snowflake/get_current_role.py +14 -7
  42. pulumi_snowflake/get_database.py +25 -9
  43. pulumi_snowflake/get_database_role.py +162 -0
  44. pulumi_snowflake/get_database_roles.py +79 -47
  45. pulumi_snowflake/get_databases.py +91 -73
  46. pulumi_snowflake/get_dynamic_tables.py +36 -19
  47. pulumi_snowflake/get_external_functions.py +28 -9
  48. pulumi_snowflake/get_external_tables.py +28 -9
  49. pulumi_snowflake/get_failover_groups.py +18 -7
  50. pulumi_snowflake/get_file_formats.py +28 -9
  51. pulumi_snowflake/get_functions.py +28 -9
  52. pulumi_snowflake/get_grants.py +207 -84
  53. pulumi_snowflake/get_masking_policies.py +91 -51
  54. pulumi_snowflake/get_materialized_views.py +28 -9
  55. pulumi_snowflake/get_network_policies.py +129 -0
  56. pulumi_snowflake/get_parameters.py +38 -15
  57. pulumi_snowflake/get_pipes.py +28 -9
  58. pulumi_snowflake/get_procedures.py +28 -9
  59. pulumi_snowflake/get_resource_monitors.py +37 -24
  60. pulumi_snowflake/get_row_access_policies.py +91 -51
  61. pulumi_snowflake/get_schemas.py +145 -41
  62. pulumi_snowflake/get_secrets.py +200 -0
  63. pulumi_snowflake/get_security_integrations.py +129 -0
  64. pulumi_snowflake/get_sequences.py +28 -9
  65. pulumi_snowflake/get_shares.py +18 -9
  66. pulumi_snowflake/get_stages.py +28 -9
  67. pulumi_snowflake/get_storage_integrations.py +16 -9
  68. pulumi_snowflake/get_streamlits.py +170 -0
  69. pulumi_snowflake/get_streams.py +114 -54
  70. pulumi_snowflake/get_system_generate_scim_access_token.py +18 -9
  71. pulumi_snowflake/get_system_get_aws_sns_iam_policy.py +32 -7
  72. pulumi_snowflake/get_system_get_private_link_config.py +120 -5
  73. pulumi_snowflake/get_system_get_snowflake_platform_info.py +15 -7
  74. pulumi_snowflake/get_tables.py +28 -9
  75. pulumi_snowflake/get_tags.py +130 -0
  76. pulumi_snowflake/get_tasks.py +134 -54
  77. pulumi_snowflake/get_users.py +116 -44
  78. pulumi_snowflake/get_views.py +114 -54
  79. pulumi_snowflake/get_warehouses.py +79 -26
  80. pulumi_snowflake/grant_account_role.py +28 -75
  81. pulumi_snowflake/grant_application_role.py +257 -0
  82. pulumi_snowflake/grant_database_role.py +35 -94
  83. pulumi_snowflake/grant_ownership.py +382 -0
  84. pulumi_snowflake/grant_privileges_to_account_role.py +42 -78
  85. pulumi_snowflake/grant_privileges_to_database_role.py +37 -383
  86. pulumi_snowflake/grant_privileges_to_share.py +96 -44
  87. pulumi_snowflake/legacy_service_user.py +3670 -0
  88. pulumi_snowflake/managed_account.py +40 -11
  89. pulumi_snowflake/masking_policy.py +213 -310
  90. pulumi_snowflake/materialized_view.py +62 -71
  91. pulumi_snowflake/network_policy.py +217 -61
  92. pulumi_snowflake/network_policy_attachment.py +5 -34
  93. pulumi_snowflake/network_rule.py +473 -0
  94. pulumi_snowflake/notification_integration.py +49 -84
  95. pulumi_snowflake/oauth_integration_for_custom_clients.py +906 -0
  96. pulumi_snowflake/{oauth_integration.py → oauth_integration_for_partner_applications.py} +191 -192
  97. pulumi_snowflake/object_parameter.py +10 -101
  98. pulumi_snowflake/outputs.py +49200 -2928
  99. pulumi_snowflake/password_policy.py +41 -28
  100. pulumi_snowflake/pipe.py +33 -4
  101. pulumi_snowflake/primary_connection.py +330 -0
  102. pulumi_snowflake/procedure_java.py +1273 -0
  103. pulumi_snowflake/procedure_javascript.py +895 -0
  104. pulumi_snowflake/procedure_python.py +1226 -0
  105. pulumi_snowflake/procedure_scala.py +1273 -0
  106. pulumi_snowflake/procedure_sql.py +895 -0
  107. pulumi_snowflake/provider.py +378 -613
  108. pulumi_snowflake/pulumi-plugin.json +2 -1
  109. pulumi_snowflake/resource_monitor.py +118 -327
  110. pulumi_snowflake/row_access_policy.py +200 -149
  111. pulumi_snowflake/{saml_integration.py → saml2_integration.py} +356 -299
  112. pulumi_snowflake/schema.py +949 -178
  113. pulumi_snowflake/scim_integration.py +286 -109
  114. pulumi_snowflake/secondary_connection.py +339 -0
  115. pulumi_snowflake/secondary_database.py +1080 -0
  116. pulumi_snowflake/secret_with_authorization_code_grant.py +548 -0
  117. pulumi_snowflake/secret_with_basic_authentication.py +500 -0
  118. pulumi_snowflake/secret_with_client_credentials.py +511 -0
  119. pulumi_snowflake/secret_with_generic_string.py +452 -0
  120. pulumi_snowflake/sequence.py +9 -34
  121. pulumi_snowflake/service_user.py +3585 -0
  122. pulumi_snowflake/share.py +33 -28
  123. pulumi_snowflake/shared_database.py +939 -0
  124. pulumi_snowflake/stage.py +95 -84
  125. pulumi_snowflake/storage_integration.py +46 -4
  126. pulumi_snowflake/stream_on_directory_table.py +517 -0
  127. pulumi_snowflake/stream_on_external_table.py +632 -0
  128. pulumi_snowflake/stream_on_table.py +666 -0
  129. pulumi_snowflake/stream_on_view.py +666 -0
  130. pulumi_snowflake/streamlit.py +671 -0
  131. pulumi_snowflake/table.py +86 -97
  132. pulumi_snowflake/table_column_masking_policy_application.py +7 -14
  133. pulumi_snowflake/table_constraint.py +29 -172
  134. pulumi_snowflake/tag.py +142 -74
  135. pulumi_snowflake/tag_association.py +40 -215
  136. pulumi_snowflake/task.py +3048 -418
  137. pulumi_snowflake/user.py +3351 -384
  138. pulumi_snowflake/user_authentication_policy_attachment.py +197 -0
  139. pulumi_snowflake/user_password_policy_attachment.py +5 -4
  140. pulumi_snowflake/user_public_keys.py +5 -0
  141. pulumi_snowflake/view.py +466 -215
  142. pulumi_snowflake/warehouse.py +184 -168
  143. {pulumi_snowflake-0.50.3a1710160126.dist-info → pulumi_snowflake-1.2.0a1736849992.dist-info}/METADATA +7 -6
  144. pulumi_snowflake-1.2.0a1736849992.dist-info/RECORD +148 -0
  145. {pulumi_snowflake-0.50.3a1710160126.dist-info → pulumi_snowflake-1.2.0a1736849992.dist-info}/WHEEL +1 -1
  146. pulumi_snowflake/account_grant.py +0 -343
  147. pulumi_snowflake/database_grant.py +0 -495
  148. pulumi_snowflake/external_table_grant.py +0 -690
  149. pulumi_snowflake/failover_group_grant.py +0 -388
  150. pulumi_snowflake/file_format_grant.py +0 -635
  151. pulumi_snowflake/function.py +0 -872
  152. pulumi_snowflake/function_grant.py +0 -745
  153. pulumi_snowflake/get_role.py +0 -121
  154. pulumi_snowflake/get_roles.py +0 -120
  155. pulumi_snowflake/grant_privileges_to_role.py +0 -825
  156. pulumi_snowflake/integration_grant.py +0 -440
  157. pulumi_snowflake/masking_policy_grant.py +0 -542
  158. pulumi_snowflake/materialized_view_grant.py +0 -689
  159. pulumi_snowflake/pipe_grant.py +0 -587
  160. pulumi_snowflake/procedure.py +0 -887
  161. pulumi_snowflake/procedure_grant.py +0 -745
  162. pulumi_snowflake/resource_monitor_grant.py +0 -387
  163. pulumi_snowflake/role.py +0 -273
  164. pulumi_snowflake/role_grants.py +0 -352
  165. pulumi_snowflake/role_ownership_grant.py +0 -338
  166. pulumi_snowflake/row_access_policy_grant.py +0 -540
  167. pulumi_snowflake/schema_grant.py +0 -647
  168. pulumi_snowflake/sequence_grant.py +0 -635
  169. pulumi_snowflake/session_parameter.py +0 -332
  170. pulumi_snowflake/stage_grant.py +0 -635
  171. pulumi_snowflake/stream.py +0 -614
  172. pulumi_snowflake/stream_grant.py +0 -635
  173. pulumi_snowflake/table_grant.py +0 -677
  174. pulumi_snowflake/tag_grant.py +0 -532
  175. pulumi_snowflake/tag_masking_policy_association.py +0 -210
  176. pulumi_snowflake/task_grant.py +0 -635
  177. pulumi_snowflake/user_grant.py +0 -394
  178. pulumi_snowflake/user_ownership_grant.py +0 -286
  179. pulumi_snowflake/view_grant.py +0 -705
  180. pulumi_snowflake/warehouse_grant.py +0 -440
  181. pulumi_snowflake-0.50.3a1710160126.dist-info/RECORD +0 -136
  182. {pulumi_snowflake-0.50.3a1710160126.dist-info → pulumi_snowflake-1.2.0a1736849992.dist-info}/top_level.txt +0 -0
@@ -4,53 +4,70 @@
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
- __all__ = ['SamlIntegrationArgs', 'SamlIntegration']
19
+ __all__ = ['Saml2IntegrationArgs', 'Saml2Integration']
13
20
 
14
21
  @pulumi.input_type
15
- class SamlIntegrationArgs:
22
+ class Saml2IntegrationArgs:
16
23
  def __init__(__self__, *,
17
24
  saml2_issuer: pulumi.Input[str],
18
25
  saml2_provider: pulumi.Input[str],
19
26
  saml2_sso_url: pulumi.Input[str],
20
27
  saml2_x509_cert: pulumi.Input[str],
21
- enabled: Optional[pulumi.Input[bool]] = None,
28
+ allowed_email_patterns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
29
+ allowed_user_domains: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
30
+ comment: Optional[pulumi.Input[str]] = None,
31
+ enabled: Optional[pulumi.Input[str]] = None,
22
32
  name: Optional[pulumi.Input[str]] = None,
23
- saml2_enable_sp_initiated: Optional[pulumi.Input[bool]] = None,
24
- saml2_force_authn: Optional[pulumi.Input[bool]] = None,
33
+ saml2_enable_sp_initiated: Optional[pulumi.Input[str]] = None,
34
+ saml2_force_authn: Optional[pulumi.Input[str]] = None,
25
35
  saml2_post_logout_redirect_url: Optional[pulumi.Input[str]] = None,
26
36
  saml2_requested_nameid_format: Optional[pulumi.Input[str]] = None,
27
- saml2_sign_request: Optional[pulumi.Input[bool]] = None,
37
+ saml2_sign_request: Optional[pulumi.Input[str]] = None,
28
38
  saml2_snowflake_acs_url: Optional[pulumi.Input[str]] = None,
29
39
  saml2_snowflake_issuer_url: Optional[pulumi.Input[str]] = None,
30
- saml2_snowflake_x509_cert: Optional[pulumi.Input[str]] = None,
31
40
  saml2_sp_initiated_login_page_label: Optional[pulumi.Input[str]] = None):
32
41
  """
33
- The set of arguments for constructing a SamlIntegration resource.
42
+ The set of arguments for constructing a Saml2Integration resource.
34
43
  :param pulumi.Input[str] saml2_issuer: The string containing the IdP EntityID / Issuer.
35
- :param pulumi.Input[str] saml2_provider: The string describing the IdP. One of the following: OKTA, ADFS, Custom.
44
+ :param pulumi.Input[str] saml2_provider: The string describing the IdP. Valid options are: `OKTA` | `ADFS` | `CUSTOM`.
36
45
  :param pulumi.Input[str] saml2_sso_url: The string containing the IdP SSO URL, where the user should be redirected by Snowflake (the Service Provider) with a SAML AuthnRequest message.
37
46
  :param pulumi.Input[str] saml2_x509_cert: The Base64 encoded IdP signing certificate on a single line without the leading -----BEGIN CERTIFICATE----- and ending -----END CERTIFICATE----- markers.
38
- :param pulumi.Input[bool] enabled: Specifies whether this security integration is enabled or disabled.
39
- :param pulumi.Input[str] name: Specifies the name of the SAML2 integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account.
40
- :param pulumi.Input[bool] saml2_enable_sp_initiated: The Boolean indicating if the Log In With button will be shown on the login page. TRUE: displays the Log in WIth button on the login page. FALSE: does not display the Log in With button on the login page.
41
- :param pulumi.Input[bool] saml2_force_authn: The Boolean indicating whether users, during the initial authentication flow, are forced to authenticate again to access Snowflake. When set to TRUE, Snowflake sets the ForceAuthn SAML parameter to TRUE in the outgoing request from Snowflake to the identity provider. TRUE: forces users to authenticate again to access Snowflake, even if a valid session with the identity provider exists. FALSE: does not force users to authenticate again to access Snowflake.
47
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_email_patterns: A list of regular expressions that email addresses are matched against to authenticate with a SAML2 security integration. If this field changes value from non-empty to empty, the whole resource is recreated because of Snowflake limitations.
48
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_user_domains: A list of email domains that can authenticate with a SAML2 security integration. If this field changes value from non-empty to empty, the whole resource is recreated because of Snowflake limitations.
49
+ :param pulumi.Input[str] comment: Specifies a comment for the integration.
50
+ :param pulumi.Input[str] enabled: Specifies whether this security integration is enabled or disabled. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
51
+ :param pulumi.Input[str] name: Specifies the name of the SAML2 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: `|`, `.`, `"`.
52
+ :param pulumi.Input[str] saml2_enable_sp_initiated: The Boolean indicating if the Log In With button will be shown on the login page. TRUE: displays the Log in With button on the login page. FALSE: does not display the Log in With button on the login page. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
53
+ :param pulumi.Input[str] saml2_force_authn: The Boolean indicating whether users, during the initial authentication flow, are forced to authenticate again to access Snowflake. When set to TRUE, Snowflake sets the ForceAuthn SAML parameter to TRUE in the outgoing request from Snowflake to the identity provider. TRUE: forces users to authenticate again to access Snowflake, even if a valid session with the identity provider exists. FALSE: does not force users to authenticate again to access Snowflake. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
42
54
  :param pulumi.Input[str] saml2_post_logout_redirect_url: The endpoint to which Snowflake redirects users after clicking the Log Out button in the classic Snowflake web interface. Snowflake terminates the Snowflake session upon redirecting to the specified endpoint.
43
- :param pulumi.Input[str] saml2_requested_nameid_format: The SAML NameID format allows Snowflake to set an expectation of the identifying attribute of the user (i.e. SAML Subject) in the SAML assertion from the IdP to ensure a valid authentication to Snowflake. If a value is not specified, Snowflake sends the urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress value in the authentication request to the IdP. NameID must be one of the following values: urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified, urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress, urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName, urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName, urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos, urn:oasis:names:tc:SAML:2.0:nameid-format:persistent, urn:oasis:names:tc:SAML:2.0:nameid-format:transient .
44
- :param pulumi.Input[bool] saml2_sign_request: The Boolean indicating whether SAML requests are signed. TRUE: allows SAML requests to be signed. FALSE: does not allow SAML requests to be signed.
45
- :param pulumi.Input[str] saml2_snowflake_acs_url: The string containing the Snowflake Assertion Consumer Service URL to which the IdP will send its SAML authentication response back to Snowflake. This property will be set in the SAML authentication request generated by Snowflake when initiating a SAML SSO operation with the IdP. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use. Default: https://\\n\\n.\\n\\n.snowflakecomputing.com/fed/login
46
- :param pulumi.Input[str] saml2_snowflake_issuer_url: The string containing the EntityID / Issuer for the Snowflake service provider. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use.
47
- :param pulumi.Input[str] saml2_snowflake_x509_cert: The Base64 encoded self-signed certificate generated by Snowflake for use with Encrypting SAML Assertions and Signed SAML Requests. You must have at least one of these features (encrypted SAML assertions or signed SAML responses) enabled in your Snowflake account to access the certificate value.
48
- :param pulumi.Input[str] saml2_sp_initiated_login_page_label: The string containing the label to display after the Log In With button on the login page.
55
+ :param pulumi.Input[str] saml2_requested_nameid_format: The SAML NameID format allows Snowflake to set an expectation of the identifying attribute of the user (i.e. SAML Subject) in the SAML assertion from the IdP to ensure a valid authentication to Snowflake. Valid options are: `urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified` | `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress` | `urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName` | `urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName` | `urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos` | `urn:oasis:names:tc:SAML:2.0:nameid-format:persistent` | `urn:oasis:names:tc:SAML:2.0:nameid-format:transient`.
56
+ :param pulumi.Input[str] saml2_sign_request: The Boolean indicating whether SAML requests are signed. TRUE: allows SAML requests to be signed. FALSE: does not allow SAML requests to be signed. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
57
+ :param pulumi.Input[str] saml2_snowflake_acs_url: The string containing the Snowflake Assertion Consumer Service URL to which the IdP will send its SAML authentication response back to Snowflake. This property will be set in the SAML authentication request generated by Snowflake when initiating a SAML SSO operation with the IdP. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use. Because Okta does not support underscores in URLs, the underscore in the account name must be converted to a hyphen. See [docs](https://docs.snowflake.com/en/user-guide/organizations-connect#okta-urls).
58
+ :param pulumi.Input[str] saml2_snowflake_issuer_url: The string containing the EntityID / Issuer for the Snowflake service provider. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use. Because Okta does not support underscores in URLs, the underscore in the account name must be converted to a hyphen. See [docs](https://docs.snowflake.com/en/user-guide/organizations-connect#okta-urls).
59
+ :param pulumi.Input[str] saml2_sp_initiated_login_page_label: The string containing the label to display after the Log In With button on the login page. If this field changes value from non-empty to empty, the whole resource is recreated because of Snowflake limitations.
49
60
  """
50
61
  pulumi.set(__self__, "saml2_issuer", saml2_issuer)
51
62
  pulumi.set(__self__, "saml2_provider", saml2_provider)
52
63
  pulumi.set(__self__, "saml2_sso_url", saml2_sso_url)
53
64
  pulumi.set(__self__, "saml2_x509_cert", saml2_x509_cert)
65
+ if allowed_email_patterns is not None:
66
+ pulumi.set(__self__, "allowed_email_patterns", allowed_email_patterns)
67
+ if allowed_user_domains is not None:
68
+ pulumi.set(__self__, "allowed_user_domains", allowed_user_domains)
69
+ if comment is not None:
70
+ pulumi.set(__self__, "comment", comment)
54
71
  if enabled is not None:
55
72
  pulumi.set(__self__, "enabled", enabled)
56
73
  if name is not None:
@@ -69,8 +86,6 @@ class SamlIntegrationArgs:
69
86
  pulumi.set(__self__, "saml2_snowflake_acs_url", saml2_snowflake_acs_url)
70
87
  if saml2_snowflake_issuer_url is not None:
71
88
  pulumi.set(__self__, "saml2_snowflake_issuer_url", saml2_snowflake_issuer_url)
72
- if saml2_snowflake_x509_cert is not None:
73
- pulumi.set(__self__, "saml2_snowflake_x509_cert", saml2_snowflake_x509_cert)
74
89
  if saml2_sp_initiated_login_page_label is not None:
75
90
  pulumi.set(__self__, "saml2_sp_initiated_login_page_label", saml2_sp_initiated_login_page_label)
76
91
 
@@ -90,7 +105,7 @@ class SamlIntegrationArgs:
90
105
  @pulumi.getter(name="saml2Provider")
91
106
  def saml2_provider(self) -> pulumi.Input[str]:
92
107
  """
93
- The string describing the IdP. One of the following: OKTA, ADFS, Custom.
108
+ The string describing the IdP. Valid options are: `OKTA` | `ADFS` | `CUSTOM`.
94
109
  """
95
110
  return pulumi.get(self, "saml2_provider")
96
111
 
@@ -122,23 +137,59 @@ class SamlIntegrationArgs:
122
137
  def saml2_x509_cert(self, value: pulumi.Input[str]):
123
138
  pulumi.set(self, "saml2_x509_cert", value)
124
139
 
140
+ @property
141
+ @pulumi.getter(name="allowedEmailPatterns")
142
+ def allowed_email_patterns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
143
+ """
144
+ A list of regular expressions that email addresses are matched against to authenticate with a SAML2 security integration. If this field changes value from non-empty to empty, the whole resource is recreated because of Snowflake limitations.
145
+ """
146
+ return pulumi.get(self, "allowed_email_patterns")
147
+
148
+ @allowed_email_patterns.setter
149
+ def allowed_email_patterns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
150
+ pulumi.set(self, "allowed_email_patterns", value)
151
+
152
+ @property
153
+ @pulumi.getter(name="allowedUserDomains")
154
+ def allowed_user_domains(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
155
+ """
156
+ A list of email domains that can authenticate with a SAML2 security integration. If this field changes value from non-empty to empty, the whole resource is recreated because of Snowflake limitations.
157
+ """
158
+ return pulumi.get(self, "allowed_user_domains")
159
+
160
+ @allowed_user_domains.setter
161
+ def allowed_user_domains(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
162
+ pulumi.set(self, "allowed_user_domains", value)
163
+
125
164
  @property
126
165
  @pulumi.getter
127
- def enabled(self) -> Optional[pulumi.Input[bool]]:
166
+ def comment(self) -> Optional[pulumi.Input[str]]:
128
167
  """
129
- Specifies whether this security integration is enabled or disabled.
168
+ Specifies a comment for the integration.
169
+ """
170
+ return pulumi.get(self, "comment")
171
+
172
+ @comment.setter
173
+ def comment(self, value: Optional[pulumi.Input[str]]):
174
+ pulumi.set(self, "comment", value)
175
+
176
+ @property
177
+ @pulumi.getter
178
+ def enabled(self) -> Optional[pulumi.Input[str]]:
179
+ """
180
+ Specifies whether this security integration is enabled or disabled. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
130
181
  """
131
182
  return pulumi.get(self, "enabled")
132
183
 
133
184
  @enabled.setter
134
- def enabled(self, value: Optional[pulumi.Input[bool]]):
185
+ def enabled(self, value: Optional[pulumi.Input[str]]):
135
186
  pulumi.set(self, "enabled", value)
136
187
 
137
188
  @property
138
189
  @pulumi.getter
139
190
  def name(self) -> Optional[pulumi.Input[str]]:
140
191
  """
141
- Specifies the name of the SAML2 integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account.
192
+ Specifies the name of the SAML2 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: `|`, `.`, `"`.
142
193
  """
143
194
  return pulumi.get(self, "name")
144
195
 
@@ -148,26 +199,26 @@ class SamlIntegrationArgs:
148
199
 
149
200
  @property
150
201
  @pulumi.getter(name="saml2EnableSpInitiated")
151
- def saml2_enable_sp_initiated(self) -> Optional[pulumi.Input[bool]]:
202
+ def saml2_enable_sp_initiated(self) -> Optional[pulumi.Input[str]]:
152
203
  """
153
- The Boolean indicating if the Log In With button will be shown on the login page. TRUE: displays the Log in WIth button on the login page. FALSE: does not display the Log in With button on the login page.
204
+ The Boolean indicating if the Log In With button will be shown on the login page. TRUE: displays the Log in With button on the login page. FALSE: does not display the Log in With button on the login page. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
154
205
  """
155
206
  return pulumi.get(self, "saml2_enable_sp_initiated")
156
207
 
157
208
  @saml2_enable_sp_initiated.setter
158
- def saml2_enable_sp_initiated(self, value: Optional[pulumi.Input[bool]]):
209
+ def saml2_enable_sp_initiated(self, value: Optional[pulumi.Input[str]]):
159
210
  pulumi.set(self, "saml2_enable_sp_initiated", value)
160
211
 
161
212
  @property
162
213
  @pulumi.getter(name="saml2ForceAuthn")
163
- def saml2_force_authn(self) -> Optional[pulumi.Input[bool]]:
214
+ def saml2_force_authn(self) -> Optional[pulumi.Input[str]]:
164
215
  """
165
- The Boolean indicating whether users, during the initial authentication flow, are forced to authenticate again to access Snowflake. When set to TRUE, Snowflake sets the ForceAuthn SAML parameter to TRUE in the outgoing request from Snowflake to the identity provider. TRUE: forces users to authenticate again to access Snowflake, even if a valid session with the identity provider exists. FALSE: does not force users to authenticate again to access Snowflake.
216
+ The Boolean indicating whether users, during the initial authentication flow, are forced to authenticate again to access Snowflake. When set to TRUE, Snowflake sets the ForceAuthn SAML parameter to TRUE in the outgoing request from Snowflake to the identity provider. TRUE: forces users to authenticate again to access Snowflake, even if a valid session with the identity provider exists. FALSE: does not force users to authenticate again to access Snowflake. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
166
217
  """
167
218
  return pulumi.get(self, "saml2_force_authn")
168
219
 
169
220
  @saml2_force_authn.setter
170
- def saml2_force_authn(self, value: Optional[pulumi.Input[bool]]):
221
+ def saml2_force_authn(self, value: Optional[pulumi.Input[str]]):
171
222
  pulumi.set(self, "saml2_force_authn", value)
172
223
 
173
224
  @property
@@ -186,7 +237,7 @@ class SamlIntegrationArgs:
186
237
  @pulumi.getter(name="saml2RequestedNameidFormat")
187
238
  def saml2_requested_nameid_format(self) -> Optional[pulumi.Input[str]]:
188
239
  """
189
- The SAML NameID format allows Snowflake to set an expectation of the identifying attribute of the user (i.e. SAML Subject) in the SAML assertion from the IdP to ensure a valid authentication to Snowflake. If a value is not specified, Snowflake sends the urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress value in the authentication request to the IdP. NameID must be one of the following values: urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified, urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress, urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName, urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName, urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos, urn:oasis:names:tc:SAML:2.0:nameid-format:persistent, urn:oasis:names:tc:SAML:2.0:nameid-format:transient .
240
+ The SAML NameID format allows Snowflake to set an expectation of the identifying attribute of the user (i.e. SAML Subject) in the SAML assertion from the IdP to ensure a valid authentication to Snowflake. Valid options are: `urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified` | `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress` | `urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName` | `urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName` | `urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos` | `urn:oasis:names:tc:SAML:2.0:nameid-format:persistent` | `urn:oasis:names:tc:SAML:2.0:nameid-format:transient`.
190
241
  """
191
242
  return pulumi.get(self, "saml2_requested_nameid_format")
192
243
 
@@ -196,21 +247,21 @@ class SamlIntegrationArgs:
196
247
 
197
248
  @property
198
249
  @pulumi.getter(name="saml2SignRequest")
199
- def saml2_sign_request(self) -> Optional[pulumi.Input[bool]]:
250
+ def saml2_sign_request(self) -> Optional[pulumi.Input[str]]:
200
251
  """
201
- The Boolean indicating whether SAML requests are signed. TRUE: allows SAML requests to be signed. FALSE: does not allow SAML requests to be signed.
252
+ The Boolean indicating whether SAML requests are signed. TRUE: allows SAML requests to be signed. FALSE: does not allow SAML requests to be signed. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
202
253
  """
203
254
  return pulumi.get(self, "saml2_sign_request")
204
255
 
205
256
  @saml2_sign_request.setter
206
- def saml2_sign_request(self, value: Optional[pulumi.Input[bool]]):
257
+ def saml2_sign_request(self, value: Optional[pulumi.Input[str]]):
207
258
  pulumi.set(self, "saml2_sign_request", value)
208
259
 
209
260
  @property
210
261
  @pulumi.getter(name="saml2SnowflakeAcsUrl")
211
262
  def saml2_snowflake_acs_url(self) -> Optional[pulumi.Input[str]]:
212
263
  """
213
- The string containing the Snowflake Assertion Consumer Service URL to which the IdP will send its SAML authentication response back to Snowflake. This property will be set in the SAML authentication request generated by Snowflake when initiating a SAML SSO operation with the IdP. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use. Default: https://\\n\\n.\\n\\n.snowflakecomputing.com/fed/login
264
+ The string containing the Snowflake Assertion Consumer Service URL to which the IdP will send its SAML authentication response back to Snowflake. This property will be set in the SAML authentication request generated by Snowflake when initiating a SAML SSO operation with the IdP. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use. Because Okta does not support underscores in URLs, the underscore in the account name must be converted to a hyphen. See [docs](https://docs.snowflake.com/en/user-guide/organizations-connect#okta-urls).
214
265
  """
215
266
  return pulumi.get(self, "saml2_snowflake_acs_url")
216
267
 
@@ -222,7 +273,7 @@ class SamlIntegrationArgs:
222
273
  @pulumi.getter(name="saml2SnowflakeIssuerUrl")
223
274
  def saml2_snowflake_issuer_url(self) -> Optional[pulumi.Input[str]]:
224
275
  """
225
- The string containing the EntityID / Issuer for the Snowflake service provider. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use.
276
+ The string containing the EntityID / Issuer for the Snowflake service provider. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use. Because Okta does not support underscores in URLs, the underscore in the account name must be converted to a hyphen. See [docs](https://docs.snowflake.com/en/user-guide/organizations-connect#okta-urls).
226
277
  """
227
278
  return pulumi.get(self, "saml2_snowflake_issuer_url")
228
279
 
@@ -230,23 +281,11 @@ class SamlIntegrationArgs:
230
281
  def saml2_snowflake_issuer_url(self, value: Optional[pulumi.Input[str]]):
231
282
  pulumi.set(self, "saml2_snowflake_issuer_url", value)
232
283
 
233
- @property
234
- @pulumi.getter(name="saml2SnowflakeX509Cert")
235
- def saml2_snowflake_x509_cert(self) -> Optional[pulumi.Input[str]]:
236
- """
237
- The Base64 encoded self-signed certificate generated by Snowflake for use with Encrypting SAML Assertions and Signed SAML Requests. You must have at least one of these features (encrypted SAML assertions or signed SAML responses) enabled in your Snowflake account to access the certificate value.
238
- """
239
- return pulumi.get(self, "saml2_snowflake_x509_cert")
240
-
241
- @saml2_snowflake_x509_cert.setter
242
- def saml2_snowflake_x509_cert(self, value: Optional[pulumi.Input[str]]):
243
- pulumi.set(self, "saml2_snowflake_x509_cert", value)
244
-
245
284
  @property
246
285
  @pulumi.getter(name="saml2SpInitiatedLoginPageLabel")
247
286
  def saml2_sp_initiated_login_page_label(self) -> Optional[pulumi.Input[str]]:
248
287
  """
249
- The string containing the label to display after the Log In With button on the login page.
288
+ The string containing the label to display after the Log In With button on the login page. If this field changes value from non-empty to empty, the whole resource is recreated because of Snowflake limitations.
250
289
  """
251
290
  return pulumi.get(self, "saml2_sp_initiated_login_page_label")
252
291
 
@@ -256,55 +295,65 @@ class SamlIntegrationArgs:
256
295
 
257
296
 
258
297
  @pulumi.input_type
259
- class _SamlIntegrationState:
298
+ class _Saml2IntegrationState:
260
299
  def __init__(__self__, *,
261
- created_on: Optional[pulumi.Input[str]] = None,
262
- enabled: Optional[pulumi.Input[bool]] = None,
300
+ allowed_email_patterns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
301
+ allowed_user_domains: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
302
+ comment: Optional[pulumi.Input[str]] = None,
303
+ describe_outputs: Optional[pulumi.Input[Sequence[pulumi.Input['Saml2IntegrationDescribeOutputArgs']]]] = None,
304
+ enabled: Optional[pulumi.Input[str]] = None,
305
+ fully_qualified_name: Optional[pulumi.Input[str]] = None,
263
306
  name: Optional[pulumi.Input[str]] = None,
264
- saml2_digest_methods_used: Optional[pulumi.Input[str]] = None,
265
- saml2_enable_sp_initiated: Optional[pulumi.Input[bool]] = None,
266
- saml2_force_authn: Optional[pulumi.Input[bool]] = None,
307
+ saml2_enable_sp_initiated: Optional[pulumi.Input[str]] = None,
308
+ saml2_force_authn: Optional[pulumi.Input[str]] = None,
267
309
  saml2_issuer: Optional[pulumi.Input[str]] = None,
268
310
  saml2_post_logout_redirect_url: Optional[pulumi.Input[str]] = None,
269
311
  saml2_provider: Optional[pulumi.Input[str]] = None,
270
312
  saml2_requested_nameid_format: Optional[pulumi.Input[str]] = None,
271
- saml2_sign_request: Optional[pulumi.Input[bool]] = None,
272
- saml2_signature_methods_used: Optional[pulumi.Input[str]] = None,
313
+ saml2_sign_request: Optional[pulumi.Input[str]] = None,
273
314
  saml2_snowflake_acs_url: Optional[pulumi.Input[str]] = None,
274
315
  saml2_snowflake_issuer_url: Optional[pulumi.Input[str]] = None,
275
- saml2_snowflake_metadata: Optional[pulumi.Input[str]] = None,
276
- saml2_snowflake_x509_cert: Optional[pulumi.Input[str]] = None,
277
316
  saml2_sp_initiated_login_page_label: Optional[pulumi.Input[str]] = None,
278
317
  saml2_sso_url: Optional[pulumi.Input[str]] = None,
279
- saml2_x509_cert: Optional[pulumi.Input[str]] = None):
280
- """
281
- Input properties used for looking up and filtering SamlIntegration resources.
282
- :param pulumi.Input[str] created_on: Date and time when the SAML integration was created.
283
- :param pulumi.Input[bool] enabled: Specifies whether this security integration is enabled or disabled.
284
- :param pulumi.Input[str] name: Specifies the name of the SAML2 integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account.
285
- :param pulumi.Input[bool] saml2_enable_sp_initiated: The Boolean indicating if the Log In With button will be shown on the login page. TRUE: displays the Log in WIth button on the login page. FALSE: does not display the Log in With button on the login page.
286
- :param pulumi.Input[bool] saml2_force_authn: The Boolean indicating whether users, during the initial authentication flow, are forced to authenticate again to access Snowflake. When set to TRUE, Snowflake sets the ForceAuthn SAML parameter to TRUE in the outgoing request from Snowflake to the identity provider. TRUE: forces users to authenticate again to access Snowflake, even if a valid session with the identity provider exists. FALSE: does not force users to authenticate again to access Snowflake.
318
+ saml2_x509_cert: Optional[pulumi.Input[str]] = None,
319
+ show_outputs: Optional[pulumi.Input[Sequence[pulumi.Input['Saml2IntegrationShowOutputArgs']]]] = None):
320
+ """
321
+ Input properties used for looking up and filtering Saml2Integration resources.
322
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_email_patterns: A list of regular expressions that email addresses are matched against to authenticate with a SAML2 security integration. If this field changes value from non-empty to empty, the whole resource is recreated because of Snowflake limitations.
323
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_user_domains: A list of email domains that can authenticate with a SAML2 security integration. If this field changes value from non-empty to empty, the whole resource is recreated because of Snowflake limitations.
324
+ :param pulumi.Input[str] comment: Specifies a comment for the integration.
325
+ :param pulumi.Input[Sequence[pulumi.Input['Saml2IntegrationDescribeOutputArgs']]] describe_outputs: Outputs the result of `DESCRIBE SECURITY INTEGRATION` for the given integration.
326
+ :param pulumi.Input[str] enabled: Specifies whether this security integration is enabled or disabled. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
327
+ :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).
328
+ :param pulumi.Input[str] name: Specifies the name of the SAML2 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: `|`, `.`, `"`.
329
+ :param pulumi.Input[str] saml2_enable_sp_initiated: The Boolean indicating if the Log In With button will be shown on the login page. TRUE: displays the Log in With button on the login page. FALSE: does not display the Log in With button on the login page. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
330
+ :param pulumi.Input[str] saml2_force_authn: The Boolean indicating whether users, during the initial authentication flow, are forced to authenticate again to access Snowflake. When set to TRUE, Snowflake sets the ForceAuthn SAML parameter to TRUE in the outgoing request from Snowflake to the identity provider. TRUE: forces users to authenticate again to access Snowflake, even if a valid session with the identity provider exists. FALSE: does not force users to authenticate again to access Snowflake. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
287
331
  :param pulumi.Input[str] saml2_issuer: The string containing the IdP EntityID / Issuer.
288
332
  :param pulumi.Input[str] saml2_post_logout_redirect_url: The endpoint to which Snowflake redirects users after clicking the Log Out button in the classic Snowflake web interface. Snowflake terminates the Snowflake session upon redirecting to the specified endpoint.
289
- :param pulumi.Input[str] saml2_provider: The string describing the IdP. One of the following: OKTA, ADFS, Custom.
290
- :param pulumi.Input[str] saml2_requested_nameid_format: The SAML NameID format allows Snowflake to set an expectation of the identifying attribute of the user (i.e. SAML Subject) in the SAML assertion from the IdP to ensure a valid authentication to Snowflake. If a value is not specified, Snowflake sends the urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress value in the authentication request to the IdP. NameID must be one of the following values: urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified, urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress, urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName, urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName, urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos, urn:oasis:names:tc:SAML:2.0:nameid-format:persistent, urn:oasis:names:tc:SAML:2.0:nameid-format:transient .
291
- :param pulumi.Input[bool] saml2_sign_request: The Boolean indicating whether SAML requests are signed. TRUE: allows SAML requests to be signed. FALSE: does not allow SAML requests to be signed.
292
- :param pulumi.Input[str] saml2_snowflake_acs_url: The string containing the Snowflake Assertion Consumer Service URL to which the IdP will send its SAML authentication response back to Snowflake. This property will be set in the SAML authentication request generated by Snowflake when initiating a SAML SSO operation with the IdP. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use. Default: https://\\n\\n.\\n\\n.snowflakecomputing.com/fed/login
293
- :param pulumi.Input[str] saml2_snowflake_issuer_url: The string containing the EntityID / Issuer for the Snowflake service provider. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use.
294
- :param pulumi.Input[str] saml2_snowflake_metadata: Metadata created by Snowflake to provide to SAML2 provider.
295
- :param pulumi.Input[str] saml2_snowflake_x509_cert: The Base64 encoded self-signed certificate generated by Snowflake for use with Encrypting SAML Assertions and Signed SAML Requests. You must have at least one of these features (encrypted SAML assertions or signed SAML responses) enabled in your Snowflake account to access the certificate value.
296
- :param pulumi.Input[str] saml2_sp_initiated_login_page_label: The string containing the label to display after the Log In With button on the login page.
333
+ :param pulumi.Input[str] saml2_provider: The string describing the IdP. Valid options are: `OKTA` | `ADFS` | `CUSTOM`.
334
+ :param pulumi.Input[str] saml2_requested_nameid_format: The SAML NameID format allows Snowflake to set an expectation of the identifying attribute of the user (i.e. SAML Subject) in the SAML assertion from the IdP to ensure a valid authentication to Snowflake. Valid options are: `urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified` | `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress` | `urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName` | `urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName` | `urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos` | `urn:oasis:names:tc:SAML:2.0:nameid-format:persistent` | `urn:oasis:names:tc:SAML:2.0:nameid-format:transient`.
335
+ :param pulumi.Input[str] saml2_sign_request: The Boolean indicating whether SAML requests are signed. TRUE: allows SAML requests to be signed. FALSE: does not allow SAML requests to be signed. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
336
+ :param pulumi.Input[str] saml2_snowflake_acs_url: The string containing the Snowflake Assertion Consumer Service URL to which the IdP will send its SAML authentication response back to Snowflake. This property will be set in the SAML authentication request generated by Snowflake when initiating a SAML SSO operation with the IdP. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use. Because Okta does not support underscores in URLs, the underscore in the account name must be converted to a hyphen. See [docs](https://docs.snowflake.com/en/user-guide/organizations-connect#okta-urls).
337
+ :param pulumi.Input[str] saml2_snowflake_issuer_url: The string containing the EntityID / Issuer for the Snowflake service provider. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use. Because Okta does not support underscores in URLs, the underscore in the account name must be converted to a hyphen. See [docs](https://docs.snowflake.com/en/user-guide/organizations-connect#okta-urls).
338
+ :param pulumi.Input[str] saml2_sp_initiated_login_page_label: The string containing the label to display after the Log In With button on the login page. If this field changes value from non-empty to empty, the whole resource is recreated because of Snowflake limitations.
297
339
  :param pulumi.Input[str] saml2_sso_url: The string containing the IdP SSO URL, where the user should be redirected by Snowflake (the Service Provider) with a SAML AuthnRequest message.
298
340
  :param pulumi.Input[str] saml2_x509_cert: The Base64 encoded IdP signing certificate on a single line without the leading -----BEGIN CERTIFICATE----- and ending -----END CERTIFICATE----- markers.
299
- """
300
- if created_on is not None:
301
- pulumi.set(__self__, "created_on", created_on)
341
+ :param pulumi.Input[Sequence[pulumi.Input['Saml2IntegrationShowOutputArgs']]] show_outputs: Outputs the result of `SHOW SECURITY INTEGRATION` for the given integration.
342
+ """
343
+ if allowed_email_patterns is not None:
344
+ pulumi.set(__self__, "allowed_email_patterns", allowed_email_patterns)
345
+ if allowed_user_domains is not None:
346
+ pulumi.set(__self__, "allowed_user_domains", allowed_user_domains)
347
+ if comment is not None:
348
+ pulumi.set(__self__, "comment", comment)
349
+ if describe_outputs is not None:
350
+ pulumi.set(__self__, "describe_outputs", describe_outputs)
302
351
  if enabled is not None:
303
352
  pulumi.set(__self__, "enabled", enabled)
353
+ if fully_qualified_name is not None:
354
+ pulumi.set(__self__, "fully_qualified_name", fully_qualified_name)
304
355
  if name is not None:
305
356
  pulumi.set(__self__, "name", name)
306
- if saml2_digest_methods_used is not None:
307
- pulumi.set(__self__, "saml2_digest_methods_used", saml2_digest_methods_used)
308
357
  if saml2_enable_sp_initiated is not None:
309
358
  pulumi.set(__self__, "saml2_enable_sp_initiated", saml2_enable_sp_initiated)
310
359
  if saml2_force_authn is not None:
@@ -319,52 +368,96 @@ class _SamlIntegrationState:
319
368
  pulumi.set(__self__, "saml2_requested_nameid_format", saml2_requested_nameid_format)
320
369
  if saml2_sign_request is not None:
321
370
  pulumi.set(__self__, "saml2_sign_request", saml2_sign_request)
322
- if saml2_signature_methods_used is not None:
323
- pulumi.set(__self__, "saml2_signature_methods_used", saml2_signature_methods_used)
324
371
  if saml2_snowflake_acs_url is not None:
325
372
  pulumi.set(__self__, "saml2_snowflake_acs_url", saml2_snowflake_acs_url)
326
373
  if saml2_snowflake_issuer_url is not None:
327
374
  pulumi.set(__self__, "saml2_snowflake_issuer_url", saml2_snowflake_issuer_url)
328
- if saml2_snowflake_metadata is not None:
329
- pulumi.set(__self__, "saml2_snowflake_metadata", saml2_snowflake_metadata)
330
- if saml2_snowflake_x509_cert is not None:
331
- pulumi.set(__self__, "saml2_snowflake_x509_cert", saml2_snowflake_x509_cert)
332
375
  if saml2_sp_initiated_login_page_label is not None:
333
376
  pulumi.set(__self__, "saml2_sp_initiated_login_page_label", saml2_sp_initiated_login_page_label)
334
377
  if saml2_sso_url is not None:
335
378
  pulumi.set(__self__, "saml2_sso_url", saml2_sso_url)
336
379
  if saml2_x509_cert is not None:
337
380
  pulumi.set(__self__, "saml2_x509_cert", saml2_x509_cert)
381
+ if show_outputs is not None:
382
+ pulumi.set(__self__, "show_outputs", show_outputs)
338
383
 
339
384
  @property
340
- @pulumi.getter(name="createdOn")
341
- def created_on(self) -> Optional[pulumi.Input[str]]:
385
+ @pulumi.getter(name="allowedEmailPatterns")
386
+ def allowed_email_patterns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
342
387
  """
343
- Date and time when the SAML integration was created.
388
+ A list of regular expressions that email addresses are matched against to authenticate with a SAML2 security integration. If this field changes value from non-empty to empty, the whole resource is recreated because of Snowflake limitations.
344
389
  """
345
- return pulumi.get(self, "created_on")
390
+ return pulumi.get(self, "allowed_email_patterns")
346
391
 
347
- @created_on.setter
348
- def created_on(self, value: Optional[pulumi.Input[str]]):
349
- pulumi.set(self, "created_on", value)
392
+ @allowed_email_patterns.setter
393
+ def allowed_email_patterns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
394
+ pulumi.set(self, "allowed_email_patterns", value)
395
+
396
+ @property
397
+ @pulumi.getter(name="allowedUserDomains")
398
+ def allowed_user_domains(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
399
+ """
400
+ A list of email domains that can authenticate with a SAML2 security integration. If this field changes value from non-empty to empty, the whole resource is recreated because of Snowflake limitations.
401
+ """
402
+ return pulumi.get(self, "allowed_user_domains")
403
+
404
+ @allowed_user_domains.setter
405
+ def allowed_user_domains(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
406
+ pulumi.set(self, "allowed_user_domains", value)
350
407
 
351
408
  @property
352
409
  @pulumi.getter
353
- def enabled(self) -> Optional[pulumi.Input[bool]]:
410
+ def comment(self) -> Optional[pulumi.Input[str]]:
354
411
  """
355
- Specifies whether this security integration is enabled or disabled.
412
+ Specifies a comment for the integration.
413
+ """
414
+ return pulumi.get(self, "comment")
415
+
416
+ @comment.setter
417
+ def comment(self, value: Optional[pulumi.Input[str]]):
418
+ pulumi.set(self, "comment", value)
419
+
420
+ @property
421
+ @pulumi.getter(name="describeOutputs")
422
+ def describe_outputs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['Saml2IntegrationDescribeOutputArgs']]]]:
423
+ """
424
+ Outputs the result of `DESCRIBE SECURITY INTEGRATION` for the given integration.
425
+ """
426
+ return pulumi.get(self, "describe_outputs")
427
+
428
+ @describe_outputs.setter
429
+ def describe_outputs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Saml2IntegrationDescribeOutputArgs']]]]):
430
+ pulumi.set(self, "describe_outputs", value)
431
+
432
+ @property
433
+ @pulumi.getter
434
+ def enabled(self) -> Optional[pulumi.Input[str]]:
435
+ """
436
+ Specifies whether this security integration is enabled or disabled. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
356
437
  """
357
438
  return pulumi.get(self, "enabled")
358
439
 
359
440
  @enabled.setter
360
- def enabled(self, value: Optional[pulumi.Input[bool]]):
441
+ def enabled(self, value: Optional[pulumi.Input[str]]):
361
442
  pulumi.set(self, "enabled", value)
362
443
 
444
+ @property
445
+ @pulumi.getter(name="fullyQualifiedName")
446
+ def fully_qualified_name(self) -> Optional[pulumi.Input[str]]:
447
+ """
448
+ Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
449
+ """
450
+ return pulumi.get(self, "fully_qualified_name")
451
+
452
+ @fully_qualified_name.setter
453
+ def fully_qualified_name(self, value: Optional[pulumi.Input[str]]):
454
+ pulumi.set(self, "fully_qualified_name", value)
455
+
363
456
  @property
364
457
  @pulumi.getter
365
458
  def name(self) -> Optional[pulumi.Input[str]]:
366
459
  """
367
- Specifies the name of the SAML2 integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account.
460
+ Specifies the name of the SAML2 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: `|`, `.`, `"`.
368
461
  """
369
462
  return pulumi.get(self, "name")
370
463
 
@@ -372,37 +465,28 @@ class _SamlIntegrationState:
372
465
  def name(self, value: Optional[pulumi.Input[str]]):
373
466
  pulumi.set(self, "name", value)
374
467
 
375
- @property
376
- @pulumi.getter(name="saml2DigestMethodsUsed")
377
- def saml2_digest_methods_used(self) -> Optional[pulumi.Input[str]]:
378
- return pulumi.get(self, "saml2_digest_methods_used")
379
-
380
- @saml2_digest_methods_used.setter
381
- def saml2_digest_methods_used(self, value: Optional[pulumi.Input[str]]):
382
- pulumi.set(self, "saml2_digest_methods_used", value)
383
-
384
468
  @property
385
469
  @pulumi.getter(name="saml2EnableSpInitiated")
386
- def saml2_enable_sp_initiated(self) -> Optional[pulumi.Input[bool]]:
470
+ def saml2_enable_sp_initiated(self) -> Optional[pulumi.Input[str]]:
387
471
  """
388
- The Boolean indicating if the Log In With button will be shown on the login page. TRUE: displays the Log in WIth button on the login page. FALSE: does not display the Log in With button on the login page.
472
+ The Boolean indicating if the Log In With button will be shown on the login page. TRUE: displays the Log in With button on the login page. FALSE: does not display the Log in With button on the login page. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
389
473
  """
390
474
  return pulumi.get(self, "saml2_enable_sp_initiated")
391
475
 
392
476
  @saml2_enable_sp_initiated.setter
393
- def saml2_enable_sp_initiated(self, value: Optional[pulumi.Input[bool]]):
477
+ def saml2_enable_sp_initiated(self, value: Optional[pulumi.Input[str]]):
394
478
  pulumi.set(self, "saml2_enable_sp_initiated", value)
395
479
 
396
480
  @property
397
481
  @pulumi.getter(name="saml2ForceAuthn")
398
- def saml2_force_authn(self) -> Optional[pulumi.Input[bool]]:
482
+ def saml2_force_authn(self) -> Optional[pulumi.Input[str]]:
399
483
  """
400
- The Boolean indicating whether users, during the initial authentication flow, are forced to authenticate again to access Snowflake. When set to TRUE, Snowflake sets the ForceAuthn SAML parameter to TRUE in the outgoing request from Snowflake to the identity provider. TRUE: forces users to authenticate again to access Snowflake, even if a valid session with the identity provider exists. FALSE: does not force users to authenticate again to access Snowflake.
484
+ The Boolean indicating whether users, during the initial authentication flow, are forced to authenticate again to access Snowflake. When set to TRUE, Snowflake sets the ForceAuthn SAML parameter to TRUE in the outgoing request from Snowflake to the identity provider. TRUE: forces users to authenticate again to access Snowflake, even if a valid session with the identity provider exists. FALSE: does not force users to authenticate again to access Snowflake. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
401
485
  """
402
486
  return pulumi.get(self, "saml2_force_authn")
403
487
 
404
488
  @saml2_force_authn.setter
405
- def saml2_force_authn(self, value: Optional[pulumi.Input[bool]]):
489
+ def saml2_force_authn(self, value: Optional[pulumi.Input[str]]):
406
490
  pulumi.set(self, "saml2_force_authn", value)
407
491
 
408
492
  @property
@@ -433,7 +517,7 @@ class _SamlIntegrationState:
433
517
  @pulumi.getter(name="saml2Provider")
434
518
  def saml2_provider(self) -> Optional[pulumi.Input[str]]:
435
519
  """
436
- The string describing the IdP. One of the following: OKTA, ADFS, Custom.
520
+ The string describing the IdP. Valid options are: `OKTA` | `ADFS` | `CUSTOM`.
437
521
  """
438
522
  return pulumi.get(self, "saml2_provider")
439
523
 
@@ -445,7 +529,7 @@ class _SamlIntegrationState:
445
529
  @pulumi.getter(name="saml2RequestedNameidFormat")
446
530
  def saml2_requested_nameid_format(self) -> Optional[pulumi.Input[str]]:
447
531
  """
448
- The SAML NameID format allows Snowflake to set an expectation of the identifying attribute of the user (i.e. SAML Subject) in the SAML assertion from the IdP to ensure a valid authentication to Snowflake. If a value is not specified, Snowflake sends the urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress value in the authentication request to the IdP. NameID must be one of the following values: urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified, urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress, urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName, urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName, urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos, urn:oasis:names:tc:SAML:2.0:nameid-format:persistent, urn:oasis:names:tc:SAML:2.0:nameid-format:transient .
532
+ The SAML NameID format allows Snowflake to set an expectation of the identifying attribute of the user (i.e. SAML Subject) in the SAML assertion from the IdP to ensure a valid authentication to Snowflake. Valid options are: `urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified` | `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress` | `urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName` | `urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName` | `urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos` | `urn:oasis:names:tc:SAML:2.0:nameid-format:persistent` | `urn:oasis:names:tc:SAML:2.0:nameid-format:transient`.
449
533
  """
450
534
  return pulumi.get(self, "saml2_requested_nameid_format")
451
535
 
@@ -455,30 +539,21 @@ class _SamlIntegrationState:
455
539
 
456
540
  @property
457
541
  @pulumi.getter(name="saml2SignRequest")
458
- def saml2_sign_request(self) -> Optional[pulumi.Input[bool]]:
542
+ def saml2_sign_request(self) -> Optional[pulumi.Input[str]]:
459
543
  """
460
- The Boolean indicating whether SAML requests are signed. TRUE: allows SAML requests to be signed. FALSE: does not allow SAML requests to be signed.
544
+ The Boolean indicating whether SAML requests are signed. TRUE: allows SAML requests to be signed. FALSE: does not allow SAML requests to be signed. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
461
545
  """
462
546
  return pulumi.get(self, "saml2_sign_request")
463
547
 
464
548
  @saml2_sign_request.setter
465
- def saml2_sign_request(self, value: Optional[pulumi.Input[bool]]):
549
+ def saml2_sign_request(self, value: Optional[pulumi.Input[str]]):
466
550
  pulumi.set(self, "saml2_sign_request", value)
467
551
 
468
- @property
469
- @pulumi.getter(name="saml2SignatureMethodsUsed")
470
- def saml2_signature_methods_used(self) -> Optional[pulumi.Input[str]]:
471
- return pulumi.get(self, "saml2_signature_methods_used")
472
-
473
- @saml2_signature_methods_used.setter
474
- def saml2_signature_methods_used(self, value: Optional[pulumi.Input[str]]):
475
- pulumi.set(self, "saml2_signature_methods_used", value)
476
-
477
552
  @property
478
553
  @pulumi.getter(name="saml2SnowflakeAcsUrl")
479
554
  def saml2_snowflake_acs_url(self) -> Optional[pulumi.Input[str]]:
480
555
  """
481
- The string containing the Snowflake Assertion Consumer Service URL to which the IdP will send its SAML authentication response back to Snowflake. This property will be set in the SAML authentication request generated by Snowflake when initiating a SAML SSO operation with the IdP. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use. Default: https://\\n\\n.\\n\\n.snowflakecomputing.com/fed/login
556
+ The string containing the Snowflake Assertion Consumer Service URL to which the IdP will send its SAML authentication response back to Snowflake. This property will be set in the SAML authentication request generated by Snowflake when initiating a SAML SSO operation with the IdP. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use. Because Okta does not support underscores in URLs, the underscore in the account name must be converted to a hyphen. See [docs](https://docs.snowflake.com/en/user-guide/organizations-connect#okta-urls).
482
557
  """
483
558
  return pulumi.get(self, "saml2_snowflake_acs_url")
484
559
 
@@ -490,7 +565,7 @@ class _SamlIntegrationState:
490
565
  @pulumi.getter(name="saml2SnowflakeIssuerUrl")
491
566
  def saml2_snowflake_issuer_url(self) -> Optional[pulumi.Input[str]]:
492
567
  """
493
- The string containing the EntityID / Issuer for the Snowflake service provider. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use.
568
+ The string containing the EntityID / Issuer for the Snowflake service provider. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use. Because Okta does not support underscores in URLs, the underscore in the account name must be converted to a hyphen. See [docs](https://docs.snowflake.com/en/user-guide/organizations-connect#okta-urls).
494
569
  """
495
570
  return pulumi.get(self, "saml2_snowflake_issuer_url")
496
571
 
@@ -498,35 +573,11 @@ class _SamlIntegrationState:
498
573
  def saml2_snowflake_issuer_url(self, value: Optional[pulumi.Input[str]]):
499
574
  pulumi.set(self, "saml2_snowflake_issuer_url", value)
500
575
 
501
- @property
502
- @pulumi.getter(name="saml2SnowflakeMetadata")
503
- def saml2_snowflake_metadata(self) -> Optional[pulumi.Input[str]]:
504
- """
505
- Metadata created by Snowflake to provide to SAML2 provider.
506
- """
507
- return pulumi.get(self, "saml2_snowflake_metadata")
508
-
509
- @saml2_snowflake_metadata.setter
510
- def saml2_snowflake_metadata(self, value: Optional[pulumi.Input[str]]):
511
- pulumi.set(self, "saml2_snowflake_metadata", value)
512
-
513
- @property
514
- @pulumi.getter(name="saml2SnowflakeX509Cert")
515
- def saml2_snowflake_x509_cert(self) -> Optional[pulumi.Input[str]]:
516
- """
517
- The Base64 encoded self-signed certificate generated by Snowflake for use with Encrypting SAML Assertions and Signed SAML Requests. You must have at least one of these features (encrypted SAML assertions or signed SAML responses) enabled in your Snowflake account to access the certificate value.
518
- """
519
- return pulumi.get(self, "saml2_snowflake_x509_cert")
520
-
521
- @saml2_snowflake_x509_cert.setter
522
- def saml2_snowflake_x509_cert(self, value: Optional[pulumi.Input[str]]):
523
- pulumi.set(self, "saml2_snowflake_x509_cert", value)
524
-
525
576
  @property
526
577
  @pulumi.getter(name="saml2SpInitiatedLoginPageLabel")
527
578
  def saml2_sp_initiated_login_page_label(self) -> Optional[pulumi.Input[str]]:
528
579
  """
529
- The string containing the label to display after the Log In With button on the login page.
580
+ The string containing the label to display after the Log In With button on the login page. If this field changes value from non-empty to empty, the whole resource is recreated because of Snowflake limitations.
530
581
  """
531
582
  return pulumi.get(self, "saml2_sp_initiated_login_page_label")
532
583
 
@@ -558,66 +609,66 @@ class _SamlIntegrationState:
558
609
  def saml2_x509_cert(self, value: Optional[pulumi.Input[str]]):
559
610
  pulumi.set(self, "saml2_x509_cert", value)
560
611
 
612
+ @property
613
+ @pulumi.getter(name="showOutputs")
614
+ def show_outputs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['Saml2IntegrationShowOutputArgs']]]]:
615
+ """
616
+ Outputs the result of `SHOW SECURITY INTEGRATION` for the given integration.
617
+ """
618
+ return pulumi.get(self, "show_outputs")
619
+
620
+ @show_outputs.setter
621
+ def show_outputs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Saml2IntegrationShowOutputArgs']]]]):
622
+ pulumi.set(self, "show_outputs", value)
561
623
 
562
- class SamlIntegration(pulumi.CustomResource):
624
+
625
+ class Saml2Integration(pulumi.CustomResource):
563
626
  @overload
564
627
  def __init__(__self__,
565
628
  resource_name: str,
566
629
  opts: Optional[pulumi.ResourceOptions] = None,
567
- enabled: Optional[pulumi.Input[bool]] = None,
630
+ allowed_email_patterns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
631
+ allowed_user_domains: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
632
+ comment: Optional[pulumi.Input[str]] = None,
633
+ enabled: Optional[pulumi.Input[str]] = None,
568
634
  name: Optional[pulumi.Input[str]] = None,
569
- saml2_enable_sp_initiated: Optional[pulumi.Input[bool]] = None,
570
- saml2_force_authn: Optional[pulumi.Input[bool]] = None,
635
+ saml2_enable_sp_initiated: Optional[pulumi.Input[str]] = None,
636
+ saml2_force_authn: Optional[pulumi.Input[str]] = None,
571
637
  saml2_issuer: Optional[pulumi.Input[str]] = None,
572
638
  saml2_post_logout_redirect_url: Optional[pulumi.Input[str]] = None,
573
639
  saml2_provider: Optional[pulumi.Input[str]] = None,
574
640
  saml2_requested_nameid_format: Optional[pulumi.Input[str]] = None,
575
- saml2_sign_request: Optional[pulumi.Input[bool]] = None,
641
+ saml2_sign_request: Optional[pulumi.Input[str]] = None,
576
642
  saml2_snowflake_acs_url: Optional[pulumi.Input[str]] = None,
577
643
  saml2_snowflake_issuer_url: Optional[pulumi.Input[str]] = None,
578
- saml2_snowflake_x509_cert: Optional[pulumi.Input[str]] = None,
579
644
  saml2_sp_initiated_login_page_label: Optional[pulumi.Input[str]] = None,
580
645
  saml2_sso_url: Optional[pulumi.Input[str]] = None,
581
646
  saml2_x509_cert: Optional[pulumi.Input[str]] = None,
582
647
  __props__=None):
583
648
  """
584
- ## Example Usage
585
-
586
- <!--Start PulumiCodeChooser -->
587
- ```python
588
- import pulumi
589
- import pulumi_snowflake as snowflake
590
-
591
- saml_integration = snowflake.SamlIntegration("samlIntegration",
592
- enabled=True,
593
- saml2_issuer="test_issuer",
594
- saml2_provider="CUSTOM",
595
- saml2_sso_url="https://testsamlissuer.com",
596
- saml2_x509_cert="MIICYzCCAcygAwIBAgIBADANBgkqhkiG9w0BAQUFADAuMQswCQYDVQQGEwJVUzEMMAoGA1UEChMDSUJNMREwDwYDVQQLEwhMb2NhbCBDQTAeFw05OTEyMjIwNTAwMDBaFw0wMDEyMjMwNDU5NTlaMC4xCzAJBgNVBAYTAlVTMQwwCgYDVQQKEwNJQk0xETAPBgNVBAsTCExvY2FsIENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD2bZEo7xGaX2/0GHkrNFZvlxBou9v1Jmt/PDiTMPve8r9FeJAQ0QdvFST/0JPQYD20rH0bimdDLgNdNynmyRoS2S/IInfpmf69iyc2G0TPyRvmHIiOZbdCd+YBHQi1adkj17NDcWj6S14tVurFX73zx0sNoMS79q3tuXKrDsxeuwIDAQABo4GQMIGNMEsGCVUdDwGG+EIBDQQ+EzxHZW5lcmF0ZWQgYnkgdGhlIFNlY3VyZVdheSBTZWN1cml0eSBTZXJ2ZXIgZm9yIE9TLzM5MCAoUkFDRikwDgYDVR0PAQH/BAQDAgAGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ3+ocRyCTJw067dLSwr/nalx6YMMA0GCSqGSIb3DQEBBQUAA4GBAMaQzt+zaj1GU77yzlr8iiMBXgdQrwsZZWJo5exnAucJAEYQZmOfyLiMD6oYq+ZnfvM0n8G/Y79q8nhwvuxpYOnRSAXFp6xSkrIOeZtJMY1h00LKp/JX3Ng1svZ2agE126JHsQ0bhzN5TKsYfbwfTwfjdWAGy6Vf1nYi/rO+ryMO")
597
- ```
598
- <!--End PulumiCodeChooser -->
599
-
600
649
  ## Import
601
650
 
602
651
  ```sh
603
- $ pulumi import snowflake:index/samlIntegration:SamlIntegration example name
652
+ $ pulumi import snowflake:index/saml2Integration:Saml2Integration example '"<integration_name>"'
604
653
  ```
605
654
 
606
655
  :param str resource_name: The name of the resource.
607
656
  :param pulumi.ResourceOptions opts: Options for the resource.
608
- :param pulumi.Input[bool] enabled: Specifies whether this security integration is enabled or disabled.
609
- :param pulumi.Input[str] name: Specifies the name of the SAML2 integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account.
610
- :param pulumi.Input[bool] saml2_enable_sp_initiated: The Boolean indicating if the Log In With button will be shown on the login page. TRUE: displays the Log in WIth button on the login page. FALSE: does not display the Log in With button on the login page.
611
- :param pulumi.Input[bool] saml2_force_authn: The Boolean indicating whether users, during the initial authentication flow, are forced to authenticate again to access Snowflake. When set to TRUE, Snowflake sets the ForceAuthn SAML parameter to TRUE in the outgoing request from Snowflake to the identity provider. TRUE: forces users to authenticate again to access Snowflake, even if a valid session with the identity provider exists. FALSE: does not force users to authenticate again to access Snowflake.
657
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_email_patterns: A list of regular expressions that email addresses are matched against to authenticate with a SAML2 security integration. If this field changes value from non-empty to empty, the whole resource is recreated because of Snowflake limitations.
658
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_user_domains: A list of email domains that can authenticate with a SAML2 security integration. If this field changes value from non-empty to empty, the whole resource is recreated because of Snowflake limitations.
659
+ :param pulumi.Input[str] comment: Specifies a comment for the integration.
660
+ :param pulumi.Input[str] enabled: Specifies whether this security integration is enabled or disabled. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
661
+ :param pulumi.Input[str] name: Specifies the name of the SAML2 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: `|`, `.`, `"`.
662
+ :param pulumi.Input[str] saml2_enable_sp_initiated: The Boolean indicating if the Log In With button will be shown on the login page. TRUE: displays the Log in With button on the login page. FALSE: does not display the Log in With button on the login page. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
663
+ :param pulumi.Input[str] saml2_force_authn: The Boolean indicating whether users, during the initial authentication flow, are forced to authenticate again to access Snowflake. When set to TRUE, Snowflake sets the ForceAuthn SAML parameter to TRUE in the outgoing request from Snowflake to the identity provider. TRUE: forces users to authenticate again to access Snowflake, even if a valid session with the identity provider exists. FALSE: does not force users to authenticate again to access Snowflake. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
612
664
  :param pulumi.Input[str] saml2_issuer: The string containing the IdP EntityID / Issuer.
613
665
  :param pulumi.Input[str] saml2_post_logout_redirect_url: The endpoint to which Snowflake redirects users after clicking the Log Out button in the classic Snowflake web interface. Snowflake terminates the Snowflake session upon redirecting to the specified endpoint.
614
- :param pulumi.Input[str] saml2_provider: The string describing the IdP. One of the following: OKTA, ADFS, Custom.
615
- :param pulumi.Input[str] saml2_requested_nameid_format: The SAML NameID format allows Snowflake to set an expectation of the identifying attribute of the user (i.e. SAML Subject) in the SAML assertion from the IdP to ensure a valid authentication to Snowflake. If a value is not specified, Snowflake sends the urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress value in the authentication request to the IdP. NameID must be one of the following values: urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified, urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress, urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName, urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName, urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos, urn:oasis:names:tc:SAML:2.0:nameid-format:persistent, urn:oasis:names:tc:SAML:2.0:nameid-format:transient .
616
- :param pulumi.Input[bool] saml2_sign_request: The Boolean indicating whether SAML requests are signed. TRUE: allows SAML requests to be signed. FALSE: does not allow SAML requests to be signed.
617
- :param pulumi.Input[str] saml2_snowflake_acs_url: The string containing the Snowflake Assertion Consumer Service URL to which the IdP will send its SAML authentication response back to Snowflake. This property will be set in the SAML authentication request generated by Snowflake when initiating a SAML SSO operation with the IdP. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use. Default: https://\\n\\n.\\n\\n.snowflakecomputing.com/fed/login
618
- :param pulumi.Input[str] saml2_snowflake_issuer_url: The string containing the EntityID / Issuer for the Snowflake service provider. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use.
619
- :param pulumi.Input[str] saml2_snowflake_x509_cert: The Base64 encoded self-signed certificate generated by Snowflake for use with Encrypting SAML Assertions and Signed SAML Requests. You must have at least one of these features (encrypted SAML assertions or signed SAML responses) enabled in your Snowflake account to access the certificate value.
620
- :param pulumi.Input[str] saml2_sp_initiated_login_page_label: The string containing the label to display after the Log In With button on the login page.
666
+ :param pulumi.Input[str] saml2_provider: The string describing the IdP. Valid options are: `OKTA` | `ADFS` | `CUSTOM`.
667
+ :param pulumi.Input[str] saml2_requested_nameid_format: The SAML NameID format allows Snowflake to set an expectation of the identifying attribute of the user (i.e. SAML Subject) in the SAML assertion from the IdP to ensure a valid authentication to Snowflake. Valid options are: `urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified` | `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress` | `urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName` | `urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName` | `urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos` | `urn:oasis:names:tc:SAML:2.0:nameid-format:persistent` | `urn:oasis:names:tc:SAML:2.0:nameid-format:transient`.
668
+ :param pulumi.Input[str] saml2_sign_request: The Boolean indicating whether SAML requests are signed. TRUE: allows SAML requests to be signed. FALSE: does not allow SAML requests to be signed. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
669
+ :param pulumi.Input[str] saml2_snowflake_acs_url: The string containing the Snowflake Assertion Consumer Service URL to which the IdP will send its SAML authentication response back to Snowflake. This property will be set in the SAML authentication request generated by Snowflake when initiating a SAML SSO operation with the IdP. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use. Because Okta does not support underscores in URLs, the underscore in the account name must be converted to a hyphen. See [docs](https://docs.snowflake.com/en/user-guide/organizations-connect#okta-urls).
670
+ :param pulumi.Input[str] saml2_snowflake_issuer_url: The string containing the EntityID / Issuer for the Snowflake service provider. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use. Because Okta does not support underscores in URLs, the underscore in the account name must be converted to a hyphen. See [docs](https://docs.snowflake.com/en/user-guide/organizations-connect#okta-urls).
671
+ :param pulumi.Input[str] saml2_sp_initiated_login_page_label: The string containing the label to display after the Log In With button on the login page. If this field changes value from non-empty to empty, the whole resource is recreated because of Snowflake limitations.
621
672
  :param pulumi.Input[str] saml2_sso_url: The string containing the IdP SSO URL, where the user should be redirected by Snowflake (the Service Provider) with a SAML AuthnRequest message.
622
673
  :param pulumi.Input[str] saml2_x509_cert: The Base64 encoded IdP signing certificate on a single line without the leading -----BEGIN CERTIFICATE----- and ending -----END CERTIFICATE----- markers.
623
674
  """
@@ -625,38 +676,22 @@ class SamlIntegration(pulumi.CustomResource):
625
676
  @overload
626
677
  def __init__(__self__,
627
678
  resource_name: str,
628
- args: SamlIntegrationArgs,
679
+ args: Saml2IntegrationArgs,
629
680
  opts: Optional[pulumi.ResourceOptions] = None):
630
681
  """
631
- ## Example Usage
632
-
633
- <!--Start PulumiCodeChooser -->
634
- ```python
635
- import pulumi
636
- import pulumi_snowflake as snowflake
637
-
638
- saml_integration = snowflake.SamlIntegration("samlIntegration",
639
- enabled=True,
640
- saml2_issuer="test_issuer",
641
- saml2_provider="CUSTOM",
642
- saml2_sso_url="https://testsamlissuer.com",
643
- saml2_x509_cert="MIICYzCCAcygAwIBAgIBADANBgkqhkiG9w0BAQUFADAuMQswCQYDVQQGEwJVUzEMMAoGA1UEChMDSUJNMREwDwYDVQQLEwhMb2NhbCBDQTAeFw05OTEyMjIwNTAwMDBaFw0wMDEyMjMwNDU5NTlaMC4xCzAJBgNVBAYTAlVTMQwwCgYDVQQKEwNJQk0xETAPBgNVBAsTCExvY2FsIENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD2bZEo7xGaX2/0GHkrNFZvlxBou9v1Jmt/PDiTMPve8r9FeJAQ0QdvFST/0JPQYD20rH0bimdDLgNdNynmyRoS2S/IInfpmf69iyc2G0TPyRvmHIiOZbdCd+YBHQi1adkj17NDcWj6S14tVurFX73zx0sNoMS79q3tuXKrDsxeuwIDAQABo4GQMIGNMEsGCVUdDwGG+EIBDQQ+EzxHZW5lcmF0ZWQgYnkgdGhlIFNlY3VyZVdheSBTZWN1cml0eSBTZXJ2ZXIgZm9yIE9TLzM5MCAoUkFDRikwDgYDVR0PAQH/BAQDAgAGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ3+ocRyCTJw067dLSwr/nalx6YMMA0GCSqGSIb3DQEBBQUAA4GBAMaQzt+zaj1GU77yzlr8iiMBXgdQrwsZZWJo5exnAucJAEYQZmOfyLiMD6oYq+ZnfvM0n8G/Y79q8nhwvuxpYOnRSAXFp6xSkrIOeZtJMY1h00LKp/JX3Ng1svZ2agE126JHsQ0bhzN5TKsYfbwfTwfjdWAGy6Vf1nYi/rO+ryMO")
644
- ```
645
- <!--End PulumiCodeChooser -->
646
-
647
682
  ## Import
648
683
 
649
684
  ```sh
650
- $ pulumi import snowflake:index/samlIntegration:SamlIntegration example name
685
+ $ pulumi import snowflake:index/saml2Integration:Saml2Integration example '"<integration_name>"'
651
686
  ```
652
687
 
653
688
  :param str resource_name: The name of the resource.
654
- :param SamlIntegrationArgs args: The arguments to use to populate this resource's properties.
689
+ :param Saml2IntegrationArgs args: The arguments to use to populate this resource's properties.
655
690
  :param pulumi.ResourceOptions opts: Options for the resource.
656
691
  """
657
692
  ...
658
693
  def __init__(__self__, resource_name: str, *args, **kwargs):
659
- resource_args, opts = _utilities.get_resource_args_opts(SamlIntegrationArgs, pulumi.ResourceOptions, *args, **kwargs)
694
+ resource_args, opts = _utilities.get_resource_args_opts(Saml2IntegrationArgs, pulumi.ResourceOptions, *args, **kwargs)
660
695
  if resource_args is not None:
661
696
  __self__._internal_init(resource_name, opts, **resource_args.__dict__)
662
697
  else:
@@ -665,18 +700,20 @@ class SamlIntegration(pulumi.CustomResource):
665
700
  def _internal_init(__self__,
666
701
  resource_name: str,
667
702
  opts: Optional[pulumi.ResourceOptions] = None,
668
- enabled: Optional[pulumi.Input[bool]] = None,
703
+ allowed_email_patterns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
704
+ allowed_user_domains: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
705
+ comment: Optional[pulumi.Input[str]] = None,
706
+ enabled: Optional[pulumi.Input[str]] = None,
669
707
  name: Optional[pulumi.Input[str]] = None,
670
- saml2_enable_sp_initiated: Optional[pulumi.Input[bool]] = None,
671
- saml2_force_authn: Optional[pulumi.Input[bool]] = None,
708
+ saml2_enable_sp_initiated: Optional[pulumi.Input[str]] = None,
709
+ saml2_force_authn: Optional[pulumi.Input[str]] = None,
672
710
  saml2_issuer: Optional[pulumi.Input[str]] = None,
673
711
  saml2_post_logout_redirect_url: Optional[pulumi.Input[str]] = None,
674
712
  saml2_provider: Optional[pulumi.Input[str]] = None,
675
713
  saml2_requested_nameid_format: Optional[pulumi.Input[str]] = None,
676
- saml2_sign_request: Optional[pulumi.Input[bool]] = None,
714
+ saml2_sign_request: Optional[pulumi.Input[str]] = None,
677
715
  saml2_snowflake_acs_url: Optional[pulumi.Input[str]] = None,
678
716
  saml2_snowflake_issuer_url: Optional[pulumi.Input[str]] = None,
679
- saml2_snowflake_x509_cert: Optional[pulumi.Input[str]] = None,
680
717
  saml2_sp_initiated_login_page_label: Optional[pulumi.Input[str]] = None,
681
718
  saml2_sso_url: Optional[pulumi.Input[str]] = None,
682
719
  saml2_x509_cert: Optional[pulumi.Input[str]] = None,
@@ -687,8 +724,11 @@ class SamlIntegration(pulumi.CustomResource):
687
724
  if opts.id is None:
688
725
  if __props__ is not None:
689
726
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
690
- __props__ = SamlIntegrationArgs.__new__(SamlIntegrationArgs)
727
+ __props__ = Saml2IntegrationArgs.__new__(Saml2IntegrationArgs)
691
728
 
729
+ __props__.__dict__["allowed_email_patterns"] = allowed_email_patterns
730
+ __props__.__dict__["allowed_user_domains"] = allowed_user_domains
731
+ __props__.__dict__["comment"] = comment
692
732
  __props__.__dict__["enabled"] = enabled
693
733
  __props__.__dict__["name"] = name
694
734
  __props__.__dict__["saml2_enable_sp_initiated"] = saml2_enable_sp_initiated
@@ -704,7 +744,6 @@ class SamlIntegration(pulumi.CustomResource):
704
744
  __props__.__dict__["saml2_sign_request"] = saml2_sign_request
705
745
  __props__.__dict__["saml2_snowflake_acs_url"] = saml2_snowflake_acs_url
706
746
  __props__.__dict__["saml2_snowflake_issuer_url"] = saml2_snowflake_issuer_url
707
- __props__.__dict__["saml2_snowflake_x509_cert"] = saml2_snowflake_x509_cert
708
747
  __props__.__dict__["saml2_sp_initiated_login_page_label"] = saml2_sp_initiated_login_page_label
709
748
  if saml2_sso_url is None and not opts.urn:
710
749
  raise TypeError("Missing required property 'saml2_sso_url'")
@@ -712,12 +751,11 @@ class SamlIntegration(pulumi.CustomResource):
712
751
  if saml2_x509_cert is None and not opts.urn:
713
752
  raise TypeError("Missing required property 'saml2_x509_cert'")
714
753
  __props__.__dict__["saml2_x509_cert"] = saml2_x509_cert
715
- __props__.__dict__["created_on"] = None
716
- __props__.__dict__["saml2_digest_methods_used"] = None
717
- __props__.__dict__["saml2_signature_methods_used"] = None
718
- __props__.__dict__["saml2_snowflake_metadata"] = None
719
- super(SamlIntegration, __self__).__init__(
720
- 'snowflake:index/samlIntegration:SamlIntegration',
754
+ __props__.__dict__["describe_outputs"] = None
755
+ __props__.__dict__["fully_qualified_name"] = None
756
+ __props__.__dict__["show_outputs"] = None
757
+ super(Saml2Integration, __self__).__init__(
758
+ 'snowflake:index/saml2Integration:Saml2Integration',
721
759
  resource_name,
722
760
  __props__,
723
761
  opts)
@@ -726,58 +764,65 @@ class SamlIntegration(pulumi.CustomResource):
726
764
  def get(resource_name: str,
727
765
  id: pulumi.Input[str],
728
766
  opts: Optional[pulumi.ResourceOptions] = None,
729
- created_on: Optional[pulumi.Input[str]] = None,
730
- enabled: Optional[pulumi.Input[bool]] = None,
767
+ allowed_email_patterns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
768
+ allowed_user_domains: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
769
+ comment: Optional[pulumi.Input[str]] = None,
770
+ describe_outputs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['Saml2IntegrationDescribeOutputArgs', 'Saml2IntegrationDescribeOutputArgsDict']]]]] = None,
771
+ enabled: Optional[pulumi.Input[str]] = None,
772
+ fully_qualified_name: Optional[pulumi.Input[str]] = None,
731
773
  name: Optional[pulumi.Input[str]] = None,
732
- saml2_digest_methods_used: Optional[pulumi.Input[str]] = None,
733
- saml2_enable_sp_initiated: Optional[pulumi.Input[bool]] = None,
734
- saml2_force_authn: Optional[pulumi.Input[bool]] = None,
774
+ saml2_enable_sp_initiated: Optional[pulumi.Input[str]] = None,
775
+ saml2_force_authn: Optional[pulumi.Input[str]] = None,
735
776
  saml2_issuer: Optional[pulumi.Input[str]] = None,
736
777
  saml2_post_logout_redirect_url: Optional[pulumi.Input[str]] = None,
737
778
  saml2_provider: Optional[pulumi.Input[str]] = None,
738
779
  saml2_requested_nameid_format: Optional[pulumi.Input[str]] = None,
739
- saml2_sign_request: Optional[pulumi.Input[bool]] = None,
740
- saml2_signature_methods_used: Optional[pulumi.Input[str]] = None,
780
+ saml2_sign_request: Optional[pulumi.Input[str]] = None,
741
781
  saml2_snowflake_acs_url: Optional[pulumi.Input[str]] = None,
742
782
  saml2_snowflake_issuer_url: Optional[pulumi.Input[str]] = None,
743
- saml2_snowflake_metadata: Optional[pulumi.Input[str]] = None,
744
- saml2_snowflake_x509_cert: Optional[pulumi.Input[str]] = None,
745
783
  saml2_sp_initiated_login_page_label: Optional[pulumi.Input[str]] = None,
746
784
  saml2_sso_url: Optional[pulumi.Input[str]] = None,
747
- saml2_x509_cert: Optional[pulumi.Input[str]] = None) -> 'SamlIntegration':
785
+ saml2_x509_cert: Optional[pulumi.Input[str]] = None,
786
+ show_outputs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['Saml2IntegrationShowOutputArgs', 'Saml2IntegrationShowOutputArgsDict']]]]] = None) -> 'Saml2Integration':
748
787
  """
749
- Get an existing SamlIntegration resource's state with the given name, id, and optional extra
788
+ Get an existing Saml2Integration resource's state with the given name, id, and optional extra
750
789
  properties used to qualify the lookup.
751
790
 
752
791
  :param str resource_name: The unique name of the resulting resource.
753
792
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
754
793
  :param pulumi.ResourceOptions opts: Options for the resource.
755
- :param pulumi.Input[str] created_on: Date and time when the SAML integration was created.
756
- :param pulumi.Input[bool] enabled: Specifies whether this security integration is enabled or disabled.
757
- :param pulumi.Input[str] name: Specifies the name of the SAML2 integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account.
758
- :param pulumi.Input[bool] saml2_enable_sp_initiated: The Boolean indicating if the Log In With button will be shown on the login page. TRUE: displays the Log in WIth button on the login page. FALSE: does not display the Log in With button on the login page.
759
- :param pulumi.Input[bool] saml2_force_authn: The Boolean indicating whether users, during the initial authentication flow, are forced to authenticate again to access Snowflake. When set to TRUE, Snowflake sets the ForceAuthn SAML parameter to TRUE in the outgoing request from Snowflake to the identity provider. TRUE: forces users to authenticate again to access Snowflake, even if a valid session with the identity provider exists. FALSE: does not force users to authenticate again to access Snowflake.
794
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_email_patterns: A list of regular expressions that email addresses are matched against to authenticate with a SAML2 security integration. If this field changes value from non-empty to empty, the whole resource is recreated because of Snowflake limitations.
795
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_user_domains: A list of email domains that can authenticate with a SAML2 security integration. If this field changes value from non-empty to empty, the whole resource is recreated because of Snowflake limitations.
796
+ :param pulumi.Input[str] comment: Specifies a comment for the integration.
797
+ :param pulumi.Input[Sequence[pulumi.Input[Union['Saml2IntegrationDescribeOutputArgs', 'Saml2IntegrationDescribeOutputArgsDict']]]] describe_outputs: Outputs the result of `DESCRIBE SECURITY INTEGRATION` for the given integration.
798
+ :param pulumi.Input[str] enabled: Specifies whether this security integration is enabled or disabled. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
799
+ :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).
800
+ :param pulumi.Input[str] name: Specifies the name of the SAML2 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: `|`, `.`, `"`.
801
+ :param pulumi.Input[str] saml2_enable_sp_initiated: The Boolean indicating if the Log In With button will be shown on the login page. TRUE: displays the Log in With button on the login page. FALSE: does not display the Log in With button on the login page. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
802
+ :param pulumi.Input[str] saml2_force_authn: The Boolean indicating whether users, during the initial authentication flow, are forced to authenticate again to access Snowflake. When set to TRUE, Snowflake sets the ForceAuthn SAML parameter to TRUE in the outgoing request from Snowflake to the identity provider. TRUE: forces users to authenticate again to access Snowflake, even if a valid session with the identity provider exists. FALSE: does not force users to authenticate again to access Snowflake. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
760
803
  :param pulumi.Input[str] saml2_issuer: The string containing the IdP EntityID / Issuer.
761
804
  :param pulumi.Input[str] saml2_post_logout_redirect_url: The endpoint to which Snowflake redirects users after clicking the Log Out button in the classic Snowflake web interface. Snowflake terminates the Snowflake session upon redirecting to the specified endpoint.
762
- :param pulumi.Input[str] saml2_provider: The string describing the IdP. One of the following: OKTA, ADFS, Custom.
763
- :param pulumi.Input[str] saml2_requested_nameid_format: The SAML NameID format allows Snowflake to set an expectation of the identifying attribute of the user (i.e. SAML Subject) in the SAML assertion from the IdP to ensure a valid authentication to Snowflake. If a value is not specified, Snowflake sends the urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress value in the authentication request to the IdP. NameID must be one of the following values: urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified, urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress, urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName, urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName, urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos, urn:oasis:names:tc:SAML:2.0:nameid-format:persistent, urn:oasis:names:tc:SAML:2.0:nameid-format:transient .
764
- :param pulumi.Input[bool] saml2_sign_request: The Boolean indicating whether SAML requests are signed. TRUE: allows SAML requests to be signed. FALSE: does not allow SAML requests to be signed.
765
- :param pulumi.Input[str] saml2_snowflake_acs_url: The string containing the Snowflake Assertion Consumer Service URL to which the IdP will send its SAML authentication response back to Snowflake. This property will be set in the SAML authentication request generated by Snowflake when initiating a SAML SSO operation with the IdP. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use. Default: https://\\n\\n.\\n\\n.snowflakecomputing.com/fed/login
766
- :param pulumi.Input[str] saml2_snowflake_issuer_url: The string containing the EntityID / Issuer for the Snowflake service provider. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use.
767
- :param pulumi.Input[str] saml2_snowflake_metadata: Metadata created by Snowflake to provide to SAML2 provider.
768
- :param pulumi.Input[str] saml2_snowflake_x509_cert: The Base64 encoded self-signed certificate generated by Snowflake for use with Encrypting SAML Assertions and Signed SAML Requests. You must have at least one of these features (encrypted SAML assertions or signed SAML responses) enabled in your Snowflake account to access the certificate value.
769
- :param pulumi.Input[str] saml2_sp_initiated_login_page_label: The string containing the label to display after the Log In With button on the login page.
805
+ :param pulumi.Input[str] saml2_provider: The string describing the IdP. Valid options are: `OKTA` | `ADFS` | `CUSTOM`.
806
+ :param pulumi.Input[str] saml2_requested_nameid_format: The SAML NameID format allows Snowflake to set an expectation of the identifying attribute of the user (i.e. SAML Subject) in the SAML assertion from the IdP to ensure a valid authentication to Snowflake. Valid options are: `urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified` | `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress` | `urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName` | `urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName` | `urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos` | `urn:oasis:names:tc:SAML:2.0:nameid-format:persistent` | `urn:oasis:names:tc:SAML:2.0:nameid-format:transient`.
807
+ :param pulumi.Input[str] saml2_sign_request: The Boolean indicating whether SAML requests are signed. TRUE: allows SAML requests to be signed. FALSE: does not allow SAML requests to be signed. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
808
+ :param pulumi.Input[str] saml2_snowflake_acs_url: The string containing the Snowflake Assertion Consumer Service URL to which the IdP will send its SAML authentication response back to Snowflake. This property will be set in the SAML authentication request generated by Snowflake when initiating a SAML SSO operation with the IdP. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use. Because Okta does not support underscores in URLs, the underscore in the account name must be converted to a hyphen. See [docs](https://docs.snowflake.com/en/user-guide/organizations-connect#okta-urls).
809
+ :param pulumi.Input[str] saml2_snowflake_issuer_url: The string containing the EntityID / Issuer for the Snowflake service provider. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use. Because Okta does not support underscores in URLs, the underscore in the account name must be converted to a hyphen. See [docs](https://docs.snowflake.com/en/user-guide/organizations-connect#okta-urls).
810
+ :param pulumi.Input[str] saml2_sp_initiated_login_page_label: The string containing the label to display after the Log In With button on the login page. If this field changes value from non-empty to empty, the whole resource is recreated because of Snowflake limitations.
770
811
  :param pulumi.Input[str] saml2_sso_url: The string containing the IdP SSO URL, where the user should be redirected by Snowflake (the Service Provider) with a SAML AuthnRequest message.
771
812
  :param pulumi.Input[str] saml2_x509_cert: The Base64 encoded IdP signing certificate on a single line without the leading -----BEGIN CERTIFICATE----- and ending -----END CERTIFICATE----- markers.
813
+ :param pulumi.Input[Sequence[pulumi.Input[Union['Saml2IntegrationShowOutputArgs', 'Saml2IntegrationShowOutputArgsDict']]]] show_outputs: Outputs the result of `SHOW SECURITY INTEGRATION` for the given integration.
772
814
  """
773
815
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
774
816
 
775
- __props__ = _SamlIntegrationState.__new__(_SamlIntegrationState)
817
+ __props__ = _Saml2IntegrationState.__new__(_Saml2IntegrationState)
776
818
 
777
- __props__.__dict__["created_on"] = created_on
819
+ __props__.__dict__["allowed_email_patterns"] = allowed_email_patterns
820
+ __props__.__dict__["allowed_user_domains"] = allowed_user_domains
821
+ __props__.__dict__["comment"] = comment
822
+ __props__.__dict__["describe_outputs"] = describe_outputs
778
823
  __props__.__dict__["enabled"] = enabled
824
+ __props__.__dict__["fully_qualified_name"] = fully_qualified_name
779
825
  __props__.__dict__["name"] = name
780
- __props__.__dict__["saml2_digest_methods_used"] = saml2_digest_methods_used
781
826
  __props__.__dict__["saml2_enable_sp_initiated"] = saml2_enable_sp_initiated
782
827
  __props__.__dict__["saml2_force_authn"] = saml2_force_authn
783
828
  __props__.__dict__["saml2_issuer"] = saml2_issuer
@@ -785,58 +830,83 @@ class SamlIntegration(pulumi.CustomResource):
785
830
  __props__.__dict__["saml2_provider"] = saml2_provider
786
831
  __props__.__dict__["saml2_requested_nameid_format"] = saml2_requested_nameid_format
787
832
  __props__.__dict__["saml2_sign_request"] = saml2_sign_request
788
- __props__.__dict__["saml2_signature_methods_used"] = saml2_signature_methods_used
789
833
  __props__.__dict__["saml2_snowflake_acs_url"] = saml2_snowflake_acs_url
790
834
  __props__.__dict__["saml2_snowflake_issuer_url"] = saml2_snowflake_issuer_url
791
- __props__.__dict__["saml2_snowflake_metadata"] = saml2_snowflake_metadata
792
- __props__.__dict__["saml2_snowflake_x509_cert"] = saml2_snowflake_x509_cert
793
835
  __props__.__dict__["saml2_sp_initiated_login_page_label"] = saml2_sp_initiated_login_page_label
794
836
  __props__.__dict__["saml2_sso_url"] = saml2_sso_url
795
837
  __props__.__dict__["saml2_x509_cert"] = saml2_x509_cert
796
- return SamlIntegration(resource_name, opts=opts, __props__=__props__)
838
+ __props__.__dict__["show_outputs"] = show_outputs
839
+ return Saml2Integration(resource_name, opts=opts, __props__=__props__)
797
840
 
798
841
  @property
799
- @pulumi.getter(name="createdOn")
800
- def created_on(self) -> pulumi.Output[str]:
842
+ @pulumi.getter(name="allowedEmailPatterns")
843
+ def allowed_email_patterns(self) -> pulumi.Output[Optional[Sequence[str]]]:
801
844
  """
802
- Date and time when the SAML integration was created.
845
+ A list of regular expressions that email addresses are matched against to authenticate with a SAML2 security integration. If this field changes value from non-empty to empty, the whole resource is recreated because of Snowflake limitations.
803
846
  """
804
- return pulumi.get(self, "created_on")
847
+ return pulumi.get(self, "allowed_email_patterns")
848
+
849
+ @property
850
+ @pulumi.getter(name="allowedUserDomains")
851
+ def allowed_user_domains(self) -> pulumi.Output[Optional[Sequence[str]]]:
852
+ """
853
+ A list of email domains that can authenticate with a SAML2 security integration. If this field changes value from non-empty to empty, the whole resource is recreated because of Snowflake limitations.
854
+ """
855
+ return pulumi.get(self, "allowed_user_domains")
805
856
 
806
857
  @property
807
858
  @pulumi.getter
808
- def enabled(self) -> pulumi.Output[Optional[bool]]:
859
+ def comment(self) -> pulumi.Output[Optional[str]]:
809
860
  """
810
- Specifies whether this security integration is enabled or disabled.
861
+ Specifies a comment for the integration.
862
+ """
863
+ return pulumi.get(self, "comment")
864
+
865
+ @property
866
+ @pulumi.getter(name="describeOutputs")
867
+ def describe_outputs(self) -> pulumi.Output[Sequence['outputs.Saml2IntegrationDescribeOutput']]:
868
+ """
869
+ Outputs the result of `DESCRIBE SECURITY INTEGRATION` for the given integration.
870
+ """
871
+ return pulumi.get(self, "describe_outputs")
872
+
873
+ @property
874
+ @pulumi.getter
875
+ def enabled(self) -> pulumi.Output[Optional[str]]:
876
+ """
877
+ Specifies whether this security integration is enabled or disabled. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
811
878
  """
812
879
  return pulumi.get(self, "enabled")
813
880
 
881
+ @property
882
+ @pulumi.getter(name="fullyQualifiedName")
883
+ def fully_qualified_name(self) -> pulumi.Output[str]:
884
+ """
885
+ Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
886
+ """
887
+ return pulumi.get(self, "fully_qualified_name")
888
+
814
889
  @property
815
890
  @pulumi.getter
816
891
  def name(self) -> pulumi.Output[str]:
817
892
  """
818
- Specifies the name of the SAML2 integration. This name follows the rules for Object Identifiers. The name should be unique among security integrations in your account.
893
+ Specifies the name of the SAML2 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: `|`, `.`, `"`.
819
894
  """
820
895
  return pulumi.get(self, "name")
821
896
 
822
- @property
823
- @pulumi.getter(name="saml2DigestMethodsUsed")
824
- def saml2_digest_methods_used(self) -> pulumi.Output[str]:
825
- return pulumi.get(self, "saml2_digest_methods_used")
826
-
827
897
  @property
828
898
  @pulumi.getter(name="saml2EnableSpInitiated")
829
- def saml2_enable_sp_initiated(self) -> pulumi.Output[Optional[bool]]:
899
+ def saml2_enable_sp_initiated(self) -> pulumi.Output[Optional[str]]:
830
900
  """
831
- The Boolean indicating if the Log In With button will be shown on the login page. TRUE: displays the Log in WIth button on the login page. FALSE: does not display the Log in With button on the login page.
901
+ The Boolean indicating if the Log In With button will be shown on the login page. TRUE: displays the Log in With button on the login page. FALSE: does not display the Log in With button on the login page. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
832
902
  """
833
903
  return pulumi.get(self, "saml2_enable_sp_initiated")
834
904
 
835
905
  @property
836
906
  @pulumi.getter(name="saml2ForceAuthn")
837
- def saml2_force_authn(self) -> pulumi.Output[Optional[bool]]:
907
+ def saml2_force_authn(self) -> pulumi.Output[Optional[str]]:
838
908
  """
839
- The Boolean indicating whether users, during the initial authentication flow, are forced to authenticate again to access Snowflake. When set to TRUE, Snowflake sets the ForceAuthn SAML parameter to TRUE in the outgoing request from Snowflake to the identity provider. TRUE: forces users to authenticate again to access Snowflake, even if a valid session with the identity provider exists. FALSE: does not force users to authenticate again to access Snowflake.
909
+ The Boolean indicating whether users, during the initial authentication flow, are forced to authenticate again to access Snowflake. When set to TRUE, Snowflake sets the ForceAuthn SAML parameter to TRUE in the outgoing request from Snowflake to the identity provider. TRUE: forces users to authenticate again to access Snowflake, even if a valid session with the identity provider exists. FALSE: does not force users to authenticate again to access Snowflake. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
840
910
  """
841
911
  return pulumi.get(self, "saml2_force_authn")
842
912
 
@@ -860,7 +930,7 @@ class SamlIntegration(pulumi.CustomResource):
860
930
  @pulumi.getter(name="saml2Provider")
861
931
  def saml2_provider(self) -> pulumi.Output[str]:
862
932
  """
863
- The string describing the IdP. One of the following: OKTA, ADFS, Custom.
933
+ The string describing the IdP. Valid options are: `OKTA` | `ADFS` | `CUSTOM`.
864
934
  """
865
935
  return pulumi.get(self, "saml2_provider")
866
936
 
@@ -868,60 +938,39 @@ class SamlIntegration(pulumi.CustomResource):
868
938
  @pulumi.getter(name="saml2RequestedNameidFormat")
869
939
  def saml2_requested_nameid_format(self) -> pulumi.Output[Optional[str]]:
870
940
  """
871
- The SAML NameID format allows Snowflake to set an expectation of the identifying attribute of the user (i.e. SAML Subject) in the SAML assertion from the IdP to ensure a valid authentication to Snowflake. If a value is not specified, Snowflake sends the urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress value in the authentication request to the IdP. NameID must be one of the following values: urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified, urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress, urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName, urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName, urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos, urn:oasis:names:tc:SAML:2.0:nameid-format:persistent, urn:oasis:names:tc:SAML:2.0:nameid-format:transient .
941
+ The SAML NameID format allows Snowflake to set an expectation of the identifying attribute of the user (i.e. SAML Subject) in the SAML assertion from the IdP to ensure a valid authentication to Snowflake. Valid options are: `urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified` | `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress` | `urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName` | `urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName` | `urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos` | `urn:oasis:names:tc:SAML:2.0:nameid-format:persistent` | `urn:oasis:names:tc:SAML:2.0:nameid-format:transient`.
872
942
  """
873
943
  return pulumi.get(self, "saml2_requested_nameid_format")
874
944
 
875
945
  @property
876
946
  @pulumi.getter(name="saml2SignRequest")
877
- def saml2_sign_request(self) -> pulumi.Output[Optional[bool]]:
947
+ def saml2_sign_request(self) -> pulumi.Output[Optional[str]]:
878
948
  """
879
- The Boolean indicating whether SAML requests are signed. TRUE: allows SAML requests to be signed. FALSE: does not allow SAML requests to be signed.
949
+ The Boolean indicating whether SAML requests are signed. TRUE: allows SAML requests to be signed. FALSE: does not allow SAML requests to be signed. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
880
950
  """
881
951
  return pulumi.get(self, "saml2_sign_request")
882
952
 
883
- @property
884
- @pulumi.getter(name="saml2SignatureMethodsUsed")
885
- def saml2_signature_methods_used(self) -> pulumi.Output[str]:
886
- return pulumi.get(self, "saml2_signature_methods_used")
887
-
888
953
  @property
889
954
  @pulumi.getter(name="saml2SnowflakeAcsUrl")
890
- def saml2_snowflake_acs_url(self) -> pulumi.Output[str]:
955
+ def saml2_snowflake_acs_url(self) -> pulumi.Output[Optional[str]]:
891
956
  """
892
- The string containing the Snowflake Assertion Consumer Service URL to which the IdP will send its SAML authentication response back to Snowflake. This property will be set in the SAML authentication request generated by Snowflake when initiating a SAML SSO operation with the IdP. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use. Default: https://\\n\\n.\\n\\n.snowflakecomputing.com/fed/login
957
+ The string containing the Snowflake Assertion Consumer Service URL to which the IdP will send its SAML authentication response back to Snowflake. This property will be set in the SAML authentication request generated by Snowflake when initiating a SAML SSO operation with the IdP. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use. Because Okta does not support underscores in URLs, the underscore in the account name must be converted to a hyphen. See [docs](https://docs.snowflake.com/en/user-guide/organizations-connect#okta-urls).
893
958
  """
894
959
  return pulumi.get(self, "saml2_snowflake_acs_url")
895
960
 
896
961
  @property
897
962
  @pulumi.getter(name="saml2SnowflakeIssuerUrl")
898
- def saml2_snowflake_issuer_url(self) -> pulumi.Output[str]:
963
+ def saml2_snowflake_issuer_url(self) -> pulumi.Output[Optional[str]]:
899
964
  """
900
- The string containing the EntityID / Issuer for the Snowflake service provider. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use.
965
+ The string containing the EntityID / Issuer for the Snowflake service provider. If an incorrect value is specified, Snowflake returns an error message indicating the acceptable values to use. Because Okta does not support underscores in URLs, the underscore in the account name must be converted to a hyphen. See [docs](https://docs.snowflake.com/en/user-guide/organizations-connect#okta-urls).
901
966
  """
902
967
  return pulumi.get(self, "saml2_snowflake_issuer_url")
903
968
 
904
- @property
905
- @pulumi.getter(name="saml2SnowflakeMetadata")
906
- def saml2_snowflake_metadata(self) -> pulumi.Output[str]:
907
- """
908
- Metadata created by Snowflake to provide to SAML2 provider.
909
- """
910
- return pulumi.get(self, "saml2_snowflake_metadata")
911
-
912
- @property
913
- @pulumi.getter(name="saml2SnowflakeX509Cert")
914
- def saml2_snowflake_x509_cert(self) -> pulumi.Output[str]:
915
- """
916
- The Base64 encoded self-signed certificate generated by Snowflake for use with Encrypting SAML Assertions and Signed SAML Requests. You must have at least one of these features (encrypted SAML assertions or signed SAML responses) enabled in your Snowflake account to access the certificate value.
917
- """
918
- return pulumi.get(self, "saml2_snowflake_x509_cert")
919
-
920
969
  @property
921
970
  @pulumi.getter(name="saml2SpInitiatedLoginPageLabel")
922
971
  def saml2_sp_initiated_login_page_label(self) -> pulumi.Output[Optional[str]]:
923
972
  """
924
- The string containing the label to display after the Log In With button on the login page.
973
+ The string containing the label to display after the Log In With button on the login page. If this field changes value from non-empty to empty, the whole resource is recreated because of Snowflake limitations.
925
974
  """
926
975
  return pulumi.get(self, "saml2_sp_initiated_login_page_label")
927
976
 
@@ -941,3 +990,11 @@ class SamlIntegration(pulumi.CustomResource):
941
990
  """
942
991
  return pulumi.get(self, "saml2_x509_cert")
943
992
 
993
+ @property
994
+ @pulumi.getter(name="showOutputs")
995
+ def show_outputs(self) -> pulumi.Output[Sequence['outputs.Saml2IntegrationShowOutput']]:
996
+ """
997
+ Outputs the result of `SHOW SECURITY INTEGRATION` for the given integration.
998
+ """
999
+ return pulumi.get(self, "show_outputs")
1000
+