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
@@ -0,0 +1,197 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
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
15
+ from . import _utilities
16
+
17
+ __all__ = ['UserAuthenticationPolicyAttachmentArgs', 'UserAuthenticationPolicyAttachment']
18
+
19
+ @pulumi.input_type
20
+ class UserAuthenticationPolicyAttachmentArgs:
21
+ def __init__(__self__, *,
22
+ authentication_policy_name: pulumi.Input[str],
23
+ user_name: pulumi.Input[str]):
24
+ """
25
+ The set of arguments for constructing a UserAuthenticationPolicyAttachment resource.
26
+ :param pulumi.Input[str] authentication_policy_name: Fully qualified name of the authentication policy
27
+ :param pulumi.Input[str] user_name: User name of the user you want to attach the authentication policy to
28
+ """
29
+ pulumi.set(__self__, "authentication_policy_name", authentication_policy_name)
30
+ pulumi.set(__self__, "user_name", user_name)
31
+
32
+ @property
33
+ @pulumi.getter(name="authenticationPolicyName")
34
+ def authentication_policy_name(self) -> pulumi.Input[str]:
35
+ """
36
+ Fully qualified name of the authentication policy
37
+ """
38
+ return pulumi.get(self, "authentication_policy_name")
39
+
40
+ @authentication_policy_name.setter
41
+ def authentication_policy_name(self, value: pulumi.Input[str]):
42
+ pulumi.set(self, "authentication_policy_name", value)
43
+
44
+ @property
45
+ @pulumi.getter(name="userName")
46
+ def user_name(self) -> pulumi.Input[str]:
47
+ """
48
+ User name of the user you want to attach the authentication policy to
49
+ """
50
+ return pulumi.get(self, "user_name")
51
+
52
+ @user_name.setter
53
+ def user_name(self, value: pulumi.Input[str]):
54
+ pulumi.set(self, "user_name", value)
55
+
56
+
57
+ @pulumi.input_type
58
+ class _UserAuthenticationPolicyAttachmentState:
59
+ def __init__(__self__, *,
60
+ authentication_policy_name: Optional[pulumi.Input[str]] = None,
61
+ user_name: Optional[pulumi.Input[str]] = None):
62
+ """
63
+ Input properties used for looking up and filtering UserAuthenticationPolicyAttachment resources.
64
+ :param pulumi.Input[str] authentication_policy_name: Fully qualified name of the authentication policy
65
+ :param pulumi.Input[str] user_name: User name of the user you want to attach the authentication policy to
66
+ """
67
+ if authentication_policy_name is not None:
68
+ pulumi.set(__self__, "authentication_policy_name", authentication_policy_name)
69
+ if user_name is not None:
70
+ pulumi.set(__self__, "user_name", user_name)
71
+
72
+ @property
73
+ @pulumi.getter(name="authenticationPolicyName")
74
+ def authentication_policy_name(self) -> Optional[pulumi.Input[str]]:
75
+ """
76
+ Fully qualified name of the authentication policy
77
+ """
78
+ return pulumi.get(self, "authentication_policy_name")
79
+
80
+ @authentication_policy_name.setter
81
+ def authentication_policy_name(self, value: Optional[pulumi.Input[str]]):
82
+ pulumi.set(self, "authentication_policy_name", value)
83
+
84
+ @property
85
+ @pulumi.getter(name="userName")
86
+ def user_name(self) -> Optional[pulumi.Input[str]]:
87
+ """
88
+ User name of the user you want to attach the authentication policy to
89
+ """
90
+ return pulumi.get(self, "user_name")
91
+
92
+ @user_name.setter
93
+ def user_name(self, value: Optional[pulumi.Input[str]]):
94
+ pulumi.set(self, "user_name", value)
95
+
96
+
97
+ class UserAuthenticationPolicyAttachment(pulumi.CustomResource):
98
+ @overload
99
+ def __init__(__self__,
100
+ resource_name: str,
101
+ opts: Optional[pulumi.ResourceOptions] = None,
102
+ authentication_policy_name: Optional[pulumi.Input[str]] = None,
103
+ user_name: Optional[pulumi.Input[str]] = None,
104
+ __props__=None):
105
+ """
106
+ Create a UserAuthenticationPolicyAttachment resource with the given unique name, props, and options.
107
+ :param str resource_name: The name of the resource.
108
+ :param pulumi.ResourceOptions opts: Options for the resource.
109
+ :param pulumi.Input[str] authentication_policy_name: Fully qualified name of the authentication policy
110
+ :param pulumi.Input[str] user_name: User name of the user you want to attach the authentication policy to
111
+ """
112
+ ...
113
+ @overload
114
+ def __init__(__self__,
115
+ resource_name: str,
116
+ args: UserAuthenticationPolicyAttachmentArgs,
117
+ opts: Optional[pulumi.ResourceOptions] = None):
118
+ """
119
+ Create a UserAuthenticationPolicyAttachment resource with the given unique name, props, and options.
120
+ :param str resource_name: The name of the resource.
121
+ :param UserAuthenticationPolicyAttachmentArgs args: The arguments to use to populate this resource's properties.
122
+ :param pulumi.ResourceOptions opts: Options for the resource.
123
+ """
124
+ ...
125
+ def __init__(__self__, resource_name: str, *args, **kwargs):
126
+ resource_args, opts = _utilities.get_resource_args_opts(UserAuthenticationPolicyAttachmentArgs, pulumi.ResourceOptions, *args, **kwargs)
127
+ if resource_args is not None:
128
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
129
+ else:
130
+ __self__._internal_init(resource_name, *args, **kwargs)
131
+
132
+ def _internal_init(__self__,
133
+ resource_name: str,
134
+ opts: Optional[pulumi.ResourceOptions] = None,
135
+ authentication_policy_name: Optional[pulumi.Input[str]] = None,
136
+ user_name: Optional[pulumi.Input[str]] = None,
137
+ __props__=None):
138
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
139
+ if not isinstance(opts, pulumi.ResourceOptions):
140
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
141
+ if opts.id is None:
142
+ if __props__ is not None:
143
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
144
+ __props__ = UserAuthenticationPolicyAttachmentArgs.__new__(UserAuthenticationPolicyAttachmentArgs)
145
+
146
+ if authentication_policy_name is None and not opts.urn:
147
+ raise TypeError("Missing required property 'authentication_policy_name'")
148
+ __props__.__dict__["authentication_policy_name"] = authentication_policy_name
149
+ if user_name is None and not opts.urn:
150
+ raise TypeError("Missing required property 'user_name'")
151
+ __props__.__dict__["user_name"] = user_name
152
+ super(UserAuthenticationPolicyAttachment, __self__).__init__(
153
+ 'snowflake:index/userAuthenticationPolicyAttachment:UserAuthenticationPolicyAttachment',
154
+ resource_name,
155
+ __props__,
156
+ opts)
157
+
158
+ @staticmethod
159
+ def get(resource_name: str,
160
+ id: pulumi.Input[str],
161
+ opts: Optional[pulumi.ResourceOptions] = None,
162
+ authentication_policy_name: Optional[pulumi.Input[str]] = None,
163
+ user_name: Optional[pulumi.Input[str]] = None) -> 'UserAuthenticationPolicyAttachment':
164
+ """
165
+ Get an existing UserAuthenticationPolicyAttachment resource's state with the given name, id, and optional extra
166
+ properties used to qualify the lookup.
167
+
168
+ :param str resource_name: The unique name of the resulting resource.
169
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
170
+ :param pulumi.ResourceOptions opts: Options for the resource.
171
+ :param pulumi.Input[str] authentication_policy_name: Fully qualified name of the authentication policy
172
+ :param pulumi.Input[str] user_name: User name of the user you want to attach the authentication policy to
173
+ """
174
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
175
+
176
+ __props__ = _UserAuthenticationPolicyAttachmentState.__new__(_UserAuthenticationPolicyAttachmentState)
177
+
178
+ __props__.__dict__["authentication_policy_name"] = authentication_policy_name
179
+ __props__.__dict__["user_name"] = user_name
180
+ return UserAuthenticationPolicyAttachment(resource_name, opts=opts, __props__=__props__)
181
+
182
+ @property
183
+ @pulumi.getter(name="authenticationPolicyName")
184
+ def authentication_policy_name(self) -> pulumi.Output[str]:
185
+ """
186
+ Fully qualified name of the authentication policy
187
+ """
188
+ return pulumi.get(self, "authentication_policy_name")
189
+
190
+ @property
191
+ @pulumi.getter(name="userName")
192
+ def user_name(self) -> pulumi.Output[str]:
193
+ """
194
+ User name of the user you want to attach the authentication policy to
195
+ """
196
+ return pulumi.get(self, "user_name")
197
+
@@ -4,9 +4,14 @@
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
11
16
 
12
17
  __all__ = ['UserPasswordPolicyAttachmentArgs', 'UserPasswordPolicyAttachment']
@@ -98,12 +103,10 @@ class UserPasswordPolicyAttachment(pulumi.CustomResource):
98
103
  user_name: Optional[pulumi.Input[str]] = None,
99
104
  __props__=None):
100
105
  """
101
- Specifies the password policy to use for a certain user.
102
-
103
106
  ## Import
104
107
 
105
108
  ```sh
106
- $ pulumi import snowflake:index/userPasswordPolicyAttachment:UserPasswordPolicyAttachment example "MY_DATABASE|MY_SCHEMA|PASSWORD_POLICY_NAME|USER_NAME"
109
+ $ pulumi import snowflake:index/userPasswordPolicyAttachment:UserPasswordPolicyAttachment example "MY_DATABASE|MY_SCHEMA|PASSWORD_POLICY_NAME|USER_NAME"
107
110
  ```
108
111
 
109
112
  :param str resource_name: The name of the resource.
@@ -118,12 +121,10 @@ class UserPasswordPolicyAttachment(pulumi.CustomResource):
118
121
  args: UserPasswordPolicyAttachmentArgs,
119
122
  opts: Optional[pulumi.ResourceOptions] = None):
120
123
  """
121
- Specifies the password policy to use for a certain user.
122
-
123
124
  ## Import
124
125
 
125
126
  ```sh
126
- $ pulumi import snowflake:index/userPasswordPolicyAttachment:UserPasswordPolicyAttachment example "MY_DATABASE|MY_SCHEMA|PASSWORD_POLICY_NAME|USER_NAME"
127
+ $ pulumi import snowflake:index/userPasswordPolicyAttachment:UserPasswordPolicyAttachment example "MY_DATABASE|MY_SCHEMA|PASSWORD_POLICY_NAME|USER_NAME"
127
128
  ```
128
129
 
129
130
  :param str resource_name: The name of the resource.
@@ -4,9 +4,14 @@
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
11
16
 
12
17
  __all__ = ['UserPublicKeysArgs', 'UserPublicKeys']