pulumi-gitlab 9.5.0a1761172288__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.
- pulumi_gitlab/__init__.py +69 -0
- pulumi_gitlab/_inputs.py +557 -0
- pulumi_gitlab/branch.py +1 -1
- pulumi_gitlab/deploy_key_enable.py +4 -42
- pulumi_gitlab/get_artifact_file.py +266 -0
- pulumi_gitlab/get_group_billable_member_memberships.py +2 -2
- pulumi_gitlab/get_group_hook.py +15 -1
- pulumi_gitlab/get_group_membership.py +2 -2
- pulumi_gitlab/get_group_service_account.py +2 -2
- pulumi_gitlab/get_group_service_account_access_tokens.py +138 -0
- pulumi_gitlab/get_group_variable.py +1 -1
- pulumi_gitlab/get_instance_service_account.py +2 -2
- pulumi_gitlab/get_member_role.py +200 -0
- pulumi_gitlab/get_project.py +15 -1
- pulumi_gitlab/get_project_hook.py +17 -3
- pulumi_gitlab/get_project_issue_label_events.py +170 -0
- pulumi_gitlab/get_project_membership.py +2 -2
- pulumi_gitlab/get_project_protected_tag.py +2 -2
- pulumi_gitlab/get_project_secure_file.py +247 -0
- pulumi_gitlab/get_project_tag.py +2 -2
- pulumi_gitlab/get_project_tags.py +1 -1
- pulumi_gitlab/get_projects.py +3 -3
- pulumi_gitlab/get_release_link.py +5 -5
- pulumi_gitlab/get_release_links.py +3 -3
- pulumi_gitlab/get_security_policy_document.py +170 -0
- pulumi_gitlab/get_user.py +32 -0
- pulumi_gitlab/global_level_notifications.py +2 -2
- pulumi_gitlab/group.py +141 -0
- pulumi_gitlab/group_access_token.py +4 -4
- pulumi_gitlab/group_hook.py +163 -112
- pulumi_gitlab/group_label.py +7 -7
- pulumi_gitlab/group_level_mr_approvals.py +36 -0
- pulumi_gitlab/group_membership.py +2 -2
- pulumi_gitlab/group_service_account.py +2 -2
- pulumi_gitlab/group_service_account_access_token.py +92 -2
- pulumi_gitlab/group_share_group.py +2 -2
- pulumi_gitlab/instance_service_account.py +2 -2
- pulumi_gitlab/instance_variable.py +12 -12
- pulumi_gitlab/integration_emails_on_push.py +9 -7
- pulumi_gitlab/label.py +7 -7
- pulumi_gitlab/member_role.py +9 -9
- pulumi_gitlab/outputs.py +851 -15
- pulumi_gitlab/pages_domain.py +7 -7
- pulumi_gitlab/personal_access_token.py +2 -2
- pulumi_gitlab/pipeline_schedule_variable.py +2 -2
- pulumi_gitlab/project.py +54 -7
- pulumi_gitlab/project_access_token.py +2 -2
- pulumi_gitlab/project_approval_rule.py +120 -0
- pulumi_gitlab/project_cicd_catalog.py +314 -0
- pulumi_gitlab/project_deploy_token.py +2 -2
- pulumi_gitlab/project_hook.py +155 -102
- pulumi_gitlab/project_integration_emails_on_push.py +17 -7
- pulumi_gitlab/project_issue_link.py +502 -0
- pulumi_gitlab/project_job_token_scope.py +24 -4
- pulumi_gitlab/project_label.py +11 -11
- pulumi_gitlab/project_level_mr_approvals.py +2 -2
- pulumi_gitlab/project_level_notifications.py +2 -2
- pulumi_gitlab/project_membership.py +2 -2
- pulumi_gitlab/project_mirror.py +8 -6
- pulumi_gitlab/project_package_dependency_proxy.py +446 -0
- pulumi_gitlab/project_pull_mirror.py +837 -0
- pulumi_gitlab/project_push_mirror.py +547 -0
- pulumi_gitlab/project_secure_file.py +489 -0
- pulumi_gitlab/project_tag.py +3 -3
- pulumi_gitlab/project_target_branch_rule.py +2 -2
- pulumi_gitlab/project_variable.py +7 -7
- pulumi_gitlab/project_wiki_page.py +26 -0
- pulumi_gitlab/pulumi-plugin.json +1 -1
- pulumi_gitlab/release_link.py +19 -19
- pulumi_gitlab/runner.py +4 -4
- pulumi_gitlab/system_hook.py +7 -7
- pulumi_gitlab/user_avatar.py +386 -0
- pulumi_gitlab/user_gpg_key.py +2 -2
- pulumi_gitlab/user_impersonation_token.py +2 -2
- pulumi_gitlab/user_runner.py +14 -14
- pulumi_gitlab/user_ssh_key.py +2 -2
- pulumi_gitlab/value_stream_analytics.py +88 -0
- {pulumi_gitlab-9.5.0a1761172288.dist-info → pulumi_gitlab-9.8.1.dist-info}/METADATA +1 -1
- {pulumi_gitlab-9.5.0a1761172288.dist-info → pulumi_gitlab-9.8.1.dist-info}/RECORD +81 -68
- {pulumi_gitlab-9.5.0a1761172288.dist-info → pulumi_gitlab-9.8.1.dist-info}/WHEEL +0 -0
- {pulumi_gitlab-9.5.0a1761172288.dist-info → pulumi_gitlab-9.8.1.dist-info}/top_level.txt +0 -0
|
@@ -365,7 +365,12 @@ class ProjectIntegrationEmailsOnPush(pulumi.CustomResource):
|
|
|
365
365
|
visibility_level="public")
|
|
366
366
|
emails = gitlab.ProjectIntegrationEmailsOnPush("emails",
|
|
367
367
|
project=awesome_project.id,
|
|
368
|
-
recipients="myrecipient@example.com myotherrecipient@example.com"
|
|
368
|
+
recipients="myrecipient@example.com myotherrecipient@example.com",
|
|
369
|
+
disable_diffs=False,
|
|
370
|
+
send_from_committer_email=False,
|
|
371
|
+
push_events=True,
|
|
372
|
+
tag_push_events=True,
|
|
373
|
+
branches_to_be_notified="all")
|
|
369
374
|
```
|
|
370
375
|
|
|
371
376
|
## Import
|
|
@@ -423,7 +428,12 @@ class ProjectIntegrationEmailsOnPush(pulumi.CustomResource):
|
|
|
423
428
|
visibility_level="public")
|
|
424
429
|
emails = gitlab.ProjectIntegrationEmailsOnPush("emails",
|
|
425
430
|
project=awesome_project.id,
|
|
426
|
-
recipients="myrecipient@example.com myotherrecipient@example.com"
|
|
431
|
+
recipients="myrecipient@example.com myotherrecipient@example.com",
|
|
432
|
+
disable_diffs=False,
|
|
433
|
+
send_from_committer_email=False,
|
|
434
|
+
push_events=True,
|
|
435
|
+
tag_push_events=True,
|
|
436
|
+
branches_to_be_notified="all")
|
|
427
437
|
```
|
|
428
438
|
|
|
429
439
|
## Import
|
|
@@ -565,7 +575,7 @@ class ProjectIntegrationEmailsOnPush(pulumi.CustomResource):
|
|
|
565
575
|
|
|
566
576
|
@_builtins.property
|
|
567
577
|
@pulumi.getter(name="branchesToBeNotified")
|
|
568
|
-
def branches_to_be_notified(self) -> pulumi.Output[
|
|
578
|
+
def branches_to_be_notified(self) -> pulumi.Output[_builtins.str]:
|
|
569
579
|
"""
|
|
570
580
|
Branches to send notifications for. Valid options are `all`, `default`, `protected`, `default_and_protected`. Notifications are always fired for tag pushes.
|
|
571
581
|
"""
|
|
@@ -581,7 +591,7 @@ class ProjectIntegrationEmailsOnPush(pulumi.CustomResource):
|
|
|
581
591
|
|
|
582
592
|
@_builtins.property
|
|
583
593
|
@pulumi.getter(name="disableDiffs")
|
|
584
|
-
def disable_diffs(self) -> pulumi.Output[
|
|
594
|
+
def disable_diffs(self) -> pulumi.Output[_builtins.bool]:
|
|
585
595
|
"""
|
|
586
596
|
Disable code diffs.
|
|
587
597
|
"""
|
|
@@ -597,7 +607,7 @@ class ProjectIntegrationEmailsOnPush(pulumi.CustomResource):
|
|
|
597
607
|
|
|
598
608
|
@_builtins.property
|
|
599
609
|
@pulumi.getter(name="pushEvents")
|
|
600
|
-
def push_events(self) -> pulumi.Output[
|
|
610
|
+
def push_events(self) -> pulumi.Output[_builtins.bool]:
|
|
601
611
|
"""
|
|
602
612
|
Enable notifications for push events.
|
|
603
613
|
"""
|
|
@@ -613,7 +623,7 @@ class ProjectIntegrationEmailsOnPush(pulumi.CustomResource):
|
|
|
613
623
|
|
|
614
624
|
@_builtins.property
|
|
615
625
|
@pulumi.getter(name="sendFromCommitterEmail")
|
|
616
|
-
def send_from_committer_email(self) -> pulumi.Output[
|
|
626
|
+
def send_from_committer_email(self) -> pulumi.Output[_builtins.bool]:
|
|
617
627
|
"""
|
|
618
628
|
Send from committer.
|
|
619
629
|
"""
|
|
@@ -629,7 +639,7 @@ class ProjectIntegrationEmailsOnPush(pulumi.CustomResource):
|
|
|
629
639
|
|
|
630
640
|
@_builtins.property
|
|
631
641
|
@pulumi.getter(name="tagPushEvents")
|
|
632
|
-
def tag_push_events(self) -> pulumi.Output[
|
|
642
|
+
def tag_push_events(self) -> pulumi.Output[_builtins.bool]:
|
|
633
643
|
"""
|
|
634
644
|
Enable notifications for tag push events.
|
|
635
645
|
"""
|
|
@@ -0,0 +1,502 @@
|
|
|
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__ = ['ProjectIssueLinkArgs', 'ProjectIssueLink']
|
|
18
|
+
|
|
19
|
+
@pulumi.input_type
|
|
20
|
+
class ProjectIssueLinkArgs:
|
|
21
|
+
def __init__(__self__, *,
|
|
22
|
+
issue_iid: pulumi.Input[_builtins.int],
|
|
23
|
+
link_type: pulumi.Input[_builtins.str],
|
|
24
|
+
project: pulumi.Input[_builtins.str],
|
|
25
|
+
target_issue_iid: pulumi.Input[_builtins.int],
|
|
26
|
+
target_project_id: pulumi.Input[_builtins.str]):
|
|
27
|
+
"""
|
|
28
|
+
The set of arguments for constructing a ProjectIssueLink resource.
|
|
29
|
+
:param pulumi.Input[_builtins.int] issue_iid: The internal ID of a project's issue.
|
|
30
|
+
:param pulumi.Input[_builtins.str] link_type: Type of the relationship. Valid values are `relates_to`, `blocks`, `is_blocked_by`.
|
|
31
|
+
:param pulumi.Input[_builtins.str] project: The ID or URL-encoded path of the project.
|
|
32
|
+
:param pulumi.Input[_builtins.int] target_issue_iid: The internal ID of the target issue.
|
|
33
|
+
:param pulumi.Input[_builtins.str] target_project_id: The ID or URL-encoded path of the target project.
|
|
34
|
+
"""
|
|
35
|
+
pulumi.set(__self__, "issue_iid", issue_iid)
|
|
36
|
+
pulumi.set(__self__, "link_type", link_type)
|
|
37
|
+
pulumi.set(__self__, "project", project)
|
|
38
|
+
pulumi.set(__self__, "target_issue_iid", target_issue_iid)
|
|
39
|
+
pulumi.set(__self__, "target_project_id", target_project_id)
|
|
40
|
+
|
|
41
|
+
@_builtins.property
|
|
42
|
+
@pulumi.getter(name="issueIid")
|
|
43
|
+
def issue_iid(self) -> pulumi.Input[_builtins.int]:
|
|
44
|
+
"""
|
|
45
|
+
The internal ID of a project's issue.
|
|
46
|
+
"""
|
|
47
|
+
return pulumi.get(self, "issue_iid")
|
|
48
|
+
|
|
49
|
+
@issue_iid.setter
|
|
50
|
+
def issue_iid(self, value: pulumi.Input[_builtins.int]):
|
|
51
|
+
pulumi.set(self, "issue_iid", value)
|
|
52
|
+
|
|
53
|
+
@_builtins.property
|
|
54
|
+
@pulumi.getter(name="linkType")
|
|
55
|
+
def link_type(self) -> pulumi.Input[_builtins.str]:
|
|
56
|
+
"""
|
|
57
|
+
Type of the relationship. Valid values are `relates_to`, `blocks`, `is_blocked_by`.
|
|
58
|
+
"""
|
|
59
|
+
return pulumi.get(self, "link_type")
|
|
60
|
+
|
|
61
|
+
@link_type.setter
|
|
62
|
+
def link_type(self, value: pulumi.Input[_builtins.str]):
|
|
63
|
+
pulumi.set(self, "link_type", value)
|
|
64
|
+
|
|
65
|
+
@_builtins.property
|
|
66
|
+
@pulumi.getter
|
|
67
|
+
def project(self) -> pulumi.Input[_builtins.str]:
|
|
68
|
+
"""
|
|
69
|
+
The ID or URL-encoded path of the project.
|
|
70
|
+
"""
|
|
71
|
+
return pulumi.get(self, "project")
|
|
72
|
+
|
|
73
|
+
@project.setter
|
|
74
|
+
def project(self, value: pulumi.Input[_builtins.str]):
|
|
75
|
+
pulumi.set(self, "project", value)
|
|
76
|
+
|
|
77
|
+
@_builtins.property
|
|
78
|
+
@pulumi.getter(name="targetIssueIid")
|
|
79
|
+
def target_issue_iid(self) -> pulumi.Input[_builtins.int]:
|
|
80
|
+
"""
|
|
81
|
+
The internal ID of the target issue.
|
|
82
|
+
"""
|
|
83
|
+
return pulumi.get(self, "target_issue_iid")
|
|
84
|
+
|
|
85
|
+
@target_issue_iid.setter
|
|
86
|
+
def target_issue_iid(self, value: pulumi.Input[_builtins.int]):
|
|
87
|
+
pulumi.set(self, "target_issue_iid", value)
|
|
88
|
+
|
|
89
|
+
@_builtins.property
|
|
90
|
+
@pulumi.getter(name="targetProjectId")
|
|
91
|
+
def target_project_id(self) -> pulumi.Input[_builtins.str]:
|
|
92
|
+
"""
|
|
93
|
+
The ID or URL-encoded path of the target project.
|
|
94
|
+
"""
|
|
95
|
+
return pulumi.get(self, "target_project_id")
|
|
96
|
+
|
|
97
|
+
@target_project_id.setter
|
|
98
|
+
def target_project_id(self, value: pulumi.Input[_builtins.str]):
|
|
99
|
+
pulumi.set(self, "target_project_id", value)
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
@pulumi.input_type
|
|
103
|
+
class _ProjectIssueLinkState:
|
|
104
|
+
def __init__(__self__, *,
|
|
105
|
+
issue_iid: Optional[pulumi.Input[_builtins.int]] = None,
|
|
106
|
+
issue_link_id: Optional[pulumi.Input[_builtins.int]] = None,
|
|
107
|
+
link_type: Optional[pulumi.Input[_builtins.str]] = None,
|
|
108
|
+
project: Optional[pulumi.Input[_builtins.str]] = None,
|
|
109
|
+
target_issue_iid: Optional[pulumi.Input[_builtins.int]] = None,
|
|
110
|
+
target_project_id: Optional[pulumi.Input[_builtins.str]] = None):
|
|
111
|
+
"""
|
|
112
|
+
Input properties used for looking up and filtering ProjectIssueLink resources.
|
|
113
|
+
:param pulumi.Input[_builtins.int] issue_iid: The internal ID of a project's issue.
|
|
114
|
+
:param pulumi.Input[_builtins.int] issue_link_id: ID of an issue relationship.
|
|
115
|
+
:param pulumi.Input[_builtins.str] link_type: Type of the relationship. Valid values are `relates_to`, `blocks`, `is_blocked_by`.
|
|
116
|
+
:param pulumi.Input[_builtins.str] project: The ID or URL-encoded path of the project.
|
|
117
|
+
:param pulumi.Input[_builtins.int] target_issue_iid: The internal ID of the target issue.
|
|
118
|
+
:param pulumi.Input[_builtins.str] target_project_id: The ID or URL-encoded path of the target project.
|
|
119
|
+
"""
|
|
120
|
+
if issue_iid is not None:
|
|
121
|
+
pulumi.set(__self__, "issue_iid", issue_iid)
|
|
122
|
+
if issue_link_id is not None:
|
|
123
|
+
pulumi.set(__self__, "issue_link_id", issue_link_id)
|
|
124
|
+
if link_type is not None:
|
|
125
|
+
pulumi.set(__self__, "link_type", link_type)
|
|
126
|
+
if project is not None:
|
|
127
|
+
pulumi.set(__self__, "project", project)
|
|
128
|
+
if target_issue_iid is not None:
|
|
129
|
+
pulumi.set(__self__, "target_issue_iid", target_issue_iid)
|
|
130
|
+
if target_project_id is not None:
|
|
131
|
+
pulumi.set(__self__, "target_project_id", target_project_id)
|
|
132
|
+
|
|
133
|
+
@_builtins.property
|
|
134
|
+
@pulumi.getter(name="issueIid")
|
|
135
|
+
def issue_iid(self) -> Optional[pulumi.Input[_builtins.int]]:
|
|
136
|
+
"""
|
|
137
|
+
The internal ID of a project's issue.
|
|
138
|
+
"""
|
|
139
|
+
return pulumi.get(self, "issue_iid")
|
|
140
|
+
|
|
141
|
+
@issue_iid.setter
|
|
142
|
+
def issue_iid(self, value: Optional[pulumi.Input[_builtins.int]]):
|
|
143
|
+
pulumi.set(self, "issue_iid", value)
|
|
144
|
+
|
|
145
|
+
@_builtins.property
|
|
146
|
+
@pulumi.getter(name="issueLinkId")
|
|
147
|
+
def issue_link_id(self) -> Optional[pulumi.Input[_builtins.int]]:
|
|
148
|
+
"""
|
|
149
|
+
ID of an issue relationship.
|
|
150
|
+
"""
|
|
151
|
+
return pulumi.get(self, "issue_link_id")
|
|
152
|
+
|
|
153
|
+
@issue_link_id.setter
|
|
154
|
+
def issue_link_id(self, value: Optional[pulumi.Input[_builtins.int]]):
|
|
155
|
+
pulumi.set(self, "issue_link_id", value)
|
|
156
|
+
|
|
157
|
+
@_builtins.property
|
|
158
|
+
@pulumi.getter(name="linkType")
|
|
159
|
+
def link_type(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
160
|
+
"""
|
|
161
|
+
Type of the relationship. Valid values are `relates_to`, `blocks`, `is_blocked_by`.
|
|
162
|
+
"""
|
|
163
|
+
return pulumi.get(self, "link_type")
|
|
164
|
+
|
|
165
|
+
@link_type.setter
|
|
166
|
+
def link_type(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
167
|
+
pulumi.set(self, "link_type", value)
|
|
168
|
+
|
|
169
|
+
@_builtins.property
|
|
170
|
+
@pulumi.getter
|
|
171
|
+
def project(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
172
|
+
"""
|
|
173
|
+
The ID or URL-encoded path of the project.
|
|
174
|
+
"""
|
|
175
|
+
return pulumi.get(self, "project")
|
|
176
|
+
|
|
177
|
+
@project.setter
|
|
178
|
+
def project(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
179
|
+
pulumi.set(self, "project", value)
|
|
180
|
+
|
|
181
|
+
@_builtins.property
|
|
182
|
+
@pulumi.getter(name="targetIssueIid")
|
|
183
|
+
def target_issue_iid(self) -> Optional[pulumi.Input[_builtins.int]]:
|
|
184
|
+
"""
|
|
185
|
+
The internal ID of the target issue.
|
|
186
|
+
"""
|
|
187
|
+
return pulumi.get(self, "target_issue_iid")
|
|
188
|
+
|
|
189
|
+
@target_issue_iid.setter
|
|
190
|
+
def target_issue_iid(self, value: Optional[pulumi.Input[_builtins.int]]):
|
|
191
|
+
pulumi.set(self, "target_issue_iid", value)
|
|
192
|
+
|
|
193
|
+
@_builtins.property
|
|
194
|
+
@pulumi.getter(name="targetProjectId")
|
|
195
|
+
def target_project_id(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
196
|
+
"""
|
|
197
|
+
The ID or URL-encoded path of the target project.
|
|
198
|
+
"""
|
|
199
|
+
return pulumi.get(self, "target_project_id")
|
|
200
|
+
|
|
201
|
+
@target_project_id.setter
|
|
202
|
+
def target_project_id(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
203
|
+
pulumi.set(self, "target_project_id", value)
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
@pulumi.type_token("gitlab:index/projectIssueLink:ProjectIssueLink")
|
|
207
|
+
class ProjectIssueLink(pulumi.CustomResource):
|
|
208
|
+
@overload
|
|
209
|
+
def __init__(__self__,
|
|
210
|
+
resource_name: str,
|
|
211
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
212
|
+
issue_iid: Optional[pulumi.Input[_builtins.int]] = None,
|
|
213
|
+
link_type: Optional[pulumi.Input[_builtins.str]] = None,
|
|
214
|
+
project: Optional[pulumi.Input[_builtins.str]] = None,
|
|
215
|
+
target_issue_iid: Optional[pulumi.Input[_builtins.int]] = None,
|
|
216
|
+
target_project_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
217
|
+
__props__=None):
|
|
218
|
+
"""
|
|
219
|
+
The `ProjectIssueLink` resource allows to manage the lifecycle of project issue links.
|
|
220
|
+
|
|
221
|
+
**Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/issue_links/)
|
|
222
|
+
|
|
223
|
+
## Example Usage
|
|
224
|
+
|
|
225
|
+
```python
|
|
226
|
+
import pulumi
|
|
227
|
+
import pulumi_gitlab as gitlab
|
|
228
|
+
|
|
229
|
+
# Create a project
|
|
230
|
+
example = gitlab.Project("example",
|
|
231
|
+
name="example",
|
|
232
|
+
description="An example project",
|
|
233
|
+
visibility_level="public")
|
|
234
|
+
# Create source issue
|
|
235
|
+
source = gitlab.ProjectIssue("source",
|
|
236
|
+
project=example.id,
|
|
237
|
+
title="Source Issue")
|
|
238
|
+
# Create target issue
|
|
239
|
+
target = gitlab.ProjectIssue("target",
|
|
240
|
+
project=example.id,
|
|
241
|
+
title="Target Issue")
|
|
242
|
+
# Link issues with "relates_to" link type (default)
|
|
243
|
+
relates_to = gitlab.ProjectIssueLink("relates_to",
|
|
244
|
+
project=example.id,
|
|
245
|
+
issue_iid=source.iid,
|
|
246
|
+
target_project_id=example.id,
|
|
247
|
+
target_issue_iid=target.iid,
|
|
248
|
+
link_type="relates_to")
|
|
249
|
+
# Cross-project linking example
|
|
250
|
+
other_project = gitlab.Project("other_project",
|
|
251
|
+
name="other_project",
|
|
252
|
+
description="Another project for cross-project linking")
|
|
253
|
+
cross_target = gitlab.ProjectIssue("cross_target",
|
|
254
|
+
project=other_project.id,
|
|
255
|
+
title="Cross-Project Target Issue")
|
|
256
|
+
cross_project_relates_to = gitlab.ProjectIssueLink("cross_project_relates_to",
|
|
257
|
+
project=example.id,
|
|
258
|
+
issue_iid=source.iid,
|
|
259
|
+
target_project_id=other_project.id,
|
|
260
|
+
target_issue_iid=cross_target.iid,
|
|
261
|
+
link_type="relates_to")
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
## Import
|
|
265
|
+
|
|
266
|
+
Starting in Terraform v1.5.0, you can use an import block to import `gitlab_project_issue_link`. For example:
|
|
267
|
+
|
|
268
|
+
terraform
|
|
269
|
+
|
|
270
|
+
import {
|
|
271
|
+
|
|
272
|
+
to = gitlab_project_issue_link.example
|
|
273
|
+
|
|
274
|
+
id = "see CLI command below for ID"
|
|
275
|
+
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
Importing using the CLI is supported with the following syntax:
|
|
279
|
+
|
|
280
|
+
You can import this resource with an id made up of `{project-id}:{source-issue-iid}:{target-issue-iid}`, e.g.
|
|
281
|
+
|
|
282
|
+
```sh
|
|
283
|
+
$ pulumi import gitlab:index/projectIssueLink:ProjectIssueLink example 42:1001:1002
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
:param str resource_name: The name of the resource.
|
|
287
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
288
|
+
:param pulumi.Input[_builtins.int] issue_iid: The internal ID of a project's issue.
|
|
289
|
+
:param pulumi.Input[_builtins.str] link_type: Type of the relationship. Valid values are `relates_to`, `blocks`, `is_blocked_by`.
|
|
290
|
+
:param pulumi.Input[_builtins.str] project: The ID or URL-encoded path of the project.
|
|
291
|
+
:param pulumi.Input[_builtins.int] target_issue_iid: The internal ID of the target issue.
|
|
292
|
+
:param pulumi.Input[_builtins.str] target_project_id: The ID or URL-encoded path of the target project.
|
|
293
|
+
"""
|
|
294
|
+
...
|
|
295
|
+
@overload
|
|
296
|
+
def __init__(__self__,
|
|
297
|
+
resource_name: str,
|
|
298
|
+
args: ProjectIssueLinkArgs,
|
|
299
|
+
opts: Optional[pulumi.ResourceOptions] = None):
|
|
300
|
+
"""
|
|
301
|
+
The `ProjectIssueLink` resource allows to manage the lifecycle of project issue links.
|
|
302
|
+
|
|
303
|
+
**Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/issue_links/)
|
|
304
|
+
|
|
305
|
+
## Example Usage
|
|
306
|
+
|
|
307
|
+
```python
|
|
308
|
+
import pulumi
|
|
309
|
+
import pulumi_gitlab as gitlab
|
|
310
|
+
|
|
311
|
+
# Create a project
|
|
312
|
+
example = gitlab.Project("example",
|
|
313
|
+
name="example",
|
|
314
|
+
description="An example project",
|
|
315
|
+
visibility_level="public")
|
|
316
|
+
# Create source issue
|
|
317
|
+
source = gitlab.ProjectIssue("source",
|
|
318
|
+
project=example.id,
|
|
319
|
+
title="Source Issue")
|
|
320
|
+
# Create target issue
|
|
321
|
+
target = gitlab.ProjectIssue("target",
|
|
322
|
+
project=example.id,
|
|
323
|
+
title="Target Issue")
|
|
324
|
+
# Link issues with "relates_to" link type (default)
|
|
325
|
+
relates_to = gitlab.ProjectIssueLink("relates_to",
|
|
326
|
+
project=example.id,
|
|
327
|
+
issue_iid=source.iid,
|
|
328
|
+
target_project_id=example.id,
|
|
329
|
+
target_issue_iid=target.iid,
|
|
330
|
+
link_type="relates_to")
|
|
331
|
+
# Cross-project linking example
|
|
332
|
+
other_project = gitlab.Project("other_project",
|
|
333
|
+
name="other_project",
|
|
334
|
+
description="Another project for cross-project linking")
|
|
335
|
+
cross_target = gitlab.ProjectIssue("cross_target",
|
|
336
|
+
project=other_project.id,
|
|
337
|
+
title="Cross-Project Target Issue")
|
|
338
|
+
cross_project_relates_to = gitlab.ProjectIssueLink("cross_project_relates_to",
|
|
339
|
+
project=example.id,
|
|
340
|
+
issue_iid=source.iid,
|
|
341
|
+
target_project_id=other_project.id,
|
|
342
|
+
target_issue_iid=cross_target.iid,
|
|
343
|
+
link_type="relates_to")
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
## Import
|
|
347
|
+
|
|
348
|
+
Starting in Terraform v1.5.0, you can use an import block to import `gitlab_project_issue_link`. For example:
|
|
349
|
+
|
|
350
|
+
terraform
|
|
351
|
+
|
|
352
|
+
import {
|
|
353
|
+
|
|
354
|
+
to = gitlab_project_issue_link.example
|
|
355
|
+
|
|
356
|
+
id = "see CLI command below for ID"
|
|
357
|
+
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
Importing using the CLI is supported with the following syntax:
|
|
361
|
+
|
|
362
|
+
You can import this resource with an id made up of `{project-id}:{source-issue-iid}:{target-issue-iid}`, e.g.
|
|
363
|
+
|
|
364
|
+
```sh
|
|
365
|
+
$ pulumi import gitlab:index/projectIssueLink:ProjectIssueLink example 42:1001:1002
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
:param str resource_name: The name of the resource.
|
|
369
|
+
:param ProjectIssueLinkArgs args: The arguments to use to populate this resource's properties.
|
|
370
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
371
|
+
"""
|
|
372
|
+
...
|
|
373
|
+
def __init__(__self__, resource_name: str, *args, **kwargs):
|
|
374
|
+
resource_args, opts = _utilities.get_resource_args_opts(ProjectIssueLinkArgs, pulumi.ResourceOptions, *args, **kwargs)
|
|
375
|
+
if resource_args is not None:
|
|
376
|
+
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
|
|
377
|
+
else:
|
|
378
|
+
__self__._internal_init(resource_name, *args, **kwargs)
|
|
379
|
+
|
|
380
|
+
def _internal_init(__self__,
|
|
381
|
+
resource_name: str,
|
|
382
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
383
|
+
issue_iid: Optional[pulumi.Input[_builtins.int]] = None,
|
|
384
|
+
link_type: Optional[pulumi.Input[_builtins.str]] = None,
|
|
385
|
+
project: Optional[pulumi.Input[_builtins.str]] = None,
|
|
386
|
+
target_issue_iid: Optional[pulumi.Input[_builtins.int]] = None,
|
|
387
|
+
target_project_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
388
|
+
__props__=None):
|
|
389
|
+
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
|
390
|
+
if not isinstance(opts, pulumi.ResourceOptions):
|
|
391
|
+
raise TypeError('Expected resource options to be a ResourceOptions instance')
|
|
392
|
+
if opts.id is None:
|
|
393
|
+
if __props__ is not None:
|
|
394
|
+
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
|
|
395
|
+
__props__ = ProjectIssueLinkArgs.__new__(ProjectIssueLinkArgs)
|
|
396
|
+
|
|
397
|
+
if issue_iid is None and not opts.urn:
|
|
398
|
+
raise TypeError("Missing required property 'issue_iid'")
|
|
399
|
+
__props__.__dict__["issue_iid"] = issue_iid
|
|
400
|
+
if link_type is None and not opts.urn:
|
|
401
|
+
raise TypeError("Missing required property 'link_type'")
|
|
402
|
+
__props__.__dict__["link_type"] = link_type
|
|
403
|
+
if project is None and not opts.urn:
|
|
404
|
+
raise TypeError("Missing required property 'project'")
|
|
405
|
+
__props__.__dict__["project"] = project
|
|
406
|
+
if target_issue_iid is None and not opts.urn:
|
|
407
|
+
raise TypeError("Missing required property 'target_issue_iid'")
|
|
408
|
+
__props__.__dict__["target_issue_iid"] = target_issue_iid
|
|
409
|
+
if target_project_id is None and not opts.urn:
|
|
410
|
+
raise TypeError("Missing required property 'target_project_id'")
|
|
411
|
+
__props__.__dict__["target_project_id"] = target_project_id
|
|
412
|
+
__props__.__dict__["issue_link_id"] = None
|
|
413
|
+
super(ProjectIssueLink, __self__).__init__(
|
|
414
|
+
'gitlab:index/projectIssueLink:ProjectIssueLink',
|
|
415
|
+
resource_name,
|
|
416
|
+
__props__,
|
|
417
|
+
opts)
|
|
418
|
+
|
|
419
|
+
@staticmethod
|
|
420
|
+
def get(resource_name: str,
|
|
421
|
+
id: pulumi.Input[str],
|
|
422
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
423
|
+
issue_iid: Optional[pulumi.Input[_builtins.int]] = None,
|
|
424
|
+
issue_link_id: Optional[pulumi.Input[_builtins.int]] = None,
|
|
425
|
+
link_type: Optional[pulumi.Input[_builtins.str]] = None,
|
|
426
|
+
project: Optional[pulumi.Input[_builtins.str]] = None,
|
|
427
|
+
target_issue_iid: Optional[pulumi.Input[_builtins.int]] = None,
|
|
428
|
+
target_project_id: Optional[pulumi.Input[_builtins.str]] = None) -> 'ProjectIssueLink':
|
|
429
|
+
"""
|
|
430
|
+
Get an existing ProjectIssueLink resource's state with the given name, id, and optional extra
|
|
431
|
+
properties used to qualify the lookup.
|
|
432
|
+
|
|
433
|
+
:param str resource_name: The unique name of the resulting resource.
|
|
434
|
+
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
|
435
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
436
|
+
:param pulumi.Input[_builtins.int] issue_iid: The internal ID of a project's issue.
|
|
437
|
+
:param pulumi.Input[_builtins.int] issue_link_id: ID of an issue relationship.
|
|
438
|
+
:param pulumi.Input[_builtins.str] link_type: Type of the relationship. Valid values are `relates_to`, `blocks`, `is_blocked_by`.
|
|
439
|
+
:param pulumi.Input[_builtins.str] project: The ID or URL-encoded path of the project.
|
|
440
|
+
:param pulumi.Input[_builtins.int] target_issue_iid: The internal ID of the target issue.
|
|
441
|
+
:param pulumi.Input[_builtins.str] target_project_id: The ID or URL-encoded path of the target project.
|
|
442
|
+
"""
|
|
443
|
+
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
|
444
|
+
|
|
445
|
+
__props__ = _ProjectIssueLinkState.__new__(_ProjectIssueLinkState)
|
|
446
|
+
|
|
447
|
+
__props__.__dict__["issue_iid"] = issue_iid
|
|
448
|
+
__props__.__dict__["issue_link_id"] = issue_link_id
|
|
449
|
+
__props__.__dict__["link_type"] = link_type
|
|
450
|
+
__props__.__dict__["project"] = project
|
|
451
|
+
__props__.__dict__["target_issue_iid"] = target_issue_iid
|
|
452
|
+
__props__.__dict__["target_project_id"] = target_project_id
|
|
453
|
+
return ProjectIssueLink(resource_name, opts=opts, __props__=__props__)
|
|
454
|
+
|
|
455
|
+
@_builtins.property
|
|
456
|
+
@pulumi.getter(name="issueIid")
|
|
457
|
+
def issue_iid(self) -> pulumi.Output[_builtins.int]:
|
|
458
|
+
"""
|
|
459
|
+
The internal ID of a project's issue.
|
|
460
|
+
"""
|
|
461
|
+
return pulumi.get(self, "issue_iid")
|
|
462
|
+
|
|
463
|
+
@_builtins.property
|
|
464
|
+
@pulumi.getter(name="issueLinkId")
|
|
465
|
+
def issue_link_id(self) -> pulumi.Output[_builtins.int]:
|
|
466
|
+
"""
|
|
467
|
+
ID of an issue relationship.
|
|
468
|
+
"""
|
|
469
|
+
return pulumi.get(self, "issue_link_id")
|
|
470
|
+
|
|
471
|
+
@_builtins.property
|
|
472
|
+
@pulumi.getter(name="linkType")
|
|
473
|
+
def link_type(self) -> pulumi.Output[_builtins.str]:
|
|
474
|
+
"""
|
|
475
|
+
Type of the relationship. Valid values are `relates_to`, `blocks`, `is_blocked_by`.
|
|
476
|
+
"""
|
|
477
|
+
return pulumi.get(self, "link_type")
|
|
478
|
+
|
|
479
|
+
@_builtins.property
|
|
480
|
+
@pulumi.getter
|
|
481
|
+
def project(self) -> pulumi.Output[_builtins.str]:
|
|
482
|
+
"""
|
|
483
|
+
The ID or URL-encoded path of the project.
|
|
484
|
+
"""
|
|
485
|
+
return pulumi.get(self, "project")
|
|
486
|
+
|
|
487
|
+
@_builtins.property
|
|
488
|
+
@pulumi.getter(name="targetIssueIid")
|
|
489
|
+
def target_issue_iid(self) -> pulumi.Output[_builtins.int]:
|
|
490
|
+
"""
|
|
491
|
+
The internal ID of the target issue.
|
|
492
|
+
"""
|
|
493
|
+
return pulumi.get(self, "target_issue_iid")
|
|
494
|
+
|
|
495
|
+
@_builtins.property
|
|
496
|
+
@pulumi.getter(name="targetProjectId")
|
|
497
|
+
def target_project_id(self) -> pulumi.Output[_builtins.str]:
|
|
498
|
+
"""
|
|
499
|
+
The ID or URL-encoded path of the target project.
|
|
500
|
+
"""
|
|
501
|
+
return pulumi.get(self, "target_project_id")
|
|
502
|
+
|
|
@@ -145,6 +145,8 @@ class ProjectJobTokenScope(pulumi.CustomResource):
|
|
|
145
145
|
|
|
146
146
|
**Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/project_job_token_scopes/)
|
|
147
147
|
|
|
148
|
+
## Example Usage
|
|
149
|
+
|
|
148
150
|
## Import
|
|
149
151
|
|
|
150
152
|
Starting in Terraform v1.5.0, you can use an import block to import `gitlab_project_job_token_scope`. For example:
|
|
@@ -161,10 +163,18 @@ class ProjectJobTokenScope(pulumi.CustomResource):
|
|
|
161
163
|
|
|
162
164
|
Importing using the CLI is supported with the following syntax:
|
|
163
165
|
|
|
164
|
-
GitLab project job token scopes can be imported using an id made up of `projectId:
|
|
166
|
+
GitLab project job token scopes can be imported using an id made up of `projectId:type:targetId`, e.g.
|
|
167
|
+
|
|
168
|
+
For target_project_id:
|
|
169
|
+
|
|
170
|
+
```sh
|
|
171
|
+
$ pulumi import gitlab:index/projectJobTokenScope:ProjectJobTokenScope bar 123:project:321
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
For target_group_id:
|
|
165
175
|
|
|
166
176
|
```sh
|
|
167
|
-
$ pulumi import gitlab:index/projectJobTokenScope:ProjectJobTokenScope bar 123:321
|
|
177
|
+
$ pulumi import gitlab:index/projectJobTokenScope:ProjectJobTokenScope bar 123:group:321
|
|
168
178
|
```
|
|
169
179
|
|
|
170
180
|
:param str resource_name: The name of the resource.
|
|
@@ -187,6 +197,8 @@ class ProjectJobTokenScope(pulumi.CustomResource):
|
|
|
187
197
|
|
|
188
198
|
**Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/project_job_token_scopes/)
|
|
189
199
|
|
|
200
|
+
## Example Usage
|
|
201
|
+
|
|
190
202
|
## Import
|
|
191
203
|
|
|
192
204
|
Starting in Terraform v1.5.0, you can use an import block to import `gitlab_project_job_token_scope`. For example:
|
|
@@ -203,10 +215,18 @@ class ProjectJobTokenScope(pulumi.CustomResource):
|
|
|
203
215
|
|
|
204
216
|
Importing using the CLI is supported with the following syntax:
|
|
205
217
|
|
|
206
|
-
GitLab project job token scopes can be imported using an id made up of `projectId:
|
|
218
|
+
GitLab project job token scopes can be imported using an id made up of `projectId:type:targetId`, e.g.
|
|
219
|
+
|
|
220
|
+
For target_project_id:
|
|
221
|
+
|
|
222
|
+
```sh
|
|
223
|
+
$ pulumi import gitlab:index/projectJobTokenScope:ProjectJobTokenScope bar 123:project:321
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
For target_group_id:
|
|
207
227
|
|
|
208
228
|
```sh
|
|
209
|
-
$ pulumi import gitlab:index/projectJobTokenScope:ProjectJobTokenScope bar 123:321
|
|
229
|
+
$ pulumi import gitlab:index/projectJobTokenScope:ProjectJobTokenScope bar 123:group:321
|
|
210
230
|
```
|
|
211
231
|
|
|
212
232
|
:param str resource_name: The name of the resource.
|