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__ = ['ProjectDeployTokenArgs', 'ProjectDeployToken']
18
+
19
+ @pulumi.input_type
20
+ class ProjectDeployTokenArgs:
21
+ def __init__(__self__, *,
22
+ project: 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 ProjectDeployToken resource.
30
+ :param pulumi.Input[_builtins.str] project: The Id or full path of the project.
31
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] scopes: The scopes of the project 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__, "project", project)
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 project(self) -> pulumi.Input[_builtins.str]:
51
+ """
52
+ The Id or full path of the project.
53
+ """
54
+ return pulumi.get(self, "project")
55
+
56
+ @project.setter
57
+ def project(self, value: pulumi.Input[_builtins.str]):
58
+ pulumi.set(self, "project", 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 project 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 _ProjectDeployTokenState:
123
+ def __init__(__self__, *,
124
+ expired: Optional[pulumi.Input[_builtins.bool]] = None,
125
+ expires_at: Optional[pulumi.Input[_builtins.str]] = None,
126
+ name: Optional[pulumi.Input[_builtins.str]] = None,
127
+ project: 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 ProjectDeployToken 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] name: A name to describe the deploy token with.
138
+ :param pulumi.Input[_builtins.str] project: The Id or full path of the project.
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 project 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 name is not None:
150
+ pulumi.set(__self__, "name", name)
151
+ if project is not None:
152
+ pulumi.set(__self__, "project", project)
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 name(self) -> Optional[pulumi.Input[_builtins.str]]:
191
+ """
192
+ A name to describe the deploy token with.
193
+ """
194
+ return pulumi.get(self, "name")
195
+
196
+ @name.setter
197
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
198
+ pulumi.set(self, "name", value)
199
+
200
+ @_builtins.property
201
+ @pulumi.getter
202
+ def project(self) -> Optional[pulumi.Input[_builtins.str]]:
203
+ """
204
+ The Id or full path of the project.
205
+ """
206
+ return pulumi.get(self, "project")
207
+
208
+ @project.setter
209
+ def project(self, value: Optional[pulumi.Input[_builtins.str]]):
210
+ pulumi.set(self, "project", 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 project 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/projectDeployToken:ProjectDeployToken")
274
+ class ProjectDeployToken(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
+ name: Optional[pulumi.Input[_builtins.str]] = None,
281
+ project: 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 `ProjectDeployToken` resource allows you to manage the lifecycle of deploy tokens on a project.
288
+
289
+ **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/deploy_tokens/#project-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.ProjectDeployToken("example",
300
+ project="example/deploying",
301
+ name="Example project 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.ProjectDeployToken("example-two",
309
+ project="12345678",
310
+ name="Example project 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_project_deploy_token`. For example:
322
+
323
+ terraform
324
+
325
+ import {
326
+
327
+ to = gitlab_project_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 project deploy tokens can be imported using an id made up of `{project_id}:{deploy_token_id}`.
336
+
337
+ ```sh
338
+ $ pulumi import gitlab:index/projectDeployToken:ProjectDeployToken project_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] name: A name to describe the deploy token with.
347
+ :param pulumi.Input[_builtins.str] project: The Id or full path of the project.
348
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] scopes: The scopes of the project 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: ProjectDeployTokenArgs,
357
+ opts: Optional[pulumi.ResourceOptions] = None):
358
+ """
359
+ The `ProjectDeployToken` resource allows you to manage the lifecycle of deploy tokens on a project.
360
+
361
+ **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/deploy_tokens/#project-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.ProjectDeployToken("example",
372
+ project="example/deploying",
373
+ name="Example project 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.ProjectDeployToken("example-two",
381
+ project="12345678",
382
+ name="Example project 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_project_deploy_token`. For example:
394
+
395
+ terraform
396
+
397
+ import {
398
+
399
+ to = gitlab_project_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 project deploy tokens can be imported using an id made up of `{project_id}:{deploy_token_id}`.
408
+
409
+ ```sh
410
+ $ pulumi import gitlab:index/projectDeployToken:ProjectDeployToken project_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 ProjectDeployTokenArgs 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(ProjectDeployTokenArgs, 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
+ name: Optional[pulumi.Input[_builtins.str]] = None,
432
+ project: 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__ = ProjectDeployTokenArgs.__new__(ProjectDeployTokenArgs)
444
+
445
+ __props__.__dict__["expires_at"] = expires_at
446
+ __props__.__dict__["name"] = name
447
+ if project is None and not opts.urn:
448
+ raise TypeError("Missing required property 'project'")
449
+ __props__.__dict__["project"] = project
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(ProjectDeployToken, __self__).__init__(
461
+ 'gitlab:index/projectDeployToken:ProjectDeployToken',
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
+ name: Optional[pulumi.Input[_builtins.str]] = None,
473
+ project: 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) -> 'ProjectDeployToken':
479
+ """
480
+ Get an existing ProjectDeployToken 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] name: A name to describe the deploy token with.
489
+ :param pulumi.Input[_builtins.str] project: The Id or full path of the project.
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 project 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__ = _ProjectDeployTokenState.__new__(_ProjectDeployTokenState)
499
+
500
+ __props__.__dict__["expired"] = expired
501
+ __props__.__dict__["expires_at"] = expires_at
502
+ __props__.__dict__["name"] = name
503
+ __props__.__dict__["project"] = project
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 ProjectDeployToken(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 name(self) -> pulumi.Output[_builtins.str]:
530
+ """
531
+ A name to describe the deploy token with.
532
+ """
533
+ return pulumi.get(self, "name")
534
+
535
+ @_builtins.property
536
+ @pulumi.getter
537
+ def project(self) -> pulumi.Output[_builtins.str]:
538
+ """
539
+ The Id or full path of the project.
540
+ """
541
+ return pulumi.get(self, "project")
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 project 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
+
@@ -715,7 +715,7 @@ class ProjectEnvironment(pulumi.CustomResource):
715
715
 
716
716
  @_builtins.property
717
717
  @pulumi.getter(name="externalUrl")
718
- def external_url(self) -> pulumi.Output[Optional[_builtins.str]]:
718
+ def external_url(self) -> pulumi.Output[_builtins.str]:
719
719
  """
720
720
  Place to link to for this environment.
721
721
  """
@@ -723,7 +723,7 @@ class ProjectEnvironment(pulumi.CustomResource):
723
723
 
724
724
  @_builtins.property
725
725
  @pulumi.getter(name="fluxResourcePath")
726
- def flux_resource_path(self) -> pulumi.Output[Optional[_builtins.str]]:
726
+ def flux_resource_path(self) -> pulumi.Output[_builtins.str]:
727
727
  """
728
728
  The Flux resource path to associate with this environment.
729
729
  """
@@ -731,7 +731,7 @@ class ProjectEnvironment(pulumi.CustomResource):
731
731
 
732
732
  @_builtins.property
733
733
  @pulumi.getter(name="kubernetesNamespace")
734
- def kubernetes_namespace(self) -> pulumi.Output[Optional[_builtins.str]]:
734
+ def kubernetes_namespace(self) -> pulumi.Output[_builtins.str]:
735
735
  """
736
736
  The Kubernetes namespace to associate with this environment.
737
737
  """
@@ -771,7 +771,7 @@ class ProjectEnvironment(pulumi.CustomResource):
771
771
 
772
772
  @_builtins.property
773
773
  @pulumi.getter(name="stopBeforeDestroy")
774
- def stop_before_destroy(self) -> pulumi.Output[Optional[_builtins.bool]]:
774
+ def stop_before_destroy(self) -> pulumi.Output[_builtins.bool]:
775
775
  """
776
776
  Determines whether the environment is attempted to be stopped before the environment is deleted. If `auto_stop_setting` is set to `with_action`, this will perform a force stop.
777
777
  """