pulumi-snowflake 0.50.2a1709892015__py3-none-any.whl → 1.2.0a1736835738__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (182) hide show
  1. pulumi_snowflake/__init__.py +224 -172
  2. pulumi_snowflake/_inputs.py +52854 -1662
  3. pulumi_snowflake/_utilities.py +41 -5
  4. pulumi_snowflake/account.py +188 -214
  5. pulumi_snowflake/account_authentication_policy_attachment.py +149 -0
  6. pulumi_snowflake/account_parameter.py +21 -44
  7. pulumi_snowflake/account_password_policy_attachment.py +7 -28
  8. pulumi_snowflake/account_role.py +250 -0
  9. pulumi_snowflake/alert.py +38 -43
  10. pulumi_snowflake/api_authentication_integration_with_authorization_code_grant.py +704 -0
  11. pulumi_snowflake/api_authentication_integration_with_client_credentials.py +657 -0
  12. pulumi_snowflake/api_authentication_integration_with_jwt_bearer.py +692 -0
  13. pulumi_snowflake/api_integration.py +35 -50
  14. pulumi_snowflake/authentication_policy.py +622 -0
  15. pulumi_snowflake/config/__init__.pyi +76 -99
  16. pulumi_snowflake/config/outputs.py +5 -0
  17. pulumi_snowflake/config/vars.py +93 -124
  18. pulumi_snowflake/cortex_search_service.py +596 -0
  19. pulumi_snowflake/database.py +819 -209
  20. pulumi_snowflake/database_role.py +81 -40
  21. pulumi_snowflake/dynamic_table.py +44 -47
  22. pulumi_snowflake/email_notification_integration.py +35 -26
  23. pulumi_snowflake/{unsafe_execute.py → execute.py} +36 -139
  24. pulumi_snowflake/external_function.py +54 -71
  25. pulumi_snowflake/external_oauth_integration.py +593 -538
  26. pulumi_snowflake/external_table.py +67 -86
  27. pulumi_snowflake/external_volume.py +382 -0
  28. pulumi_snowflake/failover_group.py +59 -96
  29. pulumi_snowflake/file_format.py +33 -24
  30. pulumi_snowflake/function_java.py +1211 -0
  31. pulumi_snowflake/function_javascript.py +882 -0
  32. pulumi_snowflake/function_python.py +1212 -0
  33. pulumi_snowflake/function_scala.py +1212 -0
  34. pulumi_snowflake/function_sql.py +835 -0
  35. pulumi_snowflake/get_account_roles.py +129 -0
  36. pulumi_snowflake/get_accounts.py +53 -22
  37. pulumi_snowflake/get_alerts.py +22 -5
  38. pulumi_snowflake/get_connections.py +109 -0
  39. pulumi_snowflake/get_cortex_search_services.py +216 -0
  40. pulumi_snowflake/get_current_account.py +24 -9
  41. pulumi_snowflake/get_current_role.py +14 -7
  42. pulumi_snowflake/get_database.py +25 -5
  43. pulumi_snowflake/get_database_role.py +162 -0
  44. pulumi_snowflake/get_database_roles.py +79 -43
  45. pulumi_snowflake/get_databases.py +91 -69
  46. pulumi_snowflake/get_dynamic_tables.py +36 -19
  47. pulumi_snowflake/get_external_functions.py +28 -5
  48. pulumi_snowflake/get_external_tables.py +28 -5
  49. pulumi_snowflake/get_failover_groups.py +18 -7
  50. pulumi_snowflake/get_file_formats.py +28 -5
  51. pulumi_snowflake/get_functions.py +28 -5
  52. pulumi_snowflake/get_grants.py +207 -80
  53. pulumi_snowflake/get_masking_policies.py +91 -47
  54. pulumi_snowflake/get_materialized_views.py +28 -5
  55. pulumi_snowflake/get_network_policies.py +129 -0
  56. pulumi_snowflake/get_parameters.py +38 -11
  57. pulumi_snowflake/get_pipes.py +28 -5
  58. pulumi_snowflake/get_procedures.py +28 -5
  59. pulumi_snowflake/get_resource_monitors.py +37 -20
  60. pulumi_snowflake/get_row_access_policies.py +91 -47
  61. pulumi_snowflake/get_schemas.py +145 -37
  62. pulumi_snowflake/get_secrets.py +200 -0
  63. pulumi_snowflake/get_security_integrations.py +129 -0
  64. pulumi_snowflake/get_sequences.py +28 -5
  65. pulumi_snowflake/get_shares.py +18 -5
  66. pulumi_snowflake/get_stages.py +28 -5
  67. pulumi_snowflake/get_storage_integrations.py +16 -5
  68. pulumi_snowflake/get_streamlits.py +170 -0
  69. pulumi_snowflake/get_streams.py +114 -50
  70. pulumi_snowflake/get_system_generate_scim_access_token.py +18 -5
  71. pulumi_snowflake/get_system_get_aws_sns_iam_policy.py +32 -7
  72. pulumi_snowflake/get_system_get_private_link_config.py +121 -6
  73. pulumi_snowflake/get_system_get_snowflake_platform_info.py +15 -7
  74. pulumi_snowflake/get_tables.py +28 -5
  75. pulumi_snowflake/get_tags.py +130 -0
  76. pulumi_snowflake/get_tasks.py +134 -50
  77. pulumi_snowflake/get_users.py +116 -40
  78. pulumi_snowflake/get_views.py +114 -50
  79. pulumi_snowflake/get_warehouses.py +79 -22
  80. pulumi_snowflake/grant_account_role.py +28 -61
  81. pulumi_snowflake/grant_application_role.py +257 -0
  82. pulumi_snowflake/grant_database_role.py +35 -108
  83. pulumi_snowflake/grant_ownership.py +382 -0
  84. pulumi_snowflake/grant_privileges_to_account_role.py +42 -78
  85. pulumi_snowflake/grant_privileges_to_database_role.py +37 -223
  86. pulumi_snowflake/grant_privileges_to_share.py +96 -44
  87. pulumi_snowflake/legacy_service_user.py +3670 -0
  88. pulumi_snowflake/managed_account.py +42 -9
  89. pulumi_snowflake/masking_policy.py +213 -306
  90. pulumi_snowflake/materialized_view.py +62 -67
  91. pulumi_snowflake/network_policy.py +217 -57
  92. pulumi_snowflake/network_policy_attachment.py +7 -32
  93. pulumi_snowflake/network_rule.py +473 -0
  94. pulumi_snowflake/notification_integration.py +51 -82
  95. pulumi_snowflake/oauth_integration_for_custom_clients.py +906 -0
  96. pulumi_snowflake/{oauth_integration.py → oauth_integration_for_partner_applications.py} +191 -188
  97. pulumi_snowflake/object_parameter.py +12 -99
  98. pulumi_snowflake/outputs.py +49200 -2928
  99. pulumi_snowflake/password_policy.py +41 -28
  100. pulumi_snowflake/pipe.py +33 -0
  101. pulumi_snowflake/primary_connection.py +330 -0
  102. pulumi_snowflake/procedure_java.py +1273 -0
  103. pulumi_snowflake/procedure_javascript.py +895 -0
  104. pulumi_snowflake/procedure_python.py +1226 -0
  105. pulumi_snowflake/procedure_scala.py +1273 -0
  106. pulumi_snowflake/procedure_sql.py +895 -0
  107. pulumi_snowflake/provider.py +378 -613
  108. pulumi_snowflake/pulumi-plugin.json +2 -1
  109. pulumi_snowflake/resource_monitor.py +118 -323
  110. pulumi_snowflake/row_access_policy.py +200 -145
  111. pulumi_snowflake/{saml_integration.py → saml2_integration.py} +356 -295
  112. pulumi_snowflake/schema.py +949 -174
  113. pulumi_snowflake/scim_integration.py +286 -105
  114. pulumi_snowflake/secondary_connection.py +339 -0
  115. pulumi_snowflake/secondary_database.py +1080 -0
  116. pulumi_snowflake/secret_with_authorization_code_grant.py +548 -0
  117. pulumi_snowflake/secret_with_basic_authentication.py +500 -0
  118. pulumi_snowflake/secret_with_client_credentials.py +511 -0
  119. pulumi_snowflake/secret_with_generic_string.py +452 -0
  120. pulumi_snowflake/sequence.py +9 -30
  121. pulumi_snowflake/service_user.py +3585 -0
  122. pulumi_snowflake/share.py +35 -26
  123. pulumi_snowflake/shared_database.py +939 -0
  124. pulumi_snowflake/stage.py +95 -80
  125. pulumi_snowflake/storage_integration.py +48 -2
  126. pulumi_snowflake/stream_on_directory_table.py +517 -0
  127. pulumi_snowflake/stream_on_external_table.py +632 -0
  128. pulumi_snowflake/stream_on_table.py +666 -0
  129. pulumi_snowflake/stream_on_view.py +666 -0
  130. pulumi_snowflake/streamlit.py +671 -0
  131. pulumi_snowflake/table.py +86 -93
  132. pulumi_snowflake/table_column_masking_policy_application.py +7 -14
  133. pulumi_snowflake/table_constraint.py +29 -168
  134. pulumi_snowflake/tag.py +142 -70
  135. pulumi_snowflake/tag_association.py +40 -211
  136. pulumi_snowflake/task.py +3048 -414
  137. pulumi_snowflake/user.py +3351 -380
  138. pulumi_snowflake/user_authentication_policy_attachment.py +197 -0
  139. pulumi_snowflake/user_password_policy_attachment.py +7 -6
  140. pulumi_snowflake/user_public_keys.py +5 -0
  141. pulumi_snowflake/view.py +466 -211
  142. pulumi_snowflake/warehouse.py +184 -164
  143. {pulumi_snowflake-0.50.2a1709892015.dist-info → pulumi_snowflake-1.2.0a1736835738.dist-info}/METADATA +7 -6
  144. pulumi_snowflake-1.2.0a1736835738.dist-info/RECORD +148 -0
  145. {pulumi_snowflake-0.50.2a1709892015.dist-info → pulumi_snowflake-1.2.0a1736835738.dist-info}/WHEEL +1 -1
  146. pulumi_snowflake/account_grant.py +0 -339
  147. pulumi_snowflake/database_grant.py +0 -491
  148. pulumi_snowflake/external_table_grant.py +0 -686
  149. pulumi_snowflake/failover_group_grant.py +0 -388
  150. pulumi_snowflake/file_format_grant.py +0 -631
  151. pulumi_snowflake/function.py +0 -868
  152. pulumi_snowflake/function_grant.py +0 -741
  153. pulumi_snowflake/get_role.py +0 -117
  154. pulumi_snowflake/get_roles.py +0 -116
  155. pulumi_snowflake/grant_privileges_to_role.py +0 -667
  156. pulumi_snowflake/integration_grant.py +0 -436
  157. pulumi_snowflake/masking_policy_grant.py +0 -538
  158. pulumi_snowflake/materialized_view_grant.py +0 -685
  159. pulumi_snowflake/pipe_grant.py +0 -583
  160. pulumi_snowflake/procedure.py +0 -883
  161. pulumi_snowflake/procedure_grant.py +0 -741
  162. pulumi_snowflake/resource_monitor_grant.py +0 -383
  163. pulumi_snowflake/role.py +0 -269
  164. pulumi_snowflake/role_grants.py +0 -348
  165. pulumi_snowflake/role_ownership_grant.py +0 -334
  166. pulumi_snowflake/row_access_policy_grant.py +0 -536
  167. pulumi_snowflake/schema_grant.py +0 -643
  168. pulumi_snowflake/sequence_grant.py +0 -631
  169. pulumi_snowflake/session_parameter.py +0 -328
  170. pulumi_snowflake/stage_grant.py +0 -631
  171. pulumi_snowflake/stream.py +0 -610
  172. pulumi_snowflake/stream_grant.py +0 -631
  173. pulumi_snowflake/table_grant.py +0 -673
  174. pulumi_snowflake/tag_grant.py +0 -528
  175. pulumi_snowflake/tag_masking_policy_association.py +0 -210
  176. pulumi_snowflake/task_grant.py +0 -631
  177. pulumi_snowflake/user_grant.py +0 -390
  178. pulumi_snowflake/user_ownership_grant.py +0 -286
  179. pulumi_snowflake/view_grant.py +0 -701
  180. pulumi_snowflake/warehouse_grant.py +0 -436
  181. pulumi_snowflake-0.50.2a1709892015.dist-info/RECORD +0 -136
  182. {pulumi_snowflake-0.50.2a1709892015.dist-info → pulumi_snowflake-1.2.0a1736835738.dist-info}/top_level.txt +0 -0
@@ -4,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,64 +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
- ```python
587
- import pulumi
588
- import pulumi_snowflake as snowflake
589
-
590
- saml_integration = snowflake.SamlIntegration("samlIntegration",
591
- enabled=True,
592
- saml2_issuer="test_issuer",
593
- saml2_provider="CUSTOM",
594
- saml2_sso_url="https://testsamlissuer.com",
595
- saml2_x509_cert="MIICYzCCAcygAwIBAgIBADANBgkqhkiG9w0BAQUFADAuMQswCQYDVQQGEwJVUzEMMAoGA1UEChMDSUJNMREwDwYDVQQLEwhMb2NhbCBDQTAeFw05OTEyMjIwNTAwMDBaFw0wMDEyMjMwNDU5NTlaMC4xCzAJBgNVBAYTAlVTMQwwCgYDVQQKEwNJQk0xETAPBgNVBAsTCExvY2FsIENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD2bZEo7xGaX2/0GHkrNFZvlxBou9v1Jmt/PDiTMPve8r9FeJAQ0QdvFST/0JPQYD20rH0bimdDLgNdNynmyRoS2S/IInfpmf69iyc2G0TPyRvmHIiOZbdCd+YBHQi1adkj17NDcWj6S14tVurFX73zx0sNoMS79q3tuXKrDsxeuwIDAQABo4GQMIGNMEsGCVUdDwGG+EIBDQQ+EzxHZW5lcmF0ZWQgYnkgdGhlIFNlY3VyZVdheSBTZWN1cml0eSBTZXJ2ZXIgZm9yIE9TLzM5MCAoUkFDRikwDgYDVR0PAQH/BAQDAgAGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ3+ocRyCTJw067dLSwr/nalx6YMMA0GCSqGSIb3DQEBBQUAA4GBAMaQzt+zaj1GU77yzlr8iiMBXgdQrwsZZWJo5exnAucJAEYQZmOfyLiMD6oYq+ZnfvM0n8G/Y79q8nhwvuxpYOnRSAXFp6xSkrIOeZtJMY1h00LKp/JX3Ng1svZ2agE126JHsQ0bhzN5TKsYfbwfTwfjdWAGy6Vf1nYi/rO+ryMO")
596
- ```
597
-
598
649
  ## Import
599
650
 
600
651
  ```sh
601
- $ pulumi import snowflake:index/samlIntegration:SamlIntegration example name
652
+ $ pulumi import snowflake:index/saml2Integration:Saml2Integration example '"<integration_name>"'
602
653
  ```
603
654
 
604
655
  :param str resource_name: The name of the resource.
605
656
  :param pulumi.ResourceOptions opts: Options for the resource.
606
- :param pulumi.Input[bool] enabled: Specifies whether this security integration is enabled or disabled.
607
- :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.
608
- :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.
609
- :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.
610
664
  :param pulumi.Input[str] saml2_issuer: The string containing the IdP EntityID / Issuer.
611
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.
612
- :param pulumi.Input[str] saml2_provider: The string describing the IdP. One of the following: OKTA, ADFS, Custom.
613
- :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 .
614
- :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.
615
- :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
616
- :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.
617
- :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.
618
- :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.
619
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.
620
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.
621
674
  """
@@ -623,36 +676,22 @@ class SamlIntegration(pulumi.CustomResource):
623
676
  @overload
624
677
  def __init__(__self__,
625
678
  resource_name: str,
626
- args: SamlIntegrationArgs,
679
+ args: Saml2IntegrationArgs,
627
680
  opts: Optional[pulumi.ResourceOptions] = None):
628
681
  """
629
- ## Example Usage
630
-
631
- ```python
632
- import pulumi
633
- import pulumi_snowflake as snowflake
634
-
635
- saml_integration = snowflake.SamlIntegration("samlIntegration",
636
- enabled=True,
637
- saml2_issuer="test_issuer",
638
- saml2_provider="CUSTOM",
639
- saml2_sso_url="https://testsamlissuer.com",
640
- saml2_x509_cert="MIICYzCCAcygAwIBAgIBADANBgkqhkiG9w0BAQUFADAuMQswCQYDVQQGEwJVUzEMMAoGA1UEChMDSUJNMREwDwYDVQQLEwhMb2NhbCBDQTAeFw05OTEyMjIwNTAwMDBaFw0wMDEyMjMwNDU5NTlaMC4xCzAJBgNVBAYTAlVTMQwwCgYDVQQKEwNJQk0xETAPBgNVBAsTCExvY2FsIENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD2bZEo7xGaX2/0GHkrNFZvlxBou9v1Jmt/PDiTMPve8r9FeJAQ0QdvFST/0JPQYD20rH0bimdDLgNdNynmyRoS2S/IInfpmf69iyc2G0TPyRvmHIiOZbdCd+YBHQi1adkj17NDcWj6S14tVurFX73zx0sNoMS79q3tuXKrDsxeuwIDAQABo4GQMIGNMEsGCVUdDwGG+EIBDQQ+EzxHZW5lcmF0ZWQgYnkgdGhlIFNlY3VyZVdheSBTZWN1cml0eSBTZXJ2ZXIgZm9yIE9TLzM5MCAoUkFDRikwDgYDVR0PAQH/BAQDAgAGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ3+ocRyCTJw067dLSwr/nalx6YMMA0GCSqGSIb3DQEBBQUAA4GBAMaQzt+zaj1GU77yzlr8iiMBXgdQrwsZZWJo5exnAucJAEYQZmOfyLiMD6oYq+ZnfvM0n8G/Y79q8nhwvuxpYOnRSAXFp6xSkrIOeZtJMY1h00LKp/JX3Ng1svZ2agE126JHsQ0bhzN5TKsYfbwfTwfjdWAGy6Vf1nYi/rO+ryMO")
641
- ```
642
-
643
682
  ## Import
644
683
 
645
684
  ```sh
646
- $ pulumi import snowflake:index/samlIntegration:SamlIntegration example name
685
+ $ pulumi import snowflake:index/saml2Integration:Saml2Integration example '"<integration_name>"'
647
686
  ```
648
687
 
649
688
  :param str resource_name: The name of the resource.
650
- :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.
651
690
  :param pulumi.ResourceOptions opts: Options for the resource.
652
691
  """
653
692
  ...
654
693
  def __init__(__self__, resource_name: str, *args, **kwargs):
655
- 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)
656
695
  if resource_args is not None:
657
696
  __self__._internal_init(resource_name, opts, **resource_args.__dict__)
658
697
  else:
@@ -661,18 +700,20 @@ class SamlIntegration(pulumi.CustomResource):
661
700
  def _internal_init(__self__,
662
701
  resource_name: str,
663
702
  opts: Optional[pulumi.ResourceOptions] = None,
664
- 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,
665
707
  name: Optional[pulumi.Input[str]] = None,
666
- saml2_enable_sp_initiated: Optional[pulumi.Input[bool]] = None,
667
- 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,
668
710
  saml2_issuer: Optional[pulumi.Input[str]] = None,
669
711
  saml2_post_logout_redirect_url: Optional[pulumi.Input[str]] = None,
670
712
  saml2_provider: Optional[pulumi.Input[str]] = None,
671
713
  saml2_requested_nameid_format: Optional[pulumi.Input[str]] = None,
672
- saml2_sign_request: Optional[pulumi.Input[bool]] = None,
714
+ saml2_sign_request: Optional[pulumi.Input[str]] = None,
673
715
  saml2_snowflake_acs_url: Optional[pulumi.Input[str]] = None,
674
716
  saml2_snowflake_issuer_url: Optional[pulumi.Input[str]] = None,
675
- saml2_snowflake_x509_cert: Optional[pulumi.Input[str]] = None,
676
717
  saml2_sp_initiated_login_page_label: Optional[pulumi.Input[str]] = None,
677
718
  saml2_sso_url: Optional[pulumi.Input[str]] = None,
678
719
  saml2_x509_cert: Optional[pulumi.Input[str]] = None,
@@ -683,8 +724,11 @@ class SamlIntegration(pulumi.CustomResource):
683
724
  if opts.id is None:
684
725
  if __props__ is not None:
685
726
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
686
- __props__ = SamlIntegrationArgs.__new__(SamlIntegrationArgs)
727
+ __props__ = Saml2IntegrationArgs.__new__(Saml2IntegrationArgs)
687
728
 
729
+ __props__.__dict__["allowed_email_patterns"] = allowed_email_patterns
730
+ __props__.__dict__["allowed_user_domains"] = allowed_user_domains
731
+ __props__.__dict__["comment"] = comment
688
732
  __props__.__dict__["enabled"] = enabled
689
733
  __props__.__dict__["name"] = name
690
734
  __props__.__dict__["saml2_enable_sp_initiated"] = saml2_enable_sp_initiated
@@ -700,7 +744,6 @@ class SamlIntegration(pulumi.CustomResource):
700
744
  __props__.__dict__["saml2_sign_request"] = saml2_sign_request
701
745
  __props__.__dict__["saml2_snowflake_acs_url"] = saml2_snowflake_acs_url
702
746
  __props__.__dict__["saml2_snowflake_issuer_url"] = saml2_snowflake_issuer_url
703
- __props__.__dict__["saml2_snowflake_x509_cert"] = saml2_snowflake_x509_cert
704
747
  __props__.__dict__["saml2_sp_initiated_login_page_label"] = saml2_sp_initiated_login_page_label
705
748
  if saml2_sso_url is None and not opts.urn:
706
749
  raise TypeError("Missing required property 'saml2_sso_url'")
@@ -708,12 +751,11 @@ class SamlIntegration(pulumi.CustomResource):
708
751
  if saml2_x509_cert is None and not opts.urn:
709
752
  raise TypeError("Missing required property 'saml2_x509_cert'")
710
753
  __props__.__dict__["saml2_x509_cert"] = saml2_x509_cert
711
- __props__.__dict__["created_on"] = None
712
- __props__.__dict__["saml2_digest_methods_used"] = None
713
- __props__.__dict__["saml2_signature_methods_used"] = None
714
- __props__.__dict__["saml2_snowflake_metadata"] = None
715
- super(SamlIntegration, __self__).__init__(
716
- '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',
717
759
  resource_name,
718
760
  __props__,
719
761
  opts)
@@ -722,58 +764,65 @@ class SamlIntegration(pulumi.CustomResource):
722
764
  def get(resource_name: str,
723
765
  id: pulumi.Input[str],
724
766
  opts: Optional[pulumi.ResourceOptions] = None,
725
- created_on: Optional[pulumi.Input[str]] = None,
726
- 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,
727
773
  name: Optional[pulumi.Input[str]] = None,
728
- saml2_digest_methods_used: Optional[pulumi.Input[str]] = None,
729
- saml2_enable_sp_initiated: Optional[pulumi.Input[bool]] = None,
730
- 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,
731
776
  saml2_issuer: Optional[pulumi.Input[str]] = None,
732
777
  saml2_post_logout_redirect_url: Optional[pulumi.Input[str]] = None,
733
778
  saml2_provider: Optional[pulumi.Input[str]] = None,
734
779
  saml2_requested_nameid_format: Optional[pulumi.Input[str]] = None,
735
- saml2_sign_request: Optional[pulumi.Input[bool]] = None,
736
- saml2_signature_methods_used: Optional[pulumi.Input[str]] = None,
780
+ saml2_sign_request: Optional[pulumi.Input[str]] = None,
737
781
  saml2_snowflake_acs_url: Optional[pulumi.Input[str]] = None,
738
782
  saml2_snowflake_issuer_url: Optional[pulumi.Input[str]] = None,
739
- saml2_snowflake_metadata: Optional[pulumi.Input[str]] = None,
740
- saml2_snowflake_x509_cert: Optional[pulumi.Input[str]] = None,
741
783
  saml2_sp_initiated_login_page_label: Optional[pulumi.Input[str]] = None,
742
784
  saml2_sso_url: Optional[pulumi.Input[str]] = None,
743
- 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':
744
787
  """
745
- 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
746
789
  properties used to qualify the lookup.
747
790
 
748
791
  :param str resource_name: The unique name of the resulting resource.
749
792
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
750
793
  :param pulumi.ResourceOptions opts: Options for the resource.
751
- :param pulumi.Input[str] created_on: Date and time when the SAML integration was created.
752
- :param pulumi.Input[bool] enabled: Specifies whether this security integration is enabled or disabled.
753
- :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.
754
- :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.
755
- :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.
756
803
  :param pulumi.Input[str] saml2_issuer: The string containing the IdP EntityID / Issuer.
757
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.
758
- :param pulumi.Input[str] saml2_provider: The string describing the IdP. One of the following: OKTA, ADFS, Custom.
759
- :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 .
760
- :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.
761
- :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
762
- :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.
763
- :param pulumi.Input[str] saml2_snowflake_metadata: Metadata created by Snowflake to provide to SAML2 provider.
764
- :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.
765
- :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.
766
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.
767
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.
768
814
  """
769
815
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
770
816
 
771
- __props__ = _SamlIntegrationState.__new__(_SamlIntegrationState)
817
+ __props__ = _Saml2IntegrationState.__new__(_Saml2IntegrationState)
772
818
 
773
- __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
774
823
  __props__.__dict__["enabled"] = enabled
824
+ __props__.__dict__["fully_qualified_name"] = fully_qualified_name
775
825
  __props__.__dict__["name"] = name
776
- __props__.__dict__["saml2_digest_methods_used"] = saml2_digest_methods_used
777
826
  __props__.__dict__["saml2_enable_sp_initiated"] = saml2_enable_sp_initiated
778
827
  __props__.__dict__["saml2_force_authn"] = saml2_force_authn
779
828
  __props__.__dict__["saml2_issuer"] = saml2_issuer
@@ -781,58 +830,83 @@ class SamlIntegration(pulumi.CustomResource):
781
830
  __props__.__dict__["saml2_provider"] = saml2_provider
782
831
  __props__.__dict__["saml2_requested_nameid_format"] = saml2_requested_nameid_format
783
832
  __props__.__dict__["saml2_sign_request"] = saml2_sign_request
784
- __props__.__dict__["saml2_signature_methods_used"] = saml2_signature_methods_used
785
833
  __props__.__dict__["saml2_snowflake_acs_url"] = saml2_snowflake_acs_url
786
834
  __props__.__dict__["saml2_snowflake_issuer_url"] = saml2_snowflake_issuer_url
787
- __props__.__dict__["saml2_snowflake_metadata"] = saml2_snowflake_metadata
788
- __props__.__dict__["saml2_snowflake_x509_cert"] = saml2_snowflake_x509_cert
789
835
  __props__.__dict__["saml2_sp_initiated_login_page_label"] = saml2_sp_initiated_login_page_label
790
836
  __props__.__dict__["saml2_sso_url"] = saml2_sso_url
791
837
  __props__.__dict__["saml2_x509_cert"] = saml2_x509_cert
792
- return SamlIntegration(resource_name, opts=opts, __props__=__props__)
838
+ __props__.__dict__["show_outputs"] = show_outputs
839
+ return Saml2Integration(resource_name, opts=opts, __props__=__props__)
793
840
 
794
841
  @property
795
- @pulumi.getter(name="createdOn")
796
- def created_on(self) -> pulumi.Output[str]:
842
+ @pulumi.getter(name="allowedEmailPatterns")
843
+ def allowed_email_patterns(self) -> pulumi.Output[Optional[Sequence[str]]]:
797
844
  """
798
- 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.
799
846
  """
800
- 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")
801
856
 
802
857
  @property
803
858
  @pulumi.getter
804
- def enabled(self) -> pulumi.Output[Optional[bool]]:
859
+ def comment(self) -> pulumi.Output[Optional[str]]:
805
860
  """
806
- 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.
807
878
  """
808
879
  return pulumi.get(self, "enabled")
809
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
+
810
889
  @property
811
890
  @pulumi.getter
812
891
  def name(self) -> pulumi.Output[str]:
813
892
  """
814
- 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: `|`, `.`, `"`.
815
894
  """
816
895
  return pulumi.get(self, "name")
817
896
 
818
- @property
819
- @pulumi.getter(name="saml2DigestMethodsUsed")
820
- def saml2_digest_methods_used(self) -> pulumi.Output[str]:
821
- return pulumi.get(self, "saml2_digest_methods_used")
822
-
823
897
  @property
824
898
  @pulumi.getter(name="saml2EnableSpInitiated")
825
- def saml2_enable_sp_initiated(self) -> pulumi.Output[Optional[bool]]:
899
+ def saml2_enable_sp_initiated(self) -> pulumi.Output[Optional[str]]:
826
900
  """
827
- 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.
828
902
  """
829
903
  return pulumi.get(self, "saml2_enable_sp_initiated")
830
904
 
831
905
  @property
832
906
  @pulumi.getter(name="saml2ForceAuthn")
833
- def saml2_force_authn(self) -> pulumi.Output[Optional[bool]]:
907
+ def saml2_force_authn(self) -> pulumi.Output[Optional[str]]:
834
908
  """
835
- 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.
836
910
  """
837
911
  return pulumi.get(self, "saml2_force_authn")
838
912
 
@@ -856,7 +930,7 @@ class SamlIntegration(pulumi.CustomResource):
856
930
  @pulumi.getter(name="saml2Provider")
857
931
  def saml2_provider(self) -> pulumi.Output[str]:
858
932
  """
859
- The string describing the IdP. One of the following: OKTA, ADFS, Custom.
933
+ The string describing the IdP. Valid options are: `OKTA` | `ADFS` | `CUSTOM`.
860
934
  """
861
935
  return pulumi.get(self, "saml2_provider")
862
936
 
@@ -864,60 +938,39 @@ class SamlIntegration(pulumi.CustomResource):
864
938
  @pulumi.getter(name="saml2RequestedNameidFormat")
865
939
  def saml2_requested_nameid_format(self) -> pulumi.Output[Optional[str]]:
866
940
  """
867
- 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`.
868
942
  """
869
943
  return pulumi.get(self, "saml2_requested_nameid_format")
870
944
 
871
945
  @property
872
946
  @pulumi.getter(name="saml2SignRequest")
873
- def saml2_sign_request(self) -> pulumi.Output[Optional[bool]]:
947
+ def saml2_sign_request(self) -> pulumi.Output[Optional[str]]:
874
948
  """
875
- 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.
876
950
  """
877
951
  return pulumi.get(self, "saml2_sign_request")
878
952
 
879
- @property
880
- @pulumi.getter(name="saml2SignatureMethodsUsed")
881
- def saml2_signature_methods_used(self) -> pulumi.Output[str]:
882
- return pulumi.get(self, "saml2_signature_methods_used")
883
-
884
953
  @property
885
954
  @pulumi.getter(name="saml2SnowflakeAcsUrl")
886
- def saml2_snowflake_acs_url(self) -> pulumi.Output[str]:
955
+ def saml2_snowflake_acs_url(self) -> pulumi.Output[Optional[str]]:
887
956
  """
888
- 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).
889
958
  """
890
959
  return pulumi.get(self, "saml2_snowflake_acs_url")
891
960
 
892
961
  @property
893
962
  @pulumi.getter(name="saml2SnowflakeIssuerUrl")
894
- def saml2_snowflake_issuer_url(self) -> pulumi.Output[str]:
963
+ def saml2_snowflake_issuer_url(self) -> pulumi.Output[Optional[str]]:
895
964
  """
896
- 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).
897
966
  """
898
967
  return pulumi.get(self, "saml2_snowflake_issuer_url")
899
968
 
900
- @property
901
- @pulumi.getter(name="saml2SnowflakeMetadata")
902
- def saml2_snowflake_metadata(self) -> pulumi.Output[str]:
903
- """
904
- Metadata created by Snowflake to provide to SAML2 provider.
905
- """
906
- return pulumi.get(self, "saml2_snowflake_metadata")
907
-
908
- @property
909
- @pulumi.getter(name="saml2SnowflakeX509Cert")
910
- def saml2_snowflake_x509_cert(self) -> pulumi.Output[str]:
911
- """
912
- 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.
913
- """
914
- return pulumi.get(self, "saml2_snowflake_x509_cert")
915
-
916
969
  @property
917
970
  @pulumi.getter(name="saml2SpInitiatedLoginPageLabel")
918
971
  def saml2_sp_initiated_login_page_label(self) -> pulumi.Output[Optional[str]]:
919
972
  """
920
- 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.
921
974
  """
922
975
  return pulumi.get(self, "saml2_sp_initiated_login_page_label")
923
976
 
@@ -937,3 +990,11 @@ class SamlIntegration(pulumi.CustomResource):
937
990
  """
938
991
  return pulumi.get(self, "saml2_x509_cert")
939
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
+