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,582 @@
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__ = ['GroupDeployTokenArgs', 'GroupDeployToken']
18
+
19
+ @pulumi.input_type
20
+ class GroupDeployTokenArgs:
21
+ def __init__(__self__, *,
22
+ group: pulumi.Input[_builtins.str],
23
+ scopes: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]],
24
+ expires_at: Optional[pulumi.Input[_builtins.str]] = None,
25
+ name: Optional[pulumi.Input[_builtins.str]] = None,
26
+ username: Optional[pulumi.Input[_builtins.str]] = None,
27
+ validate_past_expiration_date: Optional[pulumi.Input[_builtins.bool]] = None):
28
+ """
29
+ The set of arguments for constructing a GroupDeployToken resource.
30
+ :param pulumi.Input[_builtins.str] group: The Id or full path of the group.
31
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] scopes: The scopes of the group deploy token. Valid values are: `read_repository`, `read_registry`, `write_registry`, `read_virtual_registry`, `write_virtual_registry`, `read_package_registry`, `write_package_registry`
32
+ :param pulumi.Input[_builtins.str] expires_at: Time the token expires in RFC3339 format. Not set by default.
33
+ :param pulumi.Input[_builtins.str] name: A name to describe the deploy token with.
34
+ :param pulumi.Input[_builtins.str] username: A username for the deploy token. Default is `gitlab+deploy-token-{n}`.
35
+ :param pulumi.Input[_builtins.bool] validate_past_expiration_date: Wether to validate if the expiration date is in the future.
36
+ """
37
+ pulumi.set(__self__, "group", group)
38
+ pulumi.set(__self__, "scopes", scopes)
39
+ if expires_at is not None:
40
+ pulumi.set(__self__, "expires_at", expires_at)
41
+ if name is not None:
42
+ pulumi.set(__self__, "name", name)
43
+ if username is not None:
44
+ pulumi.set(__self__, "username", username)
45
+ if validate_past_expiration_date is not None:
46
+ pulumi.set(__self__, "validate_past_expiration_date", validate_past_expiration_date)
47
+
48
+ @_builtins.property
49
+ @pulumi.getter
50
+ def group(self) -> pulumi.Input[_builtins.str]:
51
+ """
52
+ The Id or full path of the group.
53
+ """
54
+ return pulumi.get(self, "group")
55
+
56
+ @group.setter
57
+ def group(self, value: pulumi.Input[_builtins.str]):
58
+ pulumi.set(self, "group", value)
59
+
60
+ @_builtins.property
61
+ @pulumi.getter
62
+ def scopes(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]:
63
+ """
64
+ The scopes of the group deploy token. Valid values are: `read_repository`, `read_registry`, `write_registry`, `read_virtual_registry`, `write_virtual_registry`, `read_package_registry`, `write_package_registry`
65
+ """
66
+ return pulumi.get(self, "scopes")
67
+
68
+ @scopes.setter
69
+ def scopes(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]):
70
+ pulumi.set(self, "scopes", value)
71
+
72
+ @_builtins.property
73
+ @pulumi.getter(name="expiresAt")
74
+ def expires_at(self) -> Optional[pulumi.Input[_builtins.str]]:
75
+ """
76
+ Time the token expires in RFC3339 format. Not set by default.
77
+ """
78
+ return pulumi.get(self, "expires_at")
79
+
80
+ @expires_at.setter
81
+ def expires_at(self, value: Optional[pulumi.Input[_builtins.str]]):
82
+ pulumi.set(self, "expires_at", value)
83
+
84
+ @_builtins.property
85
+ @pulumi.getter
86
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
87
+ """
88
+ A name to describe the deploy token with.
89
+ """
90
+ return pulumi.get(self, "name")
91
+
92
+ @name.setter
93
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
94
+ pulumi.set(self, "name", value)
95
+
96
+ @_builtins.property
97
+ @pulumi.getter
98
+ def username(self) -> Optional[pulumi.Input[_builtins.str]]:
99
+ """
100
+ A username for the deploy token. Default is `gitlab+deploy-token-{n}`.
101
+ """
102
+ return pulumi.get(self, "username")
103
+
104
+ @username.setter
105
+ def username(self, value: Optional[pulumi.Input[_builtins.str]]):
106
+ pulumi.set(self, "username", value)
107
+
108
+ @_builtins.property
109
+ @pulumi.getter(name="validatePastExpirationDate")
110
+ def validate_past_expiration_date(self) -> Optional[pulumi.Input[_builtins.bool]]:
111
+ """
112
+ Wether to validate if the expiration date is in the future.
113
+ """
114
+ return pulumi.get(self, "validate_past_expiration_date")
115
+
116
+ @validate_past_expiration_date.setter
117
+ def validate_past_expiration_date(self, value: Optional[pulumi.Input[_builtins.bool]]):
118
+ pulumi.set(self, "validate_past_expiration_date", value)
119
+
120
+
121
+ @pulumi.input_type
122
+ class _GroupDeployTokenState:
123
+ def __init__(__self__, *,
124
+ expired: Optional[pulumi.Input[_builtins.bool]] = None,
125
+ expires_at: Optional[pulumi.Input[_builtins.str]] = None,
126
+ group: Optional[pulumi.Input[_builtins.str]] = None,
127
+ name: Optional[pulumi.Input[_builtins.str]] = None,
128
+ revoked: Optional[pulumi.Input[_builtins.bool]] = None,
129
+ scopes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
130
+ token: Optional[pulumi.Input[_builtins.str]] = None,
131
+ username: Optional[pulumi.Input[_builtins.str]] = None,
132
+ validate_past_expiration_date: Optional[pulumi.Input[_builtins.bool]] = None):
133
+ """
134
+ Input properties used for looking up and filtering GroupDeployToken resources.
135
+ :param pulumi.Input[_builtins.bool] expired: True if the token is expired.
136
+ :param pulumi.Input[_builtins.str] expires_at: Time the token expires in RFC3339 format. Not set by default.
137
+ :param pulumi.Input[_builtins.str] group: The Id or full path of the group.
138
+ :param pulumi.Input[_builtins.str] name: A name to describe the deploy token with.
139
+ :param pulumi.Input[_builtins.bool] revoked: True if the token is revoked.
140
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] scopes: The scopes of the group deploy token. Valid values are: `read_repository`, `read_registry`, `write_registry`, `read_virtual_registry`, `write_virtual_registry`, `read_package_registry`, `write_package_registry`
141
+ :param pulumi.Input[_builtins.str] token: The secret token. This is only populated when creating a new deploy token. **Note**: The token is not available for imported resources.
142
+ :param pulumi.Input[_builtins.str] username: A username for the deploy token. Default is `gitlab+deploy-token-{n}`.
143
+ :param pulumi.Input[_builtins.bool] validate_past_expiration_date: Wether to validate if the expiration date is in the future.
144
+ """
145
+ if expired is not None:
146
+ pulumi.set(__self__, "expired", expired)
147
+ if expires_at is not None:
148
+ pulumi.set(__self__, "expires_at", expires_at)
149
+ if group is not None:
150
+ pulumi.set(__self__, "group", group)
151
+ if name is not None:
152
+ pulumi.set(__self__, "name", name)
153
+ if revoked is not None:
154
+ pulumi.set(__self__, "revoked", revoked)
155
+ if scopes is not None:
156
+ pulumi.set(__self__, "scopes", scopes)
157
+ if token is not None:
158
+ pulumi.set(__self__, "token", token)
159
+ if username is not None:
160
+ pulumi.set(__self__, "username", username)
161
+ if validate_past_expiration_date is not None:
162
+ pulumi.set(__self__, "validate_past_expiration_date", validate_past_expiration_date)
163
+
164
+ @_builtins.property
165
+ @pulumi.getter
166
+ def expired(self) -> Optional[pulumi.Input[_builtins.bool]]:
167
+ """
168
+ True if the token is expired.
169
+ """
170
+ return pulumi.get(self, "expired")
171
+
172
+ @expired.setter
173
+ def expired(self, value: Optional[pulumi.Input[_builtins.bool]]):
174
+ pulumi.set(self, "expired", value)
175
+
176
+ @_builtins.property
177
+ @pulumi.getter(name="expiresAt")
178
+ def expires_at(self) -> Optional[pulumi.Input[_builtins.str]]:
179
+ """
180
+ Time the token expires in RFC3339 format. Not set by default.
181
+ """
182
+ return pulumi.get(self, "expires_at")
183
+
184
+ @expires_at.setter
185
+ def expires_at(self, value: Optional[pulumi.Input[_builtins.str]]):
186
+ pulumi.set(self, "expires_at", value)
187
+
188
+ @_builtins.property
189
+ @pulumi.getter
190
+ def group(self) -> Optional[pulumi.Input[_builtins.str]]:
191
+ """
192
+ The Id or full path of the group.
193
+ """
194
+ return pulumi.get(self, "group")
195
+
196
+ @group.setter
197
+ def group(self, value: Optional[pulumi.Input[_builtins.str]]):
198
+ pulumi.set(self, "group", value)
199
+
200
+ @_builtins.property
201
+ @pulumi.getter
202
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
203
+ """
204
+ A name to describe the deploy token with.
205
+ """
206
+ return pulumi.get(self, "name")
207
+
208
+ @name.setter
209
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
210
+ pulumi.set(self, "name", value)
211
+
212
+ @_builtins.property
213
+ @pulumi.getter
214
+ def revoked(self) -> Optional[pulumi.Input[_builtins.bool]]:
215
+ """
216
+ True if the token is revoked.
217
+ """
218
+ return pulumi.get(self, "revoked")
219
+
220
+ @revoked.setter
221
+ def revoked(self, value: Optional[pulumi.Input[_builtins.bool]]):
222
+ pulumi.set(self, "revoked", value)
223
+
224
+ @_builtins.property
225
+ @pulumi.getter
226
+ def scopes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
227
+ """
228
+ The scopes of the group deploy token. Valid values are: `read_repository`, `read_registry`, `write_registry`, `read_virtual_registry`, `write_virtual_registry`, `read_package_registry`, `write_package_registry`
229
+ """
230
+ return pulumi.get(self, "scopes")
231
+
232
+ @scopes.setter
233
+ def scopes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
234
+ pulumi.set(self, "scopes", value)
235
+
236
+ @_builtins.property
237
+ @pulumi.getter
238
+ def token(self) -> Optional[pulumi.Input[_builtins.str]]:
239
+ """
240
+ The secret token. This is only populated when creating a new deploy token. **Note**: The token is not available for imported resources.
241
+ """
242
+ return pulumi.get(self, "token")
243
+
244
+ @token.setter
245
+ def token(self, value: Optional[pulumi.Input[_builtins.str]]):
246
+ pulumi.set(self, "token", value)
247
+
248
+ @_builtins.property
249
+ @pulumi.getter
250
+ def username(self) -> Optional[pulumi.Input[_builtins.str]]:
251
+ """
252
+ A username for the deploy token. Default is `gitlab+deploy-token-{n}`.
253
+ """
254
+ return pulumi.get(self, "username")
255
+
256
+ @username.setter
257
+ def username(self, value: Optional[pulumi.Input[_builtins.str]]):
258
+ pulumi.set(self, "username", value)
259
+
260
+ @_builtins.property
261
+ @pulumi.getter(name="validatePastExpirationDate")
262
+ def validate_past_expiration_date(self) -> Optional[pulumi.Input[_builtins.bool]]:
263
+ """
264
+ Wether to validate if the expiration date is in the future.
265
+ """
266
+ return pulumi.get(self, "validate_past_expiration_date")
267
+
268
+ @validate_past_expiration_date.setter
269
+ def validate_past_expiration_date(self, value: Optional[pulumi.Input[_builtins.bool]]):
270
+ pulumi.set(self, "validate_past_expiration_date", value)
271
+
272
+
273
+ @pulumi.type_token("gitlab:index/groupDeployToken:GroupDeployToken")
274
+ class GroupDeployToken(pulumi.CustomResource):
275
+ @overload
276
+ def __init__(__self__,
277
+ resource_name: str,
278
+ opts: Optional[pulumi.ResourceOptions] = None,
279
+ expires_at: Optional[pulumi.Input[_builtins.str]] = None,
280
+ group: Optional[pulumi.Input[_builtins.str]] = None,
281
+ name: Optional[pulumi.Input[_builtins.str]] = None,
282
+ scopes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
283
+ username: Optional[pulumi.Input[_builtins.str]] = None,
284
+ validate_past_expiration_date: Optional[pulumi.Input[_builtins.bool]] = None,
285
+ __props__=None):
286
+ """
287
+ The `GroupDeployToken` resource allows you to manage the lifecycle of deploy tokens on a group.
288
+
289
+ **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/deploy_tokens/)
290
+
291
+ ## Example Usage
292
+
293
+ ```python
294
+ import pulumi
295
+ import pulumi_gitlab as gitlab
296
+ import pulumi_std as std
297
+
298
+ # Example Usage
299
+ example = gitlab.GroupDeployToken("example",
300
+ group="example/deploying",
301
+ name="Example group deploy token",
302
+ username="example-username",
303
+ expires_at="2020-03-14T00:00:00.000Z",
304
+ scopes=[
305
+ "read_repository",
306
+ "read_registry",
307
+ ])
308
+ example_two = gitlab.GroupDeployToken("example-two",
309
+ group="12345678",
310
+ name="Example group deploy token expires in 24h",
311
+ expires_at=std.timeadd(duration=std.timestamp().result,
312
+ timestamp="24h").result,
313
+ scopes=[
314
+ "read_repository",
315
+ "read_registry",
316
+ ])
317
+ ```
318
+
319
+ ## Import
320
+
321
+ Starting in Terraform v1.5.0, you can use an import block to import `gitlab_group_deploy_token`. For example:
322
+
323
+ terraform
324
+
325
+ import {
326
+
327
+ to = gitlab_group_deploy_token.example
328
+
329
+ id = "see CLI command below for ID"
330
+
331
+ }
332
+
333
+ Importing using the CLI is supported with the following syntax:
334
+
335
+ GitLab group deploy tokens can be imported using an id made up of `{group_id}:{deploy_token_id}`.
336
+
337
+ ```sh
338
+ $ pulumi import gitlab:index/groupDeployToken:GroupDeployToken group_token 1:4
339
+ ```
340
+
341
+ Note: the `token` resource attribute is not available for imported resources as this information cannot be read from the GitLab API.
342
+
343
+ :param str resource_name: The name of the resource.
344
+ :param pulumi.ResourceOptions opts: Options for the resource.
345
+ :param pulumi.Input[_builtins.str] expires_at: Time the token expires in RFC3339 format. Not set by default.
346
+ :param pulumi.Input[_builtins.str] group: The Id or full path of the group.
347
+ :param pulumi.Input[_builtins.str] name: A name to describe the deploy token with.
348
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] scopes: The scopes of the group deploy token. Valid values are: `read_repository`, `read_registry`, `write_registry`, `read_virtual_registry`, `write_virtual_registry`, `read_package_registry`, `write_package_registry`
349
+ :param pulumi.Input[_builtins.str] username: A username for the deploy token. Default is `gitlab+deploy-token-{n}`.
350
+ :param pulumi.Input[_builtins.bool] validate_past_expiration_date: Wether to validate if the expiration date is in the future.
351
+ """
352
+ ...
353
+ @overload
354
+ def __init__(__self__,
355
+ resource_name: str,
356
+ args: GroupDeployTokenArgs,
357
+ opts: Optional[pulumi.ResourceOptions] = None):
358
+ """
359
+ The `GroupDeployToken` resource allows you to manage the lifecycle of deploy tokens on a group.
360
+
361
+ **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/deploy_tokens/)
362
+
363
+ ## Example Usage
364
+
365
+ ```python
366
+ import pulumi
367
+ import pulumi_gitlab as gitlab
368
+ import pulumi_std as std
369
+
370
+ # Example Usage
371
+ example = gitlab.GroupDeployToken("example",
372
+ group="example/deploying",
373
+ name="Example group deploy token",
374
+ username="example-username",
375
+ expires_at="2020-03-14T00:00:00.000Z",
376
+ scopes=[
377
+ "read_repository",
378
+ "read_registry",
379
+ ])
380
+ example_two = gitlab.GroupDeployToken("example-two",
381
+ group="12345678",
382
+ name="Example group deploy token expires in 24h",
383
+ expires_at=std.timeadd(duration=std.timestamp().result,
384
+ timestamp="24h").result,
385
+ scopes=[
386
+ "read_repository",
387
+ "read_registry",
388
+ ])
389
+ ```
390
+
391
+ ## Import
392
+
393
+ Starting in Terraform v1.5.0, you can use an import block to import `gitlab_group_deploy_token`. For example:
394
+
395
+ terraform
396
+
397
+ import {
398
+
399
+ to = gitlab_group_deploy_token.example
400
+
401
+ id = "see CLI command below for ID"
402
+
403
+ }
404
+
405
+ Importing using the CLI is supported with the following syntax:
406
+
407
+ GitLab group deploy tokens can be imported using an id made up of `{group_id}:{deploy_token_id}`.
408
+
409
+ ```sh
410
+ $ pulumi import gitlab:index/groupDeployToken:GroupDeployToken group_token 1:4
411
+ ```
412
+
413
+ Note: the `token` resource attribute is not available for imported resources as this information cannot be read from the GitLab API.
414
+
415
+ :param str resource_name: The name of the resource.
416
+ :param GroupDeployTokenArgs args: The arguments to use to populate this resource's properties.
417
+ :param pulumi.ResourceOptions opts: Options for the resource.
418
+ """
419
+ ...
420
+ def __init__(__self__, resource_name: str, *args, **kwargs):
421
+ resource_args, opts = _utilities.get_resource_args_opts(GroupDeployTokenArgs, pulumi.ResourceOptions, *args, **kwargs)
422
+ if resource_args is not None:
423
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
424
+ else:
425
+ __self__._internal_init(resource_name, *args, **kwargs)
426
+
427
+ def _internal_init(__self__,
428
+ resource_name: str,
429
+ opts: Optional[pulumi.ResourceOptions] = None,
430
+ expires_at: Optional[pulumi.Input[_builtins.str]] = None,
431
+ group: Optional[pulumi.Input[_builtins.str]] = None,
432
+ name: Optional[pulumi.Input[_builtins.str]] = None,
433
+ scopes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
434
+ username: Optional[pulumi.Input[_builtins.str]] = None,
435
+ validate_past_expiration_date: Optional[pulumi.Input[_builtins.bool]] = None,
436
+ __props__=None):
437
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
438
+ if not isinstance(opts, pulumi.ResourceOptions):
439
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
440
+ if opts.id is None:
441
+ if __props__ is not None:
442
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
443
+ __props__ = GroupDeployTokenArgs.__new__(GroupDeployTokenArgs)
444
+
445
+ __props__.__dict__["expires_at"] = expires_at
446
+ if group is None and not opts.urn:
447
+ raise TypeError("Missing required property 'group'")
448
+ __props__.__dict__["group"] = group
449
+ __props__.__dict__["name"] = name
450
+ if scopes is None and not opts.urn:
451
+ raise TypeError("Missing required property 'scopes'")
452
+ __props__.__dict__["scopes"] = scopes
453
+ __props__.__dict__["username"] = username
454
+ __props__.__dict__["validate_past_expiration_date"] = validate_past_expiration_date
455
+ __props__.__dict__["expired"] = None
456
+ __props__.__dict__["revoked"] = None
457
+ __props__.__dict__["token"] = None
458
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["token"])
459
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
460
+ super(GroupDeployToken, __self__).__init__(
461
+ 'gitlab:index/groupDeployToken:GroupDeployToken',
462
+ resource_name,
463
+ __props__,
464
+ opts)
465
+
466
+ @staticmethod
467
+ def get(resource_name: str,
468
+ id: pulumi.Input[str],
469
+ opts: Optional[pulumi.ResourceOptions] = None,
470
+ expired: Optional[pulumi.Input[_builtins.bool]] = None,
471
+ expires_at: Optional[pulumi.Input[_builtins.str]] = None,
472
+ group: Optional[pulumi.Input[_builtins.str]] = None,
473
+ name: Optional[pulumi.Input[_builtins.str]] = None,
474
+ revoked: Optional[pulumi.Input[_builtins.bool]] = None,
475
+ scopes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
476
+ token: Optional[pulumi.Input[_builtins.str]] = None,
477
+ username: Optional[pulumi.Input[_builtins.str]] = None,
478
+ validate_past_expiration_date: Optional[pulumi.Input[_builtins.bool]] = None) -> 'GroupDeployToken':
479
+ """
480
+ Get an existing GroupDeployToken resource's state with the given name, id, and optional extra
481
+ properties used to qualify the lookup.
482
+
483
+ :param str resource_name: The unique name of the resulting resource.
484
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
485
+ :param pulumi.ResourceOptions opts: Options for the resource.
486
+ :param pulumi.Input[_builtins.bool] expired: True if the token is expired.
487
+ :param pulumi.Input[_builtins.str] expires_at: Time the token expires in RFC3339 format. Not set by default.
488
+ :param pulumi.Input[_builtins.str] group: The Id or full path of the group.
489
+ :param pulumi.Input[_builtins.str] name: A name to describe the deploy token with.
490
+ :param pulumi.Input[_builtins.bool] revoked: True if the token is revoked.
491
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] scopes: The scopes of the group deploy token. Valid values are: `read_repository`, `read_registry`, `write_registry`, `read_virtual_registry`, `write_virtual_registry`, `read_package_registry`, `write_package_registry`
492
+ :param pulumi.Input[_builtins.str] token: The secret token. This is only populated when creating a new deploy token. **Note**: The token is not available for imported resources.
493
+ :param pulumi.Input[_builtins.str] username: A username for the deploy token. Default is `gitlab+deploy-token-{n}`.
494
+ :param pulumi.Input[_builtins.bool] validate_past_expiration_date: Wether to validate if the expiration date is in the future.
495
+ """
496
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
497
+
498
+ __props__ = _GroupDeployTokenState.__new__(_GroupDeployTokenState)
499
+
500
+ __props__.__dict__["expired"] = expired
501
+ __props__.__dict__["expires_at"] = expires_at
502
+ __props__.__dict__["group"] = group
503
+ __props__.__dict__["name"] = name
504
+ __props__.__dict__["revoked"] = revoked
505
+ __props__.__dict__["scopes"] = scopes
506
+ __props__.__dict__["token"] = token
507
+ __props__.__dict__["username"] = username
508
+ __props__.__dict__["validate_past_expiration_date"] = validate_past_expiration_date
509
+ return GroupDeployToken(resource_name, opts=opts, __props__=__props__)
510
+
511
+ @_builtins.property
512
+ @pulumi.getter
513
+ def expired(self) -> pulumi.Output[_builtins.bool]:
514
+ """
515
+ True if the token is expired.
516
+ """
517
+ return pulumi.get(self, "expired")
518
+
519
+ @_builtins.property
520
+ @pulumi.getter(name="expiresAt")
521
+ def expires_at(self) -> pulumi.Output[_builtins.str]:
522
+ """
523
+ Time the token expires in RFC3339 format. Not set by default.
524
+ """
525
+ return pulumi.get(self, "expires_at")
526
+
527
+ @_builtins.property
528
+ @pulumi.getter
529
+ def group(self) -> pulumi.Output[_builtins.str]:
530
+ """
531
+ The Id or full path of the group.
532
+ """
533
+ return pulumi.get(self, "group")
534
+
535
+ @_builtins.property
536
+ @pulumi.getter
537
+ def name(self) -> pulumi.Output[_builtins.str]:
538
+ """
539
+ A name to describe the deploy token with.
540
+ """
541
+ return pulumi.get(self, "name")
542
+
543
+ @_builtins.property
544
+ @pulumi.getter
545
+ def revoked(self) -> pulumi.Output[_builtins.bool]:
546
+ """
547
+ True if the token is revoked.
548
+ """
549
+ return pulumi.get(self, "revoked")
550
+
551
+ @_builtins.property
552
+ @pulumi.getter
553
+ def scopes(self) -> pulumi.Output[Sequence[_builtins.str]]:
554
+ """
555
+ The scopes of the group deploy token. Valid values are: `read_repository`, `read_registry`, `write_registry`, `read_virtual_registry`, `write_virtual_registry`, `read_package_registry`, `write_package_registry`
556
+ """
557
+ return pulumi.get(self, "scopes")
558
+
559
+ @_builtins.property
560
+ @pulumi.getter
561
+ def token(self) -> pulumi.Output[_builtins.str]:
562
+ """
563
+ The secret token. This is only populated when creating a new deploy token. **Note**: The token is not available for imported resources.
564
+ """
565
+ return pulumi.get(self, "token")
566
+
567
+ @_builtins.property
568
+ @pulumi.getter
569
+ def username(self) -> pulumi.Output[_builtins.str]:
570
+ """
571
+ A username for the deploy token. Default is `gitlab+deploy-token-{n}`.
572
+ """
573
+ return pulumi.get(self, "username")
574
+
575
+ @_builtins.property
576
+ @pulumi.getter(name="validatePastExpirationDate")
577
+ def validate_past_expiration_date(self) -> pulumi.Output[_builtins.bool]:
578
+ """
579
+ Wether to validate if the expiration date is in the future.
580
+ """
581
+ return pulumi.get(self, "validate_past_expiration_date")
582
+