pulumi-gitlab 9.3.0a1759182301__py3-none-any.whl → 9.8.1__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.
Files changed (121) hide show
  1. pulumi_gitlab/__init__.py +107 -0
  2. pulumi_gitlab/_inputs.py +795 -0
  3. pulumi_gitlab/application_settings.py +16 -7
  4. pulumi_gitlab/branch.py +1 -1
  5. pulumi_gitlab/cluster_agent_token.py +1 -1
  6. pulumi_gitlab/config/__init__.pyi +15 -0
  7. pulumi_gitlab/config/vars.py +21 -0
  8. pulumi_gitlab/deploy_key_enable.py +4 -42
  9. pulumi_gitlab/deploy_token.py +11 -7
  10. pulumi_gitlab/get_artifact_file.py +266 -0
  11. pulumi_gitlab/get_branch.py +1 -1
  12. pulumi_gitlab/get_cluster_agent.py +3 -3
  13. pulumi_gitlab/get_cluster_agents.py +6 -6
  14. pulumi_gitlab/get_current_user.py +1 -1
  15. pulumi_gitlab/get_group.py +2 -2
  16. pulumi_gitlab/get_group_billable_member_memberships.py +2 -2
  17. pulumi_gitlab/get_group_hook.py +22 -3
  18. pulumi_gitlab/get_group_hooks.py +7 -3
  19. pulumi_gitlab/get_group_membership.py +2 -2
  20. pulumi_gitlab/get_group_saml_links.py +114 -0
  21. pulumi_gitlab/get_group_service_account.py +6 -2
  22. pulumi_gitlab/get_group_service_account_access_tokens.py +138 -0
  23. pulumi_gitlab/get_group_subgroups.py +1 -1
  24. pulumi_gitlab/get_group_variable.py +1 -1
  25. pulumi_gitlab/get_groups.py +1 -1
  26. pulumi_gitlab/get_instance_deploy_keys.py +1 -1
  27. pulumi_gitlab/get_instance_service_account.py +2 -2
  28. pulumi_gitlab/get_instance_variable.py +7 -7
  29. pulumi_gitlab/get_instance_variables.py +4 -4
  30. pulumi_gitlab/get_member_role.py +200 -0
  31. pulumi_gitlab/get_project.py +27 -7
  32. pulumi_gitlab/get_project_approval_rules.py +137 -0
  33. pulumi_gitlab/get_project_branches.py +1 -1
  34. pulumi_gitlab/get_project_hook.py +20 -5
  35. pulumi_gitlab/get_project_hooks.py +1 -1
  36. pulumi_gitlab/get_project_issue_label_events.py +170 -0
  37. pulumi_gitlab/get_project_membership.py +34 -16
  38. pulumi_gitlab/get_project_milestone.py +1 -1
  39. pulumi_gitlab/get_project_milestones.py +1 -1
  40. pulumi_gitlab/get_project_protected_tag.py +2 -2
  41. pulumi_gitlab/get_project_secure_file.py +247 -0
  42. pulumi_gitlab/get_project_tag.py +2 -2
  43. pulumi_gitlab/get_project_tags.py +1 -1
  44. pulumi_gitlab/get_project_variable.py +12 -12
  45. pulumi_gitlab/get_project_variables.py +4 -4
  46. pulumi_gitlab/get_projects.py +3 -3
  47. pulumi_gitlab/get_release_link.py +9 -9
  48. pulumi_gitlab/get_release_links.py +4 -4
  49. pulumi_gitlab/get_repository_file.py +1 -1
  50. pulumi_gitlab/get_repository_tree.py +1 -1
  51. pulumi_gitlab/get_security_policy_document.py +170 -0
  52. pulumi_gitlab/get_user.py +33 -1
  53. pulumi_gitlab/get_users.py +22 -2
  54. pulumi_gitlab/global_level_notifications.py +2 -2
  55. pulumi_gitlab/group.py +148 -7
  56. pulumi_gitlab/group_access_token.py +54 -7
  57. pulumi_gitlab/group_deploy_token.py +582 -0
  58. pulumi_gitlab/group_hook.py +163 -112
  59. pulumi_gitlab/group_label.py +7 -7
  60. pulumi_gitlab/group_level_mr_approvals.py +509 -0
  61. pulumi_gitlab/group_membership.py +10 -10
  62. pulumi_gitlab/group_service_account.py +38 -2
  63. pulumi_gitlab/group_service_account_access_token.py +146 -5
  64. pulumi_gitlab/group_share_group.py +13 -9
  65. pulumi_gitlab/instance_service_account.py +3 -3
  66. pulumi_gitlab/instance_variable.py +12 -12
  67. pulumi_gitlab/integration_custom_issue_tracker.py +4 -0
  68. pulumi_gitlab/integration_emails_on_push.py +9 -7
  69. pulumi_gitlab/integration_harbor.py +4 -0
  70. pulumi_gitlab/integration_jenkins.py +4 -0
  71. pulumi_gitlab/integration_redmine.py +4 -2
  72. pulumi_gitlab/integration_telegram.py +4 -0
  73. pulumi_gitlab/label.py +11 -7
  74. pulumi_gitlab/member_role.py +9 -9
  75. pulumi_gitlab/outputs.py +1279 -112
  76. pulumi_gitlab/pages_domain.py +7 -7
  77. pulumi_gitlab/personal_access_token.py +52 -5
  78. pulumi_gitlab/pipeline_schedule_variable.py +2 -2
  79. pulumi_gitlab/project.py +241 -105
  80. pulumi_gitlab/project_access_token.py +52 -5
  81. pulumi_gitlab/project_approval_rule.py +120 -0
  82. pulumi_gitlab/project_cicd_catalog.py +314 -0
  83. pulumi_gitlab/project_deploy_token.py +582 -0
  84. pulumi_gitlab/project_environment.py +4 -4
  85. pulumi_gitlab/project_external_status_check.py +469 -0
  86. pulumi_gitlab/project_freeze_period.py +22 -22
  87. pulumi_gitlab/project_hook.py +162 -109
  88. pulumi_gitlab/project_integration_emails_on_push.py +17 -7
  89. pulumi_gitlab/project_issue_link.py +502 -0
  90. pulumi_gitlab/project_job_token_scope.py +24 -4
  91. pulumi_gitlab/project_job_token_scopes.py +14 -14
  92. pulumi_gitlab/project_label.py +11 -11
  93. pulumi_gitlab/project_level_mr_approvals.py +2 -2
  94. pulumi_gitlab/project_level_notifications.py +2 -2
  95. pulumi_gitlab/project_membership.py +9 -9
  96. pulumi_gitlab/project_mirror.py +8 -6
  97. pulumi_gitlab/project_package_dependency_proxy.py +446 -0
  98. pulumi_gitlab/project_protected_environment.py +14 -14
  99. pulumi_gitlab/project_pull_mirror.py +837 -0
  100. pulumi_gitlab/project_push_mirror.py +547 -0
  101. pulumi_gitlab/project_secure_file.py +489 -0
  102. pulumi_gitlab/project_tag.py +3 -3
  103. pulumi_gitlab/project_target_branch_rule.py +2 -2
  104. pulumi_gitlab/project_variable.py +7 -7
  105. pulumi_gitlab/project_wiki_page.py +30 -0
  106. pulumi_gitlab/provider.py +76 -0
  107. pulumi_gitlab/pulumi-plugin.json +1 -1
  108. pulumi_gitlab/release_link.py +19 -19
  109. pulumi_gitlab/runner.py +8 -4
  110. pulumi_gitlab/system_hook.py +7 -7
  111. pulumi_gitlab/user_avatar.py +386 -0
  112. pulumi_gitlab/user_gpg_key.py +2 -2
  113. pulumi_gitlab/user_impersonation_token.py +52 -5
  114. pulumi_gitlab/user_runner.py +14 -14
  115. pulumi_gitlab/user_ssh_key.py +2 -2
  116. pulumi_gitlab/value_stream_analytics.py +92 -0
  117. {pulumi_gitlab-9.3.0a1759182301.dist-info → pulumi_gitlab-9.8.1.dist-info}/METADATA +1 -1
  118. pulumi_gitlab-9.8.1.dist-info/RECORD +207 -0
  119. pulumi_gitlab-9.3.0a1759182301.dist-info/RECORD +0 -188
  120. {pulumi_gitlab-9.3.0a1759182301.dist-info → pulumi_gitlab-9.8.1.dist-info}/WHEEL +0 -0
  121. {pulumi_gitlab-9.3.0a1759182301.dist-info → pulumi_gitlab-9.8.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,386 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins as _builtins
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__ = ['UserAvatarArgs', 'UserAvatar']
18
+
19
+ @pulumi.input_type
20
+ class UserAvatarArgs:
21
+ def __init__(__self__, *,
22
+ avatar: pulumi.Input[_builtins.str],
23
+ user_id: pulumi.Input[_builtins.int],
24
+ avatar_hash: Optional[pulumi.Input[_builtins.str]] = None,
25
+ token: Optional[pulumi.Input[_builtins.str]] = None):
26
+ """
27
+ The set of arguments for constructing a UserAvatar resource.
28
+ :param pulumi.Input[_builtins.str] avatar: A local path to the avatar image to upload. **Note**: the avatar is not available for imported resources.
29
+ :param pulumi.Input[_builtins.int] user_id: The ID of the user.
30
+ :param pulumi.Input[_builtins.str] avatar_hash: The hash of the avatar image. This is used to track changes to the avatar image if the image contents change but the image name remains the same. Use `filesha256("path/to/avatar.png")` whenever possible.
31
+ :param pulumi.Input[_builtins.str] token: The access token of the user. If this field is omitted, a GitLab token with administrator scope is required to manage the avatar for the specified user. **Note**: the token is not available for imported resources.
32
+ """
33
+ pulumi.set(__self__, "avatar", avatar)
34
+ pulumi.set(__self__, "user_id", user_id)
35
+ if avatar_hash is not None:
36
+ pulumi.set(__self__, "avatar_hash", avatar_hash)
37
+ if token is not None:
38
+ pulumi.set(__self__, "token", token)
39
+
40
+ @_builtins.property
41
+ @pulumi.getter
42
+ def avatar(self) -> pulumi.Input[_builtins.str]:
43
+ """
44
+ A local path to the avatar image to upload. **Note**: the avatar is not available for imported resources.
45
+ """
46
+ return pulumi.get(self, "avatar")
47
+
48
+ @avatar.setter
49
+ def avatar(self, value: pulumi.Input[_builtins.str]):
50
+ pulumi.set(self, "avatar", value)
51
+
52
+ @_builtins.property
53
+ @pulumi.getter(name="userId")
54
+ def user_id(self) -> pulumi.Input[_builtins.int]:
55
+ """
56
+ The ID of the user.
57
+ """
58
+ return pulumi.get(self, "user_id")
59
+
60
+ @user_id.setter
61
+ def user_id(self, value: pulumi.Input[_builtins.int]):
62
+ pulumi.set(self, "user_id", value)
63
+
64
+ @_builtins.property
65
+ @pulumi.getter(name="avatarHash")
66
+ def avatar_hash(self) -> Optional[pulumi.Input[_builtins.str]]:
67
+ """
68
+ The hash of the avatar image. This is used to track changes to the avatar image if the image contents change but the image name remains the same. Use `filesha256("path/to/avatar.png")` whenever possible.
69
+ """
70
+ return pulumi.get(self, "avatar_hash")
71
+
72
+ @avatar_hash.setter
73
+ def avatar_hash(self, value: Optional[pulumi.Input[_builtins.str]]):
74
+ pulumi.set(self, "avatar_hash", value)
75
+
76
+ @_builtins.property
77
+ @pulumi.getter
78
+ def token(self) -> Optional[pulumi.Input[_builtins.str]]:
79
+ """
80
+ The access token of the user. If this field is omitted, a GitLab token with administrator scope is required to manage the avatar for the specified user. **Note**: the token is not available for imported resources.
81
+ """
82
+ return pulumi.get(self, "token")
83
+
84
+ @token.setter
85
+ def token(self, value: Optional[pulumi.Input[_builtins.str]]):
86
+ pulumi.set(self, "token", value)
87
+
88
+
89
+ @pulumi.input_type
90
+ class _UserAvatarState:
91
+ def __init__(__self__, *,
92
+ avatar: Optional[pulumi.Input[_builtins.str]] = None,
93
+ avatar_hash: Optional[pulumi.Input[_builtins.str]] = None,
94
+ avatar_url: Optional[pulumi.Input[_builtins.str]] = None,
95
+ token: Optional[pulumi.Input[_builtins.str]] = None,
96
+ user_id: Optional[pulumi.Input[_builtins.int]] = None):
97
+ """
98
+ Input properties used for looking up and filtering UserAvatar resources.
99
+ :param pulumi.Input[_builtins.str] avatar: A local path to the avatar image to upload. **Note**: the avatar is not available for imported resources.
100
+ :param pulumi.Input[_builtins.str] avatar_hash: The hash of the avatar image. This is used to track changes to the avatar image if the image contents change but the image name remains the same. Use `filesha256("path/to/avatar.png")` whenever possible.
101
+ :param pulumi.Input[_builtins.str] avatar_url: The URL of the avatar image.
102
+ :param pulumi.Input[_builtins.str] token: The access token of the user. If this field is omitted, a GitLab token with administrator scope is required to manage the avatar for the specified user. **Note**: the token is not available for imported resources.
103
+ :param pulumi.Input[_builtins.int] user_id: The ID of the user.
104
+ """
105
+ if avatar is not None:
106
+ pulumi.set(__self__, "avatar", avatar)
107
+ if avatar_hash is not None:
108
+ pulumi.set(__self__, "avatar_hash", avatar_hash)
109
+ if avatar_url is not None:
110
+ pulumi.set(__self__, "avatar_url", avatar_url)
111
+ if token is not None:
112
+ pulumi.set(__self__, "token", token)
113
+ if user_id is not None:
114
+ pulumi.set(__self__, "user_id", user_id)
115
+
116
+ @_builtins.property
117
+ @pulumi.getter
118
+ def avatar(self) -> Optional[pulumi.Input[_builtins.str]]:
119
+ """
120
+ A local path to the avatar image to upload. **Note**: the avatar is not available for imported resources.
121
+ """
122
+ return pulumi.get(self, "avatar")
123
+
124
+ @avatar.setter
125
+ def avatar(self, value: Optional[pulumi.Input[_builtins.str]]):
126
+ pulumi.set(self, "avatar", value)
127
+
128
+ @_builtins.property
129
+ @pulumi.getter(name="avatarHash")
130
+ def avatar_hash(self) -> Optional[pulumi.Input[_builtins.str]]:
131
+ """
132
+ The hash of the avatar image. This is used to track changes to the avatar image if the image contents change but the image name remains the same. Use `filesha256("path/to/avatar.png")` whenever possible.
133
+ """
134
+ return pulumi.get(self, "avatar_hash")
135
+
136
+ @avatar_hash.setter
137
+ def avatar_hash(self, value: Optional[pulumi.Input[_builtins.str]]):
138
+ pulumi.set(self, "avatar_hash", value)
139
+
140
+ @_builtins.property
141
+ @pulumi.getter(name="avatarUrl")
142
+ def avatar_url(self) -> Optional[pulumi.Input[_builtins.str]]:
143
+ """
144
+ The URL of the avatar image.
145
+ """
146
+ return pulumi.get(self, "avatar_url")
147
+
148
+ @avatar_url.setter
149
+ def avatar_url(self, value: Optional[pulumi.Input[_builtins.str]]):
150
+ pulumi.set(self, "avatar_url", value)
151
+
152
+ @_builtins.property
153
+ @pulumi.getter
154
+ def token(self) -> Optional[pulumi.Input[_builtins.str]]:
155
+ """
156
+ The access token of the user. If this field is omitted, a GitLab token with administrator scope is required to manage the avatar for the specified user. **Note**: the token is not available for imported resources.
157
+ """
158
+ return pulumi.get(self, "token")
159
+
160
+ @token.setter
161
+ def token(self, value: Optional[pulumi.Input[_builtins.str]]):
162
+ pulumi.set(self, "token", value)
163
+
164
+ @_builtins.property
165
+ @pulumi.getter(name="userId")
166
+ def user_id(self) -> Optional[pulumi.Input[_builtins.int]]:
167
+ """
168
+ The ID of the user.
169
+ """
170
+ return pulumi.get(self, "user_id")
171
+
172
+ @user_id.setter
173
+ def user_id(self, value: Optional[pulumi.Input[_builtins.int]]):
174
+ pulumi.set(self, "user_id", value)
175
+
176
+
177
+ @pulumi.type_token("gitlab:index/userAvatar:UserAvatar")
178
+ class UserAvatar(pulumi.CustomResource):
179
+ @overload
180
+ def __init__(__self__,
181
+ resource_name: str,
182
+ opts: Optional[pulumi.ResourceOptions] = None,
183
+ avatar: Optional[pulumi.Input[_builtins.str]] = None,
184
+ avatar_hash: Optional[pulumi.Input[_builtins.str]] = None,
185
+ token: Optional[pulumi.Input[_builtins.str]] = None,
186
+ user_id: Optional[pulumi.Input[_builtins.int]] = None,
187
+ __props__=None):
188
+ """
189
+ The `UserAvatar` resource allows users to manage the lifecycle of a user avatar.
190
+ The resource can also be used to set the avatar on project or group access tokens, as well as on service accounts.
191
+
192
+ > The `token` attribute is optional only when the GitLab token used by the provider has an administrator scope, as this allows an administrator to manage user avatars.
193
+
194
+ > The provided `token` must have the `api` scope in order to set the avatar.
195
+
196
+ **Upstream API**: [GitLab API docs](https://docs.gitlab.com/api/users/#upload-an-avatar-for-yourself)
197
+
198
+ ## Import
199
+
200
+ Starting in Terraform v1.5.0, you can use an import block to import `gitlab_user_avatar`. For example:
201
+
202
+ terraform
203
+
204
+ import {
205
+
206
+ to = gitlab_user_avatar.example
207
+
208
+ id = "see CLI command below for ID"
209
+
210
+ }
211
+
212
+ Importing using the CLI is supported with the following syntax:
213
+
214
+ A GitLab User Avatar can be imported using the user id, e.g.
215
+
216
+ ```sh
217
+ $ pulumi import gitlab:index/userAvatar:UserAvatar example "12345"
218
+ ```
219
+
220
+ NOTE: the `token` and `avatar` resource attributes are not available for imported resources as this information cannot be read from the GitLab API.
221
+
222
+ :param str resource_name: The name of the resource.
223
+ :param pulumi.ResourceOptions opts: Options for the resource.
224
+ :param pulumi.Input[_builtins.str] avatar: A local path to the avatar image to upload. **Note**: the avatar is not available for imported resources.
225
+ :param pulumi.Input[_builtins.str] avatar_hash: The hash of the avatar image. This is used to track changes to the avatar image if the image contents change but the image name remains the same. Use `filesha256("path/to/avatar.png")` whenever possible.
226
+ :param pulumi.Input[_builtins.str] token: The access token of the user. If this field is omitted, a GitLab token with administrator scope is required to manage the avatar for the specified user. **Note**: the token is not available for imported resources.
227
+ :param pulumi.Input[_builtins.int] user_id: The ID of the user.
228
+ """
229
+ ...
230
+ @overload
231
+ def __init__(__self__,
232
+ resource_name: str,
233
+ args: UserAvatarArgs,
234
+ opts: Optional[pulumi.ResourceOptions] = None):
235
+ """
236
+ The `UserAvatar` resource allows users to manage the lifecycle of a user avatar.
237
+ The resource can also be used to set the avatar on project or group access tokens, as well as on service accounts.
238
+
239
+ > The `token` attribute is optional only when the GitLab token used by the provider has an administrator scope, as this allows an administrator to manage user avatars.
240
+
241
+ > The provided `token` must have the `api` scope in order to set the avatar.
242
+
243
+ **Upstream API**: [GitLab API docs](https://docs.gitlab.com/api/users/#upload-an-avatar-for-yourself)
244
+
245
+ ## Import
246
+
247
+ Starting in Terraform v1.5.0, you can use an import block to import `gitlab_user_avatar`. For example:
248
+
249
+ terraform
250
+
251
+ import {
252
+
253
+ to = gitlab_user_avatar.example
254
+
255
+ id = "see CLI command below for ID"
256
+
257
+ }
258
+
259
+ Importing using the CLI is supported with the following syntax:
260
+
261
+ A GitLab User Avatar can be imported using the user id, e.g.
262
+
263
+ ```sh
264
+ $ pulumi import gitlab:index/userAvatar:UserAvatar example "12345"
265
+ ```
266
+
267
+ NOTE: the `token` and `avatar` resource attributes are not available for imported resources as this information cannot be read from the GitLab API.
268
+
269
+ :param str resource_name: The name of the resource.
270
+ :param UserAvatarArgs args: The arguments to use to populate this resource's properties.
271
+ :param pulumi.ResourceOptions opts: Options for the resource.
272
+ """
273
+ ...
274
+ def __init__(__self__, resource_name: str, *args, **kwargs):
275
+ resource_args, opts = _utilities.get_resource_args_opts(UserAvatarArgs, pulumi.ResourceOptions, *args, **kwargs)
276
+ if resource_args is not None:
277
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
278
+ else:
279
+ __self__._internal_init(resource_name, *args, **kwargs)
280
+
281
+ def _internal_init(__self__,
282
+ resource_name: str,
283
+ opts: Optional[pulumi.ResourceOptions] = None,
284
+ avatar: Optional[pulumi.Input[_builtins.str]] = None,
285
+ avatar_hash: Optional[pulumi.Input[_builtins.str]] = None,
286
+ token: Optional[pulumi.Input[_builtins.str]] = None,
287
+ user_id: Optional[pulumi.Input[_builtins.int]] = None,
288
+ __props__=None):
289
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
290
+ if not isinstance(opts, pulumi.ResourceOptions):
291
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
292
+ if opts.id is None:
293
+ if __props__ is not None:
294
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
295
+ __props__ = UserAvatarArgs.__new__(UserAvatarArgs)
296
+
297
+ if avatar is None and not opts.urn:
298
+ raise TypeError("Missing required property 'avatar'")
299
+ __props__.__dict__["avatar"] = avatar
300
+ __props__.__dict__["avatar_hash"] = avatar_hash
301
+ __props__.__dict__["token"] = None if token is None else pulumi.Output.secret(token)
302
+ if user_id is None and not opts.urn:
303
+ raise TypeError("Missing required property 'user_id'")
304
+ __props__.__dict__["user_id"] = user_id
305
+ __props__.__dict__["avatar_url"] = None
306
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["token"])
307
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
308
+ super(UserAvatar, __self__).__init__(
309
+ 'gitlab:index/userAvatar:UserAvatar',
310
+ resource_name,
311
+ __props__,
312
+ opts)
313
+
314
+ @staticmethod
315
+ def get(resource_name: str,
316
+ id: pulumi.Input[str],
317
+ opts: Optional[pulumi.ResourceOptions] = None,
318
+ avatar: Optional[pulumi.Input[_builtins.str]] = None,
319
+ avatar_hash: Optional[pulumi.Input[_builtins.str]] = None,
320
+ avatar_url: Optional[pulumi.Input[_builtins.str]] = None,
321
+ token: Optional[pulumi.Input[_builtins.str]] = None,
322
+ user_id: Optional[pulumi.Input[_builtins.int]] = None) -> 'UserAvatar':
323
+ """
324
+ Get an existing UserAvatar resource's state with the given name, id, and optional extra
325
+ properties used to qualify the lookup.
326
+
327
+ :param str resource_name: The unique name of the resulting resource.
328
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
329
+ :param pulumi.ResourceOptions opts: Options for the resource.
330
+ :param pulumi.Input[_builtins.str] avatar: A local path to the avatar image to upload. **Note**: the avatar is not available for imported resources.
331
+ :param pulumi.Input[_builtins.str] avatar_hash: The hash of the avatar image. This is used to track changes to the avatar image if the image contents change but the image name remains the same. Use `filesha256("path/to/avatar.png")` whenever possible.
332
+ :param pulumi.Input[_builtins.str] avatar_url: The URL of the avatar image.
333
+ :param pulumi.Input[_builtins.str] token: The access token of the user. If this field is omitted, a GitLab token with administrator scope is required to manage the avatar for the specified user. **Note**: the token is not available for imported resources.
334
+ :param pulumi.Input[_builtins.int] user_id: The ID of the user.
335
+ """
336
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
337
+
338
+ __props__ = _UserAvatarState.__new__(_UserAvatarState)
339
+
340
+ __props__.__dict__["avatar"] = avatar
341
+ __props__.__dict__["avatar_hash"] = avatar_hash
342
+ __props__.__dict__["avatar_url"] = avatar_url
343
+ __props__.__dict__["token"] = token
344
+ __props__.__dict__["user_id"] = user_id
345
+ return UserAvatar(resource_name, opts=opts, __props__=__props__)
346
+
347
+ @_builtins.property
348
+ @pulumi.getter
349
+ def avatar(self) -> pulumi.Output[_builtins.str]:
350
+ """
351
+ A local path to the avatar image to upload. **Note**: the avatar is not available for imported resources.
352
+ """
353
+ return pulumi.get(self, "avatar")
354
+
355
+ @_builtins.property
356
+ @pulumi.getter(name="avatarHash")
357
+ def avatar_hash(self) -> pulumi.Output[Optional[_builtins.str]]:
358
+ """
359
+ The hash of the avatar image. This is used to track changes to the avatar image if the image contents change but the image name remains the same. Use `filesha256("path/to/avatar.png")` whenever possible.
360
+ """
361
+ return pulumi.get(self, "avatar_hash")
362
+
363
+ @_builtins.property
364
+ @pulumi.getter(name="avatarUrl")
365
+ def avatar_url(self) -> pulumi.Output[_builtins.str]:
366
+ """
367
+ The URL of the avatar image.
368
+ """
369
+ return pulumi.get(self, "avatar_url")
370
+
371
+ @_builtins.property
372
+ @pulumi.getter
373
+ def token(self) -> pulumi.Output[Optional[_builtins.str]]:
374
+ """
375
+ The access token of the user. If this field is omitted, a GitLab token with administrator scope is required to manage the avatar for the specified user. **Note**: the token is not available for imported resources.
376
+ """
377
+ return pulumi.get(self, "token")
378
+
379
+ @_builtins.property
380
+ @pulumi.getter(name="userId")
381
+ def user_id(self) -> pulumi.Output[_builtins.int]:
382
+ """
383
+ The ID of the user.
384
+ """
385
+ return pulumi.get(self, "user_id")
386
+
@@ -141,7 +141,7 @@ class UserGpgKey(pulumi.CustomResource):
141
141
 
142
142
  > Managing GPG keys for arbitrary users requires admin privileges.
143
143
 
144
- **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/users/#get-a-specific-gpg-key)
144
+ **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/user_keys/#get-a-gpg-key-for-a-user)
145
145
 
146
146
  ## Example Usage
147
147
 
@@ -206,7 +206,7 @@ class UserGpgKey(pulumi.CustomResource):
206
206
 
207
207
  > Managing GPG keys for arbitrary users requires admin privileges.
208
208
 
209
- **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/users/#get-a-specific-gpg-key)
209
+ **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/user_keys/#get-a-gpg-key-for-a-user)
210
210
 
211
211
  ## Example Usage
212
212
 
@@ -22,19 +22,23 @@ class UserImpersonationTokenArgs:
22
22
  expires_at: pulumi.Input[_builtins.str],
23
23
  scopes: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]],
24
24
  user_id: pulumi.Input[_builtins.int],
25
- name: Optional[pulumi.Input[_builtins.str]] = None):
25
+ name: Optional[pulumi.Input[_builtins.str]] = None,
26
+ validate_past_expiration_date: Optional[pulumi.Input[_builtins.bool]] = None):
26
27
  """
27
28
  The set of arguments for constructing a UserImpersonationToken resource.
28
29
  :param pulumi.Input[_builtins.str] expires_at: Expiration date of the impersonation token in ISO format (YYYY-MM-DD).
29
30
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] scopes: Array of scopes of the impersonation token. valid values are: `api`, `read_user`, `read_api`, `read_repository`, `write_repository`, `read_registry`, `write_registry`, `read_virtual_registry`, `write_virtual_registry`, `sudo`, `admin_mode`, `create_runner`, `manage_runner`, `ai_features`, `k8s_proxy`, `self_rotate`, `read_service_ping`
30
31
  :param pulumi.Input[_builtins.int] user_id: The ID of the user.
31
32
  :param pulumi.Input[_builtins.str] name: The name of the impersonation token.
33
+ :param pulumi.Input[_builtins.bool] validate_past_expiration_date: Wether to validate if the expiration date is in the future.
32
34
  """
33
35
  pulumi.set(__self__, "expires_at", expires_at)
34
36
  pulumi.set(__self__, "scopes", scopes)
35
37
  pulumi.set(__self__, "user_id", user_id)
36
38
  if name is not None:
37
39
  pulumi.set(__self__, "name", name)
40
+ if validate_past_expiration_date is not None:
41
+ pulumi.set(__self__, "validate_past_expiration_date", validate_past_expiration_date)
38
42
 
39
43
  @_builtins.property
40
44
  @pulumi.getter(name="expiresAt")
@@ -84,6 +88,18 @@ class UserImpersonationTokenArgs:
84
88
  def name(self, value: Optional[pulumi.Input[_builtins.str]]):
85
89
  pulumi.set(self, "name", value)
86
90
 
91
+ @_builtins.property
92
+ @pulumi.getter(name="validatePastExpirationDate")
93
+ def validate_past_expiration_date(self) -> Optional[pulumi.Input[_builtins.bool]]:
94
+ """
95
+ Wether to validate if the expiration date is in the future.
96
+ """
97
+ return pulumi.get(self, "validate_past_expiration_date")
98
+
99
+ @validate_past_expiration_date.setter
100
+ def validate_past_expiration_date(self, value: Optional[pulumi.Input[_builtins.bool]]):
101
+ pulumi.set(self, "validate_past_expiration_date", value)
102
+
87
103
 
88
104
  @pulumi.input_type
89
105
  class _UserImpersonationTokenState:
@@ -97,7 +113,8 @@ class _UserImpersonationTokenState:
97
113
  scopes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
98
114
  token: Optional[pulumi.Input[_builtins.str]] = None,
99
115
  token_id: Optional[pulumi.Input[_builtins.int]] = None,
100
- user_id: Optional[pulumi.Input[_builtins.int]] = None):
116
+ user_id: Optional[pulumi.Input[_builtins.int]] = None,
117
+ validate_past_expiration_date: Optional[pulumi.Input[_builtins.bool]] = None):
101
118
  """
102
119
  Input properties used for looking up and filtering UserImpersonationToken resources.
103
120
  :param pulumi.Input[_builtins.bool] active: True if the token is active.
@@ -110,6 +127,7 @@ class _UserImpersonationTokenState:
110
127
  :param pulumi.Input[_builtins.str] token: The token of the user impersonation token. **Note**: the token is not available for imported resources.
111
128
  :param pulumi.Input[_builtins.int] token_id: ID of the impersonation token.
112
129
  :param pulumi.Input[_builtins.int] user_id: The ID of the user.
130
+ :param pulumi.Input[_builtins.bool] validate_past_expiration_date: Wether to validate if the expiration date is in the future.
113
131
  """
114
132
  if active is not None:
115
133
  pulumi.set(__self__, "active", active)
@@ -131,6 +149,8 @@ class _UserImpersonationTokenState:
131
149
  pulumi.set(__self__, "token_id", token_id)
132
150
  if user_id is not None:
133
151
  pulumi.set(__self__, "user_id", user_id)
152
+ if validate_past_expiration_date is not None:
153
+ pulumi.set(__self__, "validate_past_expiration_date", validate_past_expiration_date)
134
154
 
135
155
  @_builtins.property
136
156
  @pulumi.getter
@@ -252,6 +272,18 @@ class _UserImpersonationTokenState:
252
272
  def user_id(self, value: Optional[pulumi.Input[_builtins.int]]):
253
273
  pulumi.set(self, "user_id", value)
254
274
 
275
+ @_builtins.property
276
+ @pulumi.getter(name="validatePastExpirationDate")
277
+ def validate_past_expiration_date(self) -> Optional[pulumi.Input[_builtins.bool]]:
278
+ """
279
+ Wether to validate if the expiration date is in the future.
280
+ """
281
+ return pulumi.get(self, "validate_past_expiration_date")
282
+
283
+ @validate_past_expiration_date.setter
284
+ def validate_past_expiration_date(self, value: Optional[pulumi.Input[_builtins.bool]]):
285
+ pulumi.set(self, "validate_past_expiration_date", value)
286
+
255
287
 
256
288
  @pulumi.type_token("gitlab:index/userImpersonationToken:UserImpersonationToken")
257
289
  class UserImpersonationToken(pulumi.CustomResource):
@@ -263,12 +295,13 @@ class UserImpersonationToken(pulumi.CustomResource):
263
295
  name: Optional[pulumi.Input[_builtins.str]] = None,
264
296
  scopes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
265
297
  user_id: Optional[pulumi.Input[_builtins.int]] = None,
298
+ validate_past_expiration_date: Optional[pulumi.Input[_builtins.bool]] = None,
266
299
  __props__=None):
267
300
  """
268
301
  The `UserImpersonationToken` resource allows to manage impersonation tokens of users.
269
302
  Requires administrator access. Token values are returned once. You are only able to create impersonation tokens to impersonate the user and perform both API calls and Git reads and writes. The user can’t see these tokens in their profile settings page.
270
303
 
271
- **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/users/#create-an-impersonation-token)
304
+ **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/user_tokens/#create-an-impersonation-token)
272
305
 
273
306
  ## Example Usage
274
307
 
@@ -313,6 +346,7 @@ class UserImpersonationToken(pulumi.CustomResource):
313
346
  :param pulumi.Input[_builtins.str] name: The name of the impersonation token.
314
347
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] scopes: Array of scopes of the impersonation token. valid values are: `api`, `read_user`, `read_api`, `read_repository`, `write_repository`, `read_registry`, `write_registry`, `read_virtual_registry`, `write_virtual_registry`, `sudo`, `admin_mode`, `create_runner`, `manage_runner`, `ai_features`, `k8s_proxy`, `self_rotate`, `read_service_ping`
315
348
  :param pulumi.Input[_builtins.int] user_id: The ID of the user.
349
+ :param pulumi.Input[_builtins.bool] validate_past_expiration_date: Wether to validate if the expiration date is in the future.
316
350
  """
317
351
  ...
318
352
  @overload
@@ -324,7 +358,7 @@ class UserImpersonationToken(pulumi.CustomResource):
324
358
  The `UserImpersonationToken` resource allows to manage impersonation tokens of users.
325
359
  Requires administrator access. Token values are returned once. You are only able to create impersonation tokens to impersonate the user and perform both API calls and Git reads and writes. The user can’t see these tokens in their profile settings page.
326
360
 
327
- **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/users/#create-an-impersonation-token)
361
+ **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/user_tokens/#create-an-impersonation-token)
328
362
 
329
363
  ## Example Usage
330
364
 
@@ -382,6 +416,7 @@ class UserImpersonationToken(pulumi.CustomResource):
382
416
  name: Optional[pulumi.Input[_builtins.str]] = None,
383
417
  scopes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
384
418
  user_id: Optional[pulumi.Input[_builtins.int]] = None,
419
+ validate_past_expiration_date: Optional[pulumi.Input[_builtins.bool]] = None,
385
420
  __props__=None):
386
421
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
387
422
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -401,6 +436,7 @@ class UserImpersonationToken(pulumi.CustomResource):
401
436
  if user_id is None and not opts.urn:
402
437
  raise TypeError("Missing required property 'user_id'")
403
438
  __props__.__dict__["user_id"] = user_id
439
+ __props__.__dict__["validate_past_expiration_date"] = validate_past_expiration_date
404
440
  __props__.__dict__["active"] = None
405
441
  __props__.__dict__["created_at"] = None
406
442
  __props__.__dict__["impersonation"] = None
@@ -428,7 +464,8 @@ class UserImpersonationToken(pulumi.CustomResource):
428
464
  scopes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
429
465
  token: Optional[pulumi.Input[_builtins.str]] = None,
430
466
  token_id: Optional[pulumi.Input[_builtins.int]] = None,
431
- user_id: Optional[pulumi.Input[_builtins.int]] = None) -> 'UserImpersonationToken':
467
+ user_id: Optional[pulumi.Input[_builtins.int]] = None,
468
+ validate_past_expiration_date: Optional[pulumi.Input[_builtins.bool]] = None) -> 'UserImpersonationToken':
432
469
  """
433
470
  Get an existing UserImpersonationToken resource's state with the given name, id, and optional extra
434
471
  properties used to qualify the lookup.
@@ -446,6 +483,7 @@ class UserImpersonationToken(pulumi.CustomResource):
446
483
  :param pulumi.Input[_builtins.str] token: The token of the user impersonation token. **Note**: the token is not available for imported resources.
447
484
  :param pulumi.Input[_builtins.int] token_id: ID of the impersonation token.
448
485
  :param pulumi.Input[_builtins.int] user_id: The ID of the user.
486
+ :param pulumi.Input[_builtins.bool] validate_past_expiration_date: Wether to validate if the expiration date is in the future.
449
487
  """
450
488
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
451
489
 
@@ -461,6 +499,7 @@ class UserImpersonationToken(pulumi.CustomResource):
461
499
  __props__.__dict__["token"] = token
462
500
  __props__.__dict__["token_id"] = token_id
463
501
  __props__.__dict__["user_id"] = user_id
502
+ __props__.__dict__["validate_past_expiration_date"] = validate_past_expiration_date
464
503
  return UserImpersonationToken(resource_name, opts=opts, __props__=__props__)
465
504
 
466
505
  @_builtins.property
@@ -543,3 +582,11 @@ class UserImpersonationToken(pulumi.CustomResource):
543
582
  """
544
583
  return pulumi.get(self, "user_id")
545
584
 
585
+ @_builtins.property
586
+ @pulumi.getter(name="validatePastExpirationDate")
587
+ def validate_past_expiration_date(self) -> pulumi.Output[_builtins.bool]:
588
+ """
589
+ Wether to validate if the expiration date is in the future.
590
+ """
591
+ return pulumi.get(self, "validate_past_expiration_date")
592
+
@@ -420,7 +420,7 @@ class UserRunner(pulumi.CustomResource):
420
420
  """
421
421
  The `UserRunner` resource allows creating a GitLab runner using the new [GitLab Runner Registration Flow](https://docs.gitlab.com/ci/runners/new_creation_workflow/).
422
422
 
423
- **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/users/#create-a-runner)
423
+ **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/users/#create-a-runner-linked-to-a-user)
424
424
 
425
425
  ## Example Usage
426
426
 
@@ -451,10 +451,10 @@ class UserRunner(pulumi.CustomResource):
451
451
  session_timeout = 1800
452
452
 
453
453
  [[runners]]
454
- name = "my_gitlab_runner"
455
- url = "https://example.gitlab.com"
456
- token = "{token}"
457
- executor = "docker"
454
+ name = \\"my_gitlab_runner\\"
455
+ url = \\"https://example.gitlab.com\\"
456
+ token = \\"{token}\\"
457
+ executor = \\"docker\\"
458
458
 
459
459
  [runners.custom_build_dir]
460
460
  [runners.cache]
@@ -463,12 +463,12 @@ class UserRunner(pulumi.CustomResource):
463
463
  [runners.cache.azure]
464
464
  [runners.docker]
465
465
  tls_verify = false
466
- image = "ubuntu"
466
+ image = \\"ubuntu\\"
467
467
  privileged = true
468
468
  disable_entrypoint_overwrite = false
469
469
  oom_kill_disable = false
470
470
  disable_cache = false
471
- volumes = ["/cache", "/certs/client"]
471
+ volumes = [\\"/cache\\", \\"/certs/client\\"]
472
472
  shm_size = 0
473
473
  \"\"\")
474
474
  ```
@@ -520,7 +520,7 @@ class UserRunner(pulumi.CustomResource):
520
520
  """
521
521
  The `UserRunner` resource allows creating a GitLab runner using the new [GitLab Runner Registration Flow](https://docs.gitlab.com/ci/runners/new_creation_workflow/).
522
522
 
523
- **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/users/#create-a-runner)
523
+ **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/users/#create-a-runner-linked-to-a-user)
524
524
 
525
525
  ## Example Usage
526
526
 
@@ -551,10 +551,10 @@ class UserRunner(pulumi.CustomResource):
551
551
  session_timeout = 1800
552
552
 
553
553
  [[runners]]
554
- name = "my_gitlab_runner"
555
- url = "https://example.gitlab.com"
556
- token = "{token}"
557
- executor = "docker"
554
+ name = \\"my_gitlab_runner\\"
555
+ url = \\"https://example.gitlab.com\\"
556
+ token = \\"{token}\\"
557
+ executor = \\"docker\\"
558
558
 
559
559
  [runners.custom_build_dir]
560
560
  [runners.cache]
@@ -563,12 +563,12 @@ class UserRunner(pulumi.CustomResource):
563
563
  [runners.cache.azure]
564
564
  [runners.docker]
565
565
  tls_verify = false
566
- image = "ubuntu"
566
+ image = \\"ubuntu\\"
567
567
  privileged = true
568
568
  disable_entrypoint_overwrite = false
569
569
  oom_kill_disable = false
570
570
  disable_cache = false
571
- volumes = ["/cache", "/certs/client"]
571
+ volumes = [\\"/cache\\", \\"/certs/client\\"]
572
572
  shm_size = 0
573
573
  \"\"\")
574
574
  ```
@@ -204,7 +204,7 @@ class UserSshKey(pulumi.CustomResource):
204
204
  """
205
205
  The `UserSshKey` resource allows to manage the lifecycle of an SSH key assigned to a user.
206
206
 
207
- **Upstream API**: [GitLab API docs](https://docs.gitlab.com/api/users/#single-ssh-key)
207
+ **Upstream API**: [GitLab API docs](https://docs.gitlab.com/api/user_keys/#get-an-ssh-key-for-a-user)
208
208
 
209
209
  ## Example Usage
210
210
 
@@ -258,7 +258,7 @@ class UserSshKey(pulumi.CustomResource):
258
258
  """
259
259
  The `UserSshKey` resource allows to manage the lifecycle of an SSH key assigned to a user.
260
260
 
261
- **Upstream API**: [GitLab API docs](https://docs.gitlab.com/api/users/#single-ssh-key)
261
+ **Upstream API**: [GitLab API docs](https://docs.gitlab.com/api/user_keys/#get-an-ssh-key-for-a-user)
262
262
 
263
263
  ## Example Usage
264
264