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
@@ -64,7 +64,7 @@ class GetInstanceVariableResult:
64
64
  @pulumi.getter
65
65
  def id(self) -> _builtins.str:
66
66
  """
67
- The provider-assigned unique ID for this managed resource.
67
+ The ID of this datasource. In the format `<key>`.
68
68
  """
69
69
  return pulumi.get(self, "id")
70
70
 
@@ -80,7 +80,7 @@ class GetInstanceVariableResult:
80
80
  @pulumi.getter
81
81
  def masked(self) -> _builtins.bool:
82
82
  """
83
- If set to `true`, the value of the variable will be hidden in job logs. The value must meet the [masking requirements](https://docs.gitlab.com/ci/variables/#masked-variables). Defaults to `false`.
83
+ If set to `true`, the value of the variable will be hidden in job logs.
84
84
  """
85
85
  return pulumi.get(self, "masked")
86
86
 
@@ -88,7 +88,7 @@ class GetInstanceVariableResult:
88
88
  @pulumi.getter
89
89
  def protected(self) -> _builtins.bool:
90
90
  """
91
- If set to `true`, the variable will be passed only to pipelines running on protected branches and tags. Defaults to `false`.
91
+ If set to `true`, the variable will be passed only to pipelines running on protected branches and tags.
92
92
  """
93
93
  return pulumi.get(self, "protected")
94
94
 
@@ -96,7 +96,7 @@ class GetInstanceVariableResult:
96
96
  @pulumi.getter
97
97
  def raw(self) -> _builtins.bool:
98
98
  """
99
- Whether the variable is treated as a raw string. Default: false. When true, variables in the value are not expanded.
99
+ If set to `true`, the variable will be treated as a raw string.
100
100
  """
101
101
  return pulumi.get(self, "raw")
102
102
 
@@ -112,7 +112,7 @@ class GetInstanceVariableResult:
112
112
  @pulumi.getter(name="variableType")
113
113
  def variable_type(self) -> _builtins.str:
114
114
  """
115
- The type of a variable. Valid values are: `env_var`, `file`. Default is `env_var`.
115
+ The type of the variable, either `env_var` or `file`.
116
116
  """
117
117
  return pulumi.get(self, "variable_type")
118
118
 
@@ -136,7 +136,7 @@ class AwaitableGetInstanceVariableResult(GetInstanceVariableResult):
136
136
  def get_instance_variable(key: Optional[_builtins.str] = None,
137
137
  opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetInstanceVariableResult:
138
138
  """
139
- The `InstanceVariable` data source allows to retrieve details about an instance-level CI/CD variable.
139
+ The `InstanceVariable` data source retrieves details about an instance-level CI/CD variable.
140
140
 
141
141
  **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/instance_level_ci_variables/)
142
142
 
@@ -169,7 +169,7 @@ def get_instance_variable(key: Optional[_builtins.str] = None,
169
169
  def get_instance_variable_output(key: Optional[pulumi.Input[_builtins.str]] = None,
170
170
  opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetInstanceVariableResult]:
171
171
  """
172
- The `InstanceVariable` data source allows to retrieve details about an instance-level CI/CD variable.
172
+ The `InstanceVariable` data source retrieves details about an instance-level CI/CD variable.
173
173
 
174
174
  **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/instance_level_ci_variables/)
175
175
 
@@ -39,7 +39,7 @@ class GetInstanceVariablesResult:
39
39
  @pulumi.getter
40
40
  def id(self) -> _builtins.str:
41
41
  """
42
- The provider-assigned unique ID for this managed resource.
42
+ The ID of this datasource. In the hardcoded format `instance_variables`.
43
43
  """
44
44
  return pulumi.get(self, "id")
45
45
 
@@ -47,7 +47,7 @@ class GetInstanceVariablesResult:
47
47
  @pulumi.getter
48
48
  def variables(self) -> Sequence['outputs.GetInstanceVariablesVariableResult']:
49
49
  """
50
- The list of variables returned by the search
50
+ The list of variables returned by the search.
51
51
  """
52
52
  return pulumi.get(self, "variables")
53
53
 
@@ -64,7 +64,7 @@ class AwaitableGetInstanceVariablesResult(GetInstanceVariablesResult):
64
64
 
65
65
  def get_instance_variables(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetInstanceVariablesResult:
66
66
  """
67
- The `get_instance_variables` data source allows to retrieve all instance-level CI/CD variables.
67
+ The `get_instance_variables` data source retrieves all instance-level CI/CD variables.
68
68
 
69
69
  **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/instance_level_ci_variables/)
70
70
 
@@ -86,7 +86,7 @@ def get_instance_variables(opts: Optional[pulumi.InvokeOptions] = None) -> Await
86
86
  variables=pulumi.get(__ret__, 'variables'))
87
87
  def get_instance_variables_output(opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetInstanceVariablesResult]:
88
88
  """
89
- The `get_instance_variables` data source allows to retrieve all instance-level CI/CD variables.
89
+ The `get_instance_variables` data source retrieves all instance-level CI/CD variables.
90
90
 
91
91
  **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/instance_level_ci_variables/)
92
92
 
@@ -0,0 +1,200 @@
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__ = [
18
+ 'GetMemberRoleResult',
19
+ 'AwaitableGetMemberRoleResult',
20
+ 'get_member_role',
21
+ 'get_member_role_output',
22
+ ]
23
+
24
+ @pulumi.output_type
25
+ class GetMemberRoleResult:
26
+ """
27
+ A collection of values returned by getMemberRole.
28
+ """
29
+ def __init__(__self__, base_access_level=None, created_at=None, description=None, edit_path=None, enabled_permissions=None, id=None, iid=None, name=None):
30
+ if base_access_level and not isinstance(base_access_level, str):
31
+ raise TypeError("Expected argument 'base_access_level' to be a str")
32
+ pulumi.set(__self__, "base_access_level", base_access_level)
33
+ if created_at and not isinstance(created_at, str):
34
+ raise TypeError("Expected argument 'created_at' to be a str")
35
+ pulumi.set(__self__, "created_at", created_at)
36
+ if description and not isinstance(description, str):
37
+ raise TypeError("Expected argument 'description' to be a str")
38
+ pulumi.set(__self__, "description", description)
39
+ if edit_path and not isinstance(edit_path, str):
40
+ raise TypeError("Expected argument 'edit_path' to be a str")
41
+ pulumi.set(__self__, "edit_path", edit_path)
42
+ if enabled_permissions and not isinstance(enabled_permissions, list):
43
+ raise TypeError("Expected argument 'enabled_permissions' to be a list")
44
+ pulumi.set(__self__, "enabled_permissions", enabled_permissions)
45
+ if id and not isinstance(id, str):
46
+ raise TypeError("Expected argument 'id' to be a str")
47
+ pulumi.set(__self__, "id", id)
48
+ if iid and not isinstance(iid, int):
49
+ raise TypeError("Expected argument 'iid' to be a int")
50
+ pulumi.set(__self__, "iid", iid)
51
+ if name and not isinstance(name, str):
52
+ raise TypeError("Expected argument 'name' to be a str")
53
+ pulumi.set(__self__, "name", name)
54
+
55
+ @_builtins.property
56
+ @pulumi.getter(name="baseAccessLevel")
57
+ def base_access_level(self) -> _builtins.str:
58
+ """
59
+ The base access level of the custom role.
60
+ """
61
+ return pulumi.get(self, "base_access_level")
62
+
63
+ @_builtins.property
64
+ @pulumi.getter(name="createdAt")
65
+ def created_at(self) -> _builtins.str:
66
+ """
67
+ Timestamp of when the member role was created.
68
+ """
69
+ return pulumi.get(self, "created_at")
70
+
71
+ @_builtins.property
72
+ @pulumi.getter
73
+ def description(self) -> _builtins.str:
74
+ """
75
+ Description of the member role.
76
+ """
77
+ return pulumi.get(self, "description")
78
+
79
+ @_builtins.property
80
+ @pulumi.getter(name="editPath")
81
+ def edit_path(self) -> _builtins.str:
82
+ """
83
+ The Web UI path to edit the member role
84
+ """
85
+ return pulumi.get(self, "edit_path")
86
+
87
+ @_builtins.property
88
+ @pulumi.getter(name="enabledPermissions")
89
+ def enabled_permissions(self) -> Sequence[_builtins.str]:
90
+ """
91
+ All permissions enabled for the custom role.
92
+ """
93
+ return pulumi.get(self, "enabled_permissions")
94
+
95
+ @_builtins.property
96
+ @pulumi.getter
97
+ def id(self) -> _builtins.str:
98
+ """
99
+ Globally unique ID of the member role. In the format of `gid://gitlab/MemberRole/1`
100
+ """
101
+ return pulumi.get(self, "id")
102
+
103
+ @_builtins.property
104
+ @pulumi.getter
105
+ def iid(self) -> _builtins.int:
106
+ """
107
+ The member role ID integer value extracted from the `id` attribute
108
+ """
109
+ return pulumi.get(self, "iid")
110
+
111
+ @_builtins.property
112
+ @pulumi.getter
113
+ def name(self) -> _builtins.str:
114
+ """
115
+ Name of the member role.
116
+ """
117
+ return pulumi.get(self, "name")
118
+
119
+
120
+ class AwaitableGetMemberRoleResult(GetMemberRoleResult):
121
+ # pylint: disable=using-constant-test
122
+ def __await__(self):
123
+ if False:
124
+ yield self
125
+ return GetMemberRoleResult(
126
+ base_access_level=self.base_access_level,
127
+ created_at=self.created_at,
128
+ description=self.description,
129
+ edit_path=self.edit_path,
130
+ enabled_permissions=self.enabled_permissions,
131
+ id=self.id,
132
+ iid=self.iid,
133
+ name=self.name)
134
+
135
+
136
+ def get_member_role(id: Optional[_builtins.str] = None,
137
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetMemberRoleResult:
138
+ """
139
+ The `MemberRole` data source allows details of a custom member role to be retrieved.
140
+
141
+ **Upstream API**: [GitLab GraphQL API docs](https://docs.gitlab.com/api/graphql/reference/#querymemberrole)
142
+
143
+ ## Example Usage
144
+
145
+ ```python
146
+ import pulumi
147
+ import pulumi_gitlab as gitlab
148
+
149
+ example = gitlab.get_member_role(id="gid://gitlab/MemberRole/1")
150
+ ```
151
+
152
+
153
+ :param _builtins.str id: Globally unique ID of the member role. In the format of `gid://gitlab/MemberRole/1`
154
+ """
155
+ __args__ = dict()
156
+ __args__['id'] = id
157
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
158
+ __ret__ = pulumi.runtime.invoke('gitlab:index/getMemberRole:getMemberRole', __args__, opts=opts, typ=GetMemberRoleResult).value
159
+
160
+ return AwaitableGetMemberRoleResult(
161
+ base_access_level=pulumi.get(__ret__, 'base_access_level'),
162
+ created_at=pulumi.get(__ret__, 'created_at'),
163
+ description=pulumi.get(__ret__, 'description'),
164
+ edit_path=pulumi.get(__ret__, 'edit_path'),
165
+ enabled_permissions=pulumi.get(__ret__, 'enabled_permissions'),
166
+ id=pulumi.get(__ret__, 'id'),
167
+ iid=pulumi.get(__ret__, 'iid'),
168
+ name=pulumi.get(__ret__, 'name'))
169
+ def get_member_role_output(id: Optional[pulumi.Input[_builtins.str]] = None,
170
+ opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetMemberRoleResult]:
171
+ """
172
+ The `MemberRole` data source allows details of a custom member role to be retrieved.
173
+
174
+ **Upstream API**: [GitLab GraphQL API docs](https://docs.gitlab.com/api/graphql/reference/#querymemberrole)
175
+
176
+ ## Example Usage
177
+
178
+ ```python
179
+ import pulumi
180
+ import pulumi_gitlab as gitlab
181
+
182
+ example = gitlab.get_member_role(id="gid://gitlab/MemberRole/1")
183
+ ```
184
+
185
+
186
+ :param _builtins.str id: Globally unique ID of the member role. In the format of `gid://gitlab/MemberRole/1`
187
+ """
188
+ __args__ = dict()
189
+ __args__['id'] = id
190
+ opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
191
+ __ret__ = pulumi.runtime.invoke_output('gitlab:index/getMemberRole:getMemberRole', __args__, opts=opts, typ=GetMemberRoleResult)
192
+ return __ret__.apply(lambda __response__: GetMemberRoleResult(
193
+ base_access_level=pulumi.get(__response__, 'base_access_level'),
194
+ created_at=pulumi.get(__response__, 'created_at'),
195
+ description=pulumi.get(__response__, 'description'),
196
+ edit_path=pulumi.get(__response__, 'edit_path'),
197
+ enabled_permissions=pulumi.get(__response__, 'enabled_permissions'),
198
+ id=pulumi.get(__response__, 'id'),
199
+ iid=pulumi.get(__response__, 'iid'),
200
+ name=pulumi.get(__response__, 'name')))
@@ -27,7 +27,7 @@ class GetProjectResult:
27
27
  """
28
28
  A collection of values returned by getProject.
29
29
  """
30
- def __init__(__self__, allow_pipeline_trigger_approve_deployment=None, analytics_access_level=None, archived=None, auto_cancel_pending_pipelines=None, auto_devops_deploy_strategy=None, auto_devops_enabled=None, autoclose_referenced_issues=None, build_git_strategy=None, build_timeout=None, builds_access_level=None, ci_config_path=None, ci_default_git_depth=None, ci_delete_pipelines_in_seconds=None, ci_id_token_sub_claim_components=None, ci_pipeline_variables_minimum_override_role=None, ci_restrict_pipeline_cancellation_role=None, ci_separated_caches=None, container_expiration_policies=None, container_registry_access_level=None, default_branch=None, description=None, emails_enabled=None, empty_repo=None, environments_access_level=None, external_authorization_classification_label=None, feature_flags_access_level=None, forking_access_level=None, http_url_to_repo=None, id=None, import_url=None, infrastructure_access_level=None, issues_access_level=None, issues_enabled=None, keep_latest_artifact=None, lfs_enabled=None, merge_commit_template=None, merge_pipelines_enabled=None, merge_requests_access_level=None, merge_requests_enabled=None, merge_trains_enabled=None, model_experiments_access_level=None, model_registry_access_level=None, monitor_access_level=None, name=None, namespace_id=None, path=None, path_with_namespace=None, pipelines_enabled=None, prevent_merge_without_jira_issue=None, printing_merge_request_link_enabled=None, public_builds=None, push_rules=None, releases_access_level=None, remove_source_branch_after_merge=None, repository_access_level=None, repository_storage=None, request_access_enabled=None, requirements_access_level=None, resolve_outdated_diff_discussions=None, restrict_user_defined_variables=None, runners_token=None, security_and_compliance_access_level=None, shared_with_groups=None, snippets_access_level=None, snippets_enabled=None, squash_commit_template=None, ssh_url_to_repo=None, suggestion_commit_message=None, topics=None, visibility_level=None, web_url=None, wiki_access_level=None, wiki_enabled=None):
30
+ def __init__(__self__, allow_pipeline_trigger_approve_deployment=None, analytics_access_level=None, archived=None, auto_cancel_pending_pipelines=None, auto_devops_deploy_strategy=None, auto_devops_enabled=None, autoclose_referenced_issues=None, build_git_strategy=None, build_timeout=None, builds_access_level=None, ci_config_path=None, ci_default_git_depth=None, ci_delete_pipelines_in_seconds=None, ci_id_token_sub_claim_components=None, ci_pipeline_variables_minimum_override_role=None, ci_restrict_pipeline_cancellation_role=None, ci_separated_caches=None, container_expiration_policies=None, container_registry_access_level=None, default_branch=None, description=None, emails_enabled=None, empty_repo=None, environments_access_level=None, external_authorization_classification_label=None, feature_flags_access_level=None, forking_access_level=None, http_url_to_repo=None, id=None, import_url=None, infrastructure_access_level=None, issues_access_level=None, issues_enabled=None, keep_latest_artifact=None, lfs_enabled=None, merge_commit_template=None, merge_pipelines_enabled=None, merge_requests_access_level=None, merge_requests_enabled=None, merge_trains_enabled=None, merge_trains_skip_train_allowed=None, model_experiments_access_level=None, model_registry_access_level=None, monitor_access_level=None, name=None, namespace_id=None, path=None, path_with_namespace=None, pipelines_enabled=None, prevent_merge_without_jira_issue=None, printing_merge_request_link_enabled=None, public_builds=None, push_rules=None, releases_access_level=None, remove_source_branch_after_merge=None, repository_access_level=None, repository_storage=None, request_access_enabled=None, requirements_access_level=None, resolve_outdated_diff_discussions=None, restrict_user_defined_variables=None, runners_token=None, security_and_compliance_access_level=None, shared_with_groups=None, snippets_access_level=None, snippets_enabled=None, squash_commit_template=None, ssh_url_to_repo=None, suggestion_commit_message=None, topics=None, visibility_level=None, web_url=None, wiki_access_level=None, wiki_enabled=None):
31
31
  if allow_pipeline_trigger_approve_deployment and not isinstance(allow_pipeline_trigger_approve_deployment, bool):
32
32
  raise TypeError("Expected argument 'allow_pipeline_trigger_approve_deployment' to be a bool")
33
33
  pulumi.set(__self__, "allow_pipeline_trigger_approve_deployment", allow_pipeline_trigger_approve_deployment)
@@ -148,6 +148,9 @@ class GetProjectResult:
148
148
  if merge_trains_enabled and not isinstance(merge_trains_enabled, bool):
149
149
  raise TypeError("Expected argument 'merge_trains_enabled' to be a bool")
150
150
  pulumi.set(__self__, "merge_trains_enabled", merge_trains_enabled)
151
+ if merge_trains_skip_train_allowed and not isinstance(merge_trains_skip_train_allowed, bool):
152
+ raise TypeError("Expected argument 'merge_trains_skip_train_allowed' to be a bool")
153
+ pulumi.set(__self__, "merge_trains_skip_train_allowed", merge_trains_skip_train_allowed)
151
154
  if model_experiments_access_level and not isinstance(model_experiments_access_level, str):
152
155
  raise TypeError("Expected argument 'model_experiments_access_level' to be a str")
153
156
  pulumi.set(__self__, "model_experiments_access_level", model_experiments_access_level)
@@ -506,9 +509,10 @@ class GetProjectResult:
506
509
 
507
510
  @_builtins.property
508
511
  @pulumi.getter(name="issuesEnabled")
512
+ @_utilities.deprecated("""Use `issues_access_level` instead. This attribute will be removed in 19.0.""")
509
513
  def issues_enabled(self) -> _builtins.bool:
510
514
  """
511
- Enable issue tracking for the project.
515
+ Enable issue tracking for the project. Use `issues_access_level` instead. This attribute will be removed in 19.0.
512
516
  """
513
517
  return pulumi.get(self, "issues_enabled")
514
518
 
@@ -554,9 +558,10 @@ class GetProjectResult:
554
558
 
555
559
  @_builtins.property
556
560
  @pulumi.getter(name="mergeRequestsEnabled")
561
+ @_utilities.deprecated("""Use `merge_requests_access_level` instead. This attribute will be removed in 19.0.""")
557
562
  def merge_requests_enabled(self) -> _builtins.bool:
558
563
  """
559
- Enable merge requests for the project.
564
+ Enable merge requests for the project. Use `merge_requests_access_level` instead. This attribute will be removed in 19.0.
560
565
  """
561
566
  return pulumi.get(self, "merge_requests_enabled")
562
567
 
@@ -568,6 +573,14 @@ class GetProjectResult:
568
573
  """
569
574
  return pulumi.get(self, "merge_trains_enabled")
570
575
 
576
+ @_builtins.property
577
+ @pulumi.getter(name="mergeTrainsSkipTrainAllowed")
578
+ def merge_trains_skip_train_allowed(self) -> _builtins.bool:
579
+ """
580
+ Allows merge train merge requests to be merged without waiting for pipelines to finish.
581
+ """
582
+ return pulumi.get(self, "merge_trains_skip_train_allowed")
583
+
571
584
  @_builtins.property
572
585
  @pulumi.getter(name="modelExperimentsAccessLevel")
573
586
  def model_experiments_access_level(self) -> _builtins.str:
@@ -626,9 +639,10 @@ class GetProjectResult:
626
639
 
627
640
  @_builtins.property
628
641
  @pulumi.getter(name="pipelinesEnabled")
642
+ @_utilities.deprecated("""Use `pipelines_access_level` instead. This attribute will be removed in 19.0.""")
629
643
  def pipelines_enabled(self) -> _builtins.bool:
630
644
  """
631
- Enable pipelines for the project.
645
+ Enable pipelines for the project. Use `pipelines_access_level` instead. This attribute will be removed in 19.0.
632
646
  """
633
647
  return pulumi.get(self, "pipelines_enabled")
634
648
 
@@ -722,9 +736,10 @@ class GetProjectResult:
722
736
 
723
737
  @_builtins.property
724
738
  @pulumi.getter(name="restrictUserDefinedVariables")
739
+ @_utilities.deprecated("""Use `ci_restrict_pipeline_variables_role` instead. This attribute will be removed in 19.0.""")
725
740
  def restrict_user_defined_variables(self) -> _builtins.bool:
726
741
  """
727
- Allow only users with the Maintainer role to pass user-defined variables when triggering a pipeline.
742
+ Allow only users with the Maintainer role to pass user-defined variables when triggering a pipeline. Use `ci_restrict_pipeline_variables_role` instead. This attribute will be removed in 19.0.
728
743
  """
729
744
  return pulumi.get(self, "restrict_user_defined_variables")
730
745
 
@@ -762,9 +777,10 @@ class GetProjectResult:
762
777
 
763
778
  @_builtins.property
764
779
  @pulumi.getter(name="snippetsEnabled")
780
+ @_utilities.deprecated("""Use `snippets_access_level` instead. This attribute will be removed in 19.0.""")
765
781
  def snippets_enabled(self) -> _builtins.bool:
766
782
  """
767
- Enable snippets for the project.
783
+ Enable snippets for the project. Use `snippets_access_level` instead. This attribute will be removed in 19.0.
768
784
  """
769
785
  return pulumi.get(self, "snippets_enabled")
770
786
 
@@ -826,9 +842,10 @@ class GetProjectResult:
826
842
 
827
843
  @_builtins.property
828
844
  @pulumi.getter(name="wikiEnabled")
845
+ @_utilities.deprecated("""Use `wiki_access_level` instead. This attribute will be removed in 19.0.""")
829
846
  def wiki_enabled(self) -> _builtins.bool:
830
847
  """
831
- Enable wiki for the project.
848
+ Enable wiki for the project. Use `wiki_access_level` instead. This attribute will be removed in 19.0.
832
849
  """
833
850
  return pulumi.get(self, "wiki_enabled")
834
851
 
@@ -879,6 +896,7 @@ class AwaitableGetProjectResult(GetProjectResult):
879
896
  merge_requests_access_level=self.merge_requests_access_level,
880
897
  merge_requests_enabled=self.merge_requests_enabled,
881
898
  merge_trains_enabled=self.merge_trains_enabled,
899
+ merge_trains_skip_train_allowed=self.merge_trains_skip_train_allowed,
882
900
  model_experiments_access_level=self.model_experiments_access_level,
883
901
  model_registry_access_level=self.model_registry_access_level,
884
902
  monitor_access_level=self.monitor_access_level,
@@ -982,6 +1000,7 @@ def get_project(ci_default_git_depth: Optional[_builtins.int] = None,
982
1000
  merge_requests_access_level=pulumi.get(__ret__, 'merge_requests_access_level'),
983
1001
  merge_requests_enabled=pulumi.get(__ret__, 'merge_requests_enabled'),
984
1002
  merge_trains_enabled=pulumi.get(__ret__, 'merge_trains_enabled'),
1003
+ merge_trains_skip_train_allowed=pulumi.get(__ret__, 'merge_trains_skip_train_allowed'),
985
1004
  model_experiments_access_level=pulumi.get(__ret__, 'model_experiments_access_level'),
986
1005
  model_registry_access_level=pulumi.get(__ret__, 'model_registry_access_level'),
987
1006
  monitor_access_level=pulumi.get(__ret__, 'monitor_access_level'),
@@ -1082,6 +1101,7 @@ def get_project_output(ci_default_git_depth: Optional[pulumi.Input[Optional[_bui
1082
1101
  merge_requests_access_level=pulumi.get(__response__, 'merge_requests_access_level'),
1083
1102
  merge_requests_enabled=pulumi.get(__response__, 'merge_requests_enabled'),
1084
1103
  merge_trains_enabled=pulumi.get(__response__, 'merge_trains_enabled'),
1104
+ merge_trains_skip_train_allowed=pulumi.get(__response__, 'merge_trains_skip_train_allowed'),
1085
1105
  model_experiments_access_level=pulumi.get(__response__, 'model_experiments_access_level'),
1086
1106
  model_registry_access_level=pulumi.get(__response__, 'model_registry_access_level'),
1087
1107
  monitor_access_level=pulumi.get(__response__, 'monitor_access_level'),
@@ -0,0 +1,137 @@
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
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = [
20
+ 'GetProjectApprovalRulesResult',
21
+ 'AwaitableGetProjectApprovalRulesResult',
22
+ 'get_project_approval_rules',
23
+ 'get_project_approval_rules_output',
24
+ ]
25
+
26
+ @pulumi.output_type
27
+ class GetProjectApprovalRulesResult:
28
+ """
29
+ A collection of values returned by getProjectApprovalRules.
30
+ """
31
+ def __init__(__self__, approval_rules=None, id=None, project=None):
32
+ if approval_rules and not isinstance(approval_rules, list):
33
+ raise TypeError("Expected argument 'approval_rules' to be a list")
34
+ pulumi.set(__self__, "approval_rules", approval_rules)
35
+ if id and not isinstance(id, str):
36
+ raise TypeError("Expected argument 'id' to be a str")
37
+ pulumi.set(__self__, "id", id)
38
+ if project and not isinstance(project, str):
39
+ raise TypeError("Expected argument 'project' to be a str")
40
+ pulumi.set(__self__, "project", project)
41
+
42
+ @_builtins.property
43
+ @pulumi.getter(name="approvalRules")
44
+ def approval_rules(self) -> Optional[Sequence['outputs.GetProjectApprovalRulesApprovalRuleResult']]:
45
+ """
46
+ A list of project approval rules, as defined below.
47
+ """
48
+ return pulumi.get(self, "approval_rules")
49
+
50
+ @_builtins.property
51
+ @pulumi.getter
52
+ def id(self) -> _builtins.str:
53
+ return pulumi.get(self, "id")
54
+
55
+ @_builtins.property
56
+ @pulumi.getter
57
+ def project(self) -> _builtins.str:
58
+ """
59
+ The ID or path with namespace that identifies the project.
60
+ """
61
+ return pulumi.get(self, "project")
62
+
63
+
64
+ class AwaitableGetProjectApprovalRulesResult(GetProjectApprovalRulesResult):
65
+ # pylint: disable=using-constant-test
66
+ def __await__(self):
67
+ if False:
68
+ yield self
69
+ return GetProjectApprovalRulesResult(
70
+ approval_rules=self.approval_rules,
71
+ id=self.id,
72
+ project=self.project)
73
+
74
+
75
+ def get_project_approval_rules(approval_rules: Optional[Sequence[Union['GetProjectApprovalRulesApprovalRuleArgs', 'GetProjectApprovalRulesApprovalRuleArgsDict']]] = None,
76
+ project: Optional[_builtins.str] = None,
77
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetProjectApprovalRulesResult:
78
+ """
79
+ The `get_project_approval_rules` data source retrieves all approval rules of a given project.
80
+
81
+ **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/merge_request_approvals/#list-all-approval-rules-for-a-project)
82
+
83
+ ## Example Usage
84
+
85
+ ```python
86
+ import pulumi
87
+ import pulumi_gitlab as gitlab
88
+
89
+ by_project_id = gitlab.get_project_approval_rules(project="12345")
90
+ by_project_path = gitlab.get_project_approval_rules(project="my-group/my-project")
91
+ ```
92
+
93
+
94
+ :param Sequence[Union['GetProjectApprovalRulesApprovalRuleArgs', 'GetProjectApprovalRulesApprovalRuleArgsDict']] approval_rules: A list of project approval rules, as defined below.
95
+ :param _builtins.str project: The ID or path with namespace that identifies the project.
96
+ """
97
+ __args__ = dict()
98
+ __args__['approvalRules'] = approval_rules
99
+ __args__['project'] = project
100
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
101
+ __ret__ = pulumi.runtime.invoke('gitlab:index/getProjectApprovalRules:getProjectApprovalRules', __args__, opts=opts, typ=GetProjectApprovalRulesResult).value
102
+
103
+ return AwaitableGetProjectApprovalRulesResult(
104
+ approval_rules=pulumi.get(__ret__, 'approval_rules'),
105
+ id=pulumi.get(__ret__, 'id'),
106
+ project=pulumi.get(__ret__, 'project'))
107
+ def get_project_approval_rules_output(approval_rules: Optional[pulumi.Input[Optional[Sequence[Union['GetProjectApprovalRulesApprovalRuleArgs', 'GetProjectApprovalRulesApprovalRuleArgsDict']]]]] = None,
108
+ project: Optional[pulumi.Input[_builtins.str]] = None,
109
+ opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetProjectApprovalRulesResult]:
110
+ """
111
+ The `get_project_approval_rules` data source retrieves all approval rules of a given project.
112
+
113
+ **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/api/merge_request_approvals/#list-all-approval-rules-for-a-project)
114
+
115
+ ## Example Usage
116
+
117
+ ```python
118
+ import pulumi
119
+ import pulumi_gitlab as gitlab
120
+
121
+ by_project_id = gitlab.get_project_approval_rules(project="12345")
122
+ by_project_path = gitlab.get_project_approval_rules(project="my-group/my-project")
123
+ ```
124
+
125
+
126
+ :param Sequence[Union['GetProjectApprovalRulesApprovalRuleArgs', 'GetProjectApprovalRulesApprovalRuleArgsDict']] approval_rules: A list of project approval rules, as defined below.
127
+ :param _builtins.str project: The ID or path with namespace that identifies the project.
128
+ """
129
+ __args__ = dict()
130
+ __args__['approvalRules'] = approval_rules
131
+ __args__['project'] = project
132
+ opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
133
+ __ret__ = pulumi.runtime.invoke_output('gitlab:index/getProjectApprovalRules:getProjectApprovalRules', __args__, opts=opts, typ=GetProjectApprovalRulesResult)
134
+ return __ret__.apply(lambda __response__: GetProjectApprovalRulesResult(
135
+ approval_rules=pulumi.get(__response__, 'approval_rules'),
136
+ id=pulumi.get(__response__, 'id'),
137
+ project=pulumi.get(__response__, 'project')))
@@ -50,7 +50,7 @@ class GetProjectBranchesResult:
50
50
  @pulumi.getter
51
51
  def id(self) -> _builtins.str:
52
52
  """
53
- The provider-assigned unique ID for this managed resource.
53
+ The ID of this datasource. In the format `<project>`.
54
54
  """
55
55
  return pulumi.get(self, "id")
56
56