@pulumi/gitlab 9.12.0-alpha.1782457766 → 10.0.0

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 (234) hide show
  1. package/README.md +2 -2
  2. package/applicationSettings.d.ts +48 -18
  3. package/applicationSettings.d.ts.map +1 -1
  4. package/applicationSettings.js +8 -2
  5. package/applicationSettings.js.map +1 -1
  6. package/branchProtection.d.ts +48 -52
  7. package/branchProtection.d.ts.map +1 -1
  8. package/branchProtection.js +30 -24
  9. package/branchProtection.js.map +1 -1
  10. package/getGroup.d.ts +114 -2
  11. package/getGroup.d.ts.map +1 -1
  12. package/getGroup.js.map +1 -1
  13. package/getGroupHook.d.ts +40 -6
  14. package/getGroupHook.d.ts.map +1 -1
  15. package/getGroupHook.js.map +1 -1
  16. package/getGroupLabel.d.ts +125 -0
  17. package/getGroupLabel.d.ts.map +1 -0
  18. package/getGroupLabel.js +93 -0
  19. package/getGroupLabel.js.map +1 -0
  20. package/getGroupLabels.d.ts +74 -0
  21. package/getGroupLabels.d.ts.map +1 -0
  22. package/getGroupLabels.js +79 -0
  23. package/getGroupLabels.js.map +1 -0
  24. package/getGroupProtectedBranch.d.ts +82 -0
  25. package/getGroupProtectedBranch.d.ts.map +1 -0
  26. package/getGroupProtectedBranch.js +61 -0
  27. package/getGroupProtectedBranch.js.map +1 -0
  28. package/getGroupProtectedBranches.d.ts +54 -0
  29. package/getGroupProtectedBranches.d.ts.map +1 -0
  30. package/getGroupProtectedBranches.js +59 -0
  31. package/getGroupProtectedBranches.js.map +1 -0
  32. package/getProject.d.ts +355 -57
  33. package/getProject.d.ts.map +1 -1
  34. package/getProject.js +0 -6
  35. package/getProject.js.map +1 -1
  36. package/getProjectHook.d.ts +36 -6
  37. package/getProjectHook.d.ts.map +1 -1
  38. package/getProjectHook.js.map +1 -1
  39. package/getProjectMembership.d.ts +4 -40
  40. package/getProjectMembership.d.ts.map +1 -1
  41. package/getProjectMembership.js +0 -6
  42. package/getProjectMembership.js.map +1 -1
  43. package/getProjectProtectedBranch.d.ts +8 -21
  44. package/getProjectProtectedBranch.d.ts.map +1 -1
  45. package/getProjectProtectedBranch.js +0 -4
  46. package/getProjectProtectedBranch.js.map +1 -1
  47. package/getProjectProtectedBranches.d.ts +1 -10
  48. package/getProjectProtectedBranches.d.ts.map +1 -1
  49. package/getProjectProtectedBranches.js +0 -2
  50. package/getProjectProtectedBranches.js.map +1 -1
  51. package/getProjectServiceAccount.d.ts +97 -0
  52. package/getProjectServiceAccount.d.ts.map +1 -0
  53. package/getProjectServiceAccount.js +89 -0
  54. package/getProjectServiceAccount.js.map +1 -0
  55. package/getProjects.d.ts +22 -10
  56. package/getProjects.d.ts.map +1 -1
  57. package/getProjects.js +2 -0
  58. package/getProjects.js.map +1 -1
  59. package/getSystemHook.d.ts +111 -0
  60. package/getSystemHook.d.ts.map +1 -0
  61. package/getSystemHook.js +81 -0
  62. package/getSystemHook.js.map +1 -0
  63. package/getSystemHooks.d.ts +50 -0
  64. package/getSystemHooks.d.ts.map +1 -0
  65. package/getSystemHooks.js +73 -0
  66. package/getSystemHooks.js.map +1 -0
  67. package/group.d.ts +12 -0
  68. package/group.d.ts.map +1 -1
  69. package/group.js +2 -0
  70. package/group.js.map +1 -1
  71. package/groupAccessToken.d.ts +3 -3
  72. package/groupBranchProtection.d.ts +185 -0
  73. package/groupBranchProtection.d.ts.map +1 -0
  74. package/groupBranchProtection.js +146 -0
  75. package/groupBranchProtection.js.map +1 -0
  76. package/groupCluster.d.ts +1 -1
  77. package/groupCluster.js +1 -1
  78. package/groupDeployToken.d.ts +3 -3
  79. package/groupHook.d.ts +75 -3
  80. package/groupHook.d.ts.map +1 -1
  81. package/groupHook.js +15 -1
  82. package/groupHook.js.map +1 -1
  83. package/{integrationHarbor.d.ts → groupIntegrationHarbor.d.ts} +39 -43
  84. package/groupIntegrationHarbor.d.ts.map +1 -0
  85. package/{integrationHarbor.js → groupIntegrationHarbor.js} +30 -34
  86. package/groupIntegrationHarbor.js.map +1 -0
  87. package/groupSamlLink.d.ts +3 -3
  88. package/groupSavedReply.d.ts +78 -0
  89. package/groupSavedReply.d.ts.map +1 -0
  90. package/{deployToken.js → groupSavedReply.js} +19 -45
  91. package/groupSavedReply.js.map +1 -0
  92. package/groupServiceAccount.d.ts +12 -0
  93. package/groupServiceAccount.d.ts.map +1 -1
  94. package/groupServiceAccount.js +2 -0
  95. package/groupServiceAccount.js.map +1 -1
  96. package/groupServiceAccountAccessToken.d.ts +3 -3
  97. package/index.d.ts +45 -48
  98. package/index.d.ts.map +1 -1
  99. package/index.js +67 -86
  100. package/index.js.map +1 -1
  101. package/instanceCluster.d.ts +1 -1
  102. package/instanceCluster.js +1 -1
  103. package/integrationSlack.d.ts +0 -18
  104. package/integrationSlack.d.ts.map +1 -1
  105. package/integrationSlack.js +0 -2
  106. package/integrationSlack.js.map +1 -1
  107. package/memberRole.d.ts +3 -3
  108. package/package.json +2 -2
  109. package/personalAccessToken.d.ts +3 -3
  110. package/project.d.ts +36 -234
  111. package/project.d.ts.map +1 -1
  112. package/project.js +6 -26
  113. package/project.js.map +1 -1
  114. package/projectAccessToken.d.ts +3 -3
  115. package/projectCluster.d.ts +1 -1
  116. package/projectCluster.js +1 -1
  117. package/projectDeployToken.d.ts +3 -3
  118. package/projectHook.d.ts +103 -0
  119. package/projectHook.d.ts.map +1 -1
  120. package/projectHook.js +30 -1
  121. package/projectHook.js.map +1 -1
  122. package/projectIntegrationDatadog.d.ts +200 -0
  123. package/projectIntegrationDatadog.d.ts.map +1 -0
  124. package/{integrationGithub.js → projectIntegrationDatadog.js} +44 -45
  125. package/projectIntegrationDatadog.js.map +1 -0
  126. package/{integrationMicrosoftTeams.d.ts → projectIntegrationGoogleChat.d.ts} +35 -95
  127. package/projectIntegrationGoogleChat.d.ts.map +1 -0
  128. package/{integrationMicrosoftTeams.js → projectIntegrationGoogleChat.js} +12 -50
  129. package/projectIntegrationGoogleChat.js.map +1 -0
  130. package/projectIntegrationJira.d.ts +12 -12
  131. package/projectJobTokenScopes.d.ts +5 -21
  132. package/projectJobTokenScopes.d.ts.map +1 -1
  133. package/projectJobTokenScopes.js +6 -3
  134. package/projectJobTokenScopes.js.map +1 -1
  135. package/projectLabel.d.ts +12 -0
  136. package/projectLabel.d.ts.map +1 -1
  137. package/projectLabel.js +2 -0
  138. package/projectLabel.js.map +1 -1
  139. package/projectLevelMrApprovals.d.ts +21 -3
  140. package/projectLevelMrApprovals.d.ts.map +1 -1
  141. package/projectLevelMrApprovals.js +2 -0
  142. package/projectLevelMrApprovals.js.map +1 -1
  143. package/projectMergeRequestNote.d.ts +3 -3
  144. package/projectProtectedEnvironment.d.ts +4 -22
  145. package/projectProtectedEnvironment.d.ts.map +1 -1
  146. package/projectProtectedEnvironment.js +1 -3
  147. package/projectProtectedEnvironment.js.map +1 -1
  148. package/projectPushMirror.d.ts +12 -0
  149. package/projectPushMirror.d.ts.map +1 -1
  150. package/projectPushMirror.js +2 -0
  151. package/projectPushMirror.js.map +1 -1
  152. package/projectSavedReply.d.ts +78 -0
  153. package/projectSavedReply.d.ts.map +1 -0
  154. package/{label.js → projectSavedReply.js} +16 -24
  155. package/projectSavedReply.js.map +1 -0
  156. package/projectServiceAccount.d.ts +152 -0
  157. package/projectServiceAccount.d.ts.map +1 -0
  158. package/{integrationPipelinesEmail.js → projectServiceAccount.js} +42 -35
  159. package/projectServiceAccount.js.map +1 -0
  160. package/projectShareGroup.d.ts +2 -20
  161. package/projectShareGroup.d.ts.map +1 -1
  162. package/projectShareGroup.js +3 -2
  163. package/projectShareGroup.js.map +1 -1
  164. package/projectTargetBranchRule.d.ts +1 -1
  165. package/projectTargetBranchRule.js +1 -1
  166. package/systemHook.d.ts +50 -6
  167. package/systemHook.d.ts.map +1 -1
  168. package/systemHook.js +9 -1
  169. package/systemHook.js.map +1 -1
  170. package/types/input.d.ts +95 -249
  171. package/types/input.d.ts.map +1 -1
  172. package/types/output.d.ts +1168 -168
  173. package/types/output.d.ts.map +1 -1
  174. package/userImpersonationToken.d.ts +3 -3
  175. package/userSavedReply.d.ts +66 -0
  176. package/userSavedReply.d.ts.map +1 -0
  177. package/userSavedReply.js +82 -0
  178. package/userSavedReply.js.map +1 -0
  179. package/deployToken.d.ts +0 -147
  180. package/deployToken.d.ts.map +0 -1
  181. package/deployToken.js.map +0 -1
  182. package/integrationCustomIssueTracker.d.ts +0 -142
  183. package/integrationCustomIssueTracker.d.ts.map +0 -1
  184. package/integrationCustomIssueTracker.js +0 -130
  185. package/integrationCustomIssueTracker.js.map +0 -1
  186. package/integrationEmailsOnPush.d.ts +0 -198
  187. package/integrationEmailsOnPush.d.ts.map +0 -1
  188. package/integrationEmailsOnPush.js +0 -137
  189. package/integrationEmailsOnPush.js.map +0 -1
  190. package/integrationExternalWiki.d.ts +0 -137
  191. package/integrationExternalWiki.d.ts.map +0 -1
  192. package/integrationExternalWiki.js +0 -126
  193. package/integrationExternalWiki.js.map +0 -1
  194. package/integrationGithub.d.ts +0 -156
  195. package/integrationGithub.d.ts.map +0 -1
  196. package/integrationGithub.js.map +0 -1
  197. package/integrationHarbor.d.ts.map +0 -1
  198. package/integrationHarbor.js.map +0 -1
  199. package/integrationJenkins.d.ts +0 -190
  200. package/integrationJenkins.d.ts.map +0 -1
  201. package/integrationJenkins.js +0 -138
  202. package/integrationJenkins.js.map +0 -1
  203. package/integrationJira.d.ts +0 -299
  204. package/integrationJira.d.ts.map +0 -1
  205. package/integrationJira.js +0 -159
  206. package/integrationJira.js.map +0 -1
  207. package/integrationMattermost.d.ts +0 -352
  208. package/integrationMattermost.d.ts.map +0 -1
  209. package/integrationMattermost.js +0 -163
  210. package/integrationMattermost.js.map +0 -1
  211. package/integrationMicrosoftTeams.d.ts.map +0 -1
  212. package/integrationMicrosoftTeams.js.map +0 -1
  213. package/integrationPipelinesEmail.d.ts +0 -123
  214. package/integrationPipelinesEmail.d.ts.map +0 -1
  215. package/integrationPipelinesEmail.js.map +0 -1
  216. package/integrationRedmine.d.ts +0 -136
  217. package/integrationRedmine.d.ts.map +0 -1
  218. package/integrationRedmine.js +0 -131
  219. package/integrationRedmine.js.map +0 -1
  220. package/integrationTelegram.d.ts +0 -253
  221. package/integrationTelegram.d.ts.map +0 -1
  222. package/integrationTelegram.js +0 -184
  223. package/integrationTelegram.js.map +0 -1
  224. package/label.d.ts +0 -108
  225. package/label.d.ts.map +0 -1
  226. package/label.js.map +0 -1
  227. package/projectMirror.d.ts +0 -166
  228. package/projectMirror.d.ts.map +0 -1
  229. package/projectMirror.js +0 -131
  230. package/projectMirror.js.map +0 -1
  231. package/runner.d.ts +0 -188
  232. package/runner.d.ts.map +0 -1
  233. package/runner.js +0 -122
  234. package/runner.js.map +0 -1
package/types/output.d.ts CHANGED
@@ -69,7 +69,7 @@ export interface BranchCommit {
69
69
  }
70
70
  export interface BranchProtectionAllowedToMerge {
71
71
  /**
72
- * Access levels allowed to merge to protected branch. Valid values are: `no one`, `developer`, `maintainer`, `admin`.
72
+ * Access level allowed to perform the relevant action. Mutually exclusive with `groupId` and `userId`. Valid values are: `no one`, `developer`, `maintainer`, `admin`.
73
73
  */
74
74
  accessLevel: string;
75
75
  /**
@@ -77,17 +77,17 @@ export interface BranchProtectionAllowedToMerge {
77
77
  */
78
78
  accessLevelDescription: string;
79
79
  /**
80
- * The ID of a GitLab group allowed to perform the relevant action. Mutually exclusive with `userId`.
80
+ * The ID of a GitLab group allowed to perform the relevant action. Mutually exclusive with `userId` and `accessLevel`.
81
81
  */
82
82
  groupId?: number;
83
83
  /**
84
- * The ID of a GitLab user allowed to perform the relevant action. Mutually exclusive with `groupId`.
84
+ * The ID of a GitLab user allowed to perform the relevant action. Mutually exclusive with `groupId` and `accessLevel`.
85
85
  */
86
86
  userId?: number;
87
87
  }
88
88
  export interface BranchProtectionAllowedToPush {
89
89
  /**
90
- * Access levels allowed to push to protected branch. Valid values are: `no one`, `developer`, `maintainer`, `admin`.
90
+ * Access level allowed to perform the relevant action. Mutually exclusive with `deployKeyId`, `groupId`, and `userId`. Valid values are: `no one`, `developer`, `maintainer`, `admin`.
91
91
  */
92
92
  accessLevel: string;
93
93
  /**
@@ -95,21 +95,21 @@ export interface BranchProtectionAllowedToPush {
95
95
  */
96
96
  accessLevelDescription: string;
97
97
  /**
98
- * The ID of a GitLab deploy key allowed to perform the relevant action. Mutually exclusive with `groupId` and `userId`. This field is read-only until Gitlab 17.5.
98
+ * The ID of a GitLab deploy key allowed to perform the relevant action. Mutually exclusive with `userId`, `groupId`, and `accessLevel`. This field is read-only until Gitlab 17.5.
99
99
  */
100
100
  deployKeyId?: number;
101
101
  /**
102
- * The ID of a GitLab group allowed to perform the relevant action. Mutually exclusive with `deployKeyId` and `userId`.
102
+ * The ID of a GitLab group allowed to perform the relevant action. Mutually exclusive with `deployKeyId`, `userId`, and `accessLevel`.
103
103
  */
104
104
  groupId?: number;
105
105
  /**
106
- * The ID of a GitLab user allowed to perform the relevant action. Mutually exclusive with `deployKeyId` and `groupId`.
106
+ * The ID of a GitLab user allowed to perform the relevant action. Mutually exclusive with `deployKeyId`, `groupId`, and `accessLevel`.
107
107
  */
108
108
  userId?: number;
109
109
  }
110
110
  export interface BranchProtectionAllowedToUnprotect {
111
111
  /**
112
- * Access levels allowed to unprotect push to protected branch. Valid values are: `developer`, `maintainer`, `admin`.
112
+ * Access level allowed to perform the relevant action. Mutually exclusive with `groupId` and `userId`. Valid values are: `developer`, `maintainer`, `admin`.
113
113
  */
114
114
  accessLevel: string;
115
115
  /**
@@ -117,11 +117,11 @@ export interface BranchProtectionAllowedToUnprotect {
117
117
  */
118
118
  accessLevelDescription: string;
119
119
  /**
120
- * The ID of a GitLab group allowed to perform the relevant action. Mutually exclusive with `userId`.
120
+ * The ID of a GitLab group allowed to perform the relevant action. Mutually exclusive with `userId` and `accessLevel`.
121
121
  */
122
122
  groupId?: number;
123
123
  /**
124
- * The ID of a GitLab user allowed to perform the relevant action. Mutually exclusive with `groupId`.
124
+ * The ID of a GitLab user allowed to perform the relevant action. Mutually exclusive with `groupId` and `accessLevel`.
125
125
  */
126
126
  userId?: number;
127
127
  }
@@ -235,7 +235,49 @@ export interface GetGroupBillableMemberMembershipsMembership {
235
235
  */
236
236
  sourceMembersUrl: string;
237
237
  }
238
+ export interface GetGroupDefaultBranchProtectionDefault {
239
+ /**
240
+ * Whether force-push is allowed to the default branch.
241
+ */
242
+ allowForcePush: boolean;
243
+ /**
244
+ * Access levels allowed to merge into the default branch.
245
+ */
246
+ allowedToMerges: outputs.GetGroupDefaultBranchProtectionDefaultAllowedToMerge[];
247
+ /**
248
+ * Access levels allowed to push to the default branch.
249
+ */
250
+ allowedToPushes: outputs.GetGroupDefaultBranchProtectionDefaultAllowedToPush[];
251
+ /**
252
+ * Whether code-owner approval is required on the default branch.
253
+ */
254
+ codeOwnerApprovalRequired: boolean;
255
+ /**
256
+ * Whether developers can make the initial push to the default branch.
257
+ */
258
+ developerCanInitialPush: boolean;
259
+ }
260
+ export interface GetGroupDefaultBranchProtectionDefaultAllowedToMerge {
261
+ /**
262
+ * The access level integer.
263
+ */
264
+ accessLevel: number;
265
+ }
266
+ export interface GetGroupDefaultBranchProtectionDefaultAllowedToPush {
267
+ /**
268
+ * The access level integer.
269
+ */
270
+ accessLevel: number;
271
+ }
238
272
  export interface GetGroupHooksHook {
273
+ /**
274
+ * Lifecycle status of the webhook. Values include `executable` and `disabled`.
275
+ */
276
+ alertStatus: string;
277
+ /**
278
+ * Filter push events by branch.
279
+ */
280
+ branchFilterStrategy: string;
239
281
  /**
240
282
  * Invoke the hook for confidential issues events.
241
283
  */
@@ -244,6 +286,10 @@ export interface GetGroupHooksHook {
244
286
  * Invoke the hook for confidential notes events.
245
287
  */
246
288
  confidentialNoteEvents: boolean;
289
+ /**
290
+ * The date and time the hook was created in ISO8601 format.
291
+ */
292
+ createdAt: string;
247
293
  /**
248
294
  * Set a custom webhook template.
249
295
  */
@@ -252,6 +298,10 @@ export interface GetGroupHooksHook {
252
298
  * Invoke the hook for deployment events.
253
299
  */
254
300
  deploymentEvents: boolean;
301
+ /**
302
+ * Time until the webhook is re-enabled after being automatically disabled due to failures, in ISO8601 format. Null when the webhook is enabled.
303
+ */
304
+ disabledUntil: string;
255
305
  /**
256
306
  * Invoke the hook for emoji events.
257
307
  */
@@ -260,6 +310,10 @@ export interface GetGroupHooksHook {
260
310
  * Enable ssl verification when invoking the hook.
261
311
  */
262
312
  enableSslVerification: boolean;
313
+ /**
314
+ * Invoke the hook for feature flag events.
315
+ */
316
+ featureFlagEvents: boolean;
263
317
  /**
264
318
  * The ID or full path of the group.
265
319
  */
@@ -280,10 +334,18 @@ export interface GetGroupHooksHook {
280
334
  * Invoke the hook for job events.
281
335
  */
282
336
  jobEvents: boolean;
337
+ /**
338
+ * Invoke the hook for member events.
339
+ */
340
+ memberEvents: boolean;
283
341
  /**
284
342
  * Invoke the hook for merge requests.
285
343
  */
286
344
  mergeRequestsEvents: boolean;
345
+ /**
346
+ * Invoke the hook for milestone events.
347
+ */
348
+ milestoneEvents: boolean;
287
349
  /**
288
350
  * Invoke the hook for notes events.
289
351
  */
@@ -292,6 +354,10 @@ export interface GetGroupHooksHook {
292
354
  * Invoke the hook for pipeline events.
293
355
  */
294
356
  pipelineEvents: boolean;
357
+ /**
358
+ * Invoke the hook for project events.
359
+ */
360
+ projectEvents: boolean;
295
361
  /**
296
362
  * Invoke the hook for push events.
297
363
  */
@@ -304,6 +370,14 @@ export interface GetGroupHooksHook {
304
370
  * Invoke the hook for releases events.
305
371
  */
306
372
  releasesEvents: boolean;
373
+ /**
374
+ * Invoke the hook for resource access token expiry events.
375
+ */
376
+ resourceAccessTokenEvents: boolean;
377
+ /**
378
+ * Whether a `signingToken` is configured server-side. Reflects the value returned by the GitLab API.
379
+ */
380
+ signingTokenPresent: boolean;
307
381
  /**
308
382
  * Invoke the hook for subgroup events.
309
383
  */
@@ -312,12 +386,6 @@ export interface GetGroupHooksHook {
312
386
  * Invoke the hook for tag push events.
313
387
  */
314
388
  tagPushEvents: boolean;
315
- /**
316
- * A token to present when invoking the hook. The token is only available on resource creation, not in this datasource. It will always be blank. To be removed in 19.0.
317
- *
318
- * @deprecated The token is only available on resource creation, not in this datasource. It will always be blank. To be removed in 19.0.
319
- */
320
- token: string;
321
389
  /**
322
390
  * The url of the hook to invoke.
323
391
  */
@@ -331,6 +399,44 @@ export interface GetGroupHooksHook {
331
399
  */
332
400
  wikiPageEvents: boolean;
333
401
  }
402
+ export interface GetGroupLabelsLabel {
403
+ /**
404
+ * The number of closed issues with this label.
405
+ */
406
+ closedIssuesCount: number;
407
+ /**
408
+ * The color of the label given in 6-digit hex notation with leading '#' sign.
409
+ */
410
+ color: string;
411
+ /**
412
+ * The description of the label.
413
+ */
414
+ description: string;
415
+ /**
416
+ * The ID of the label.
417
+ */
418
+ id: number;
419
+ /**
420
+ * The name of the label.
421
+ */
422
+ name: string;
423
+ /**
424
+ * The number of open issues with this label.
425
+ */
426
+ openIssuesCount: number;
427
+ /**
428
+ * The number of open merge requests with this label.
429
+ */
430
+ openMergeRequestsCount: number;
431
+ /**
432
+ * Whether the authenticated user is subscribed to the label.
433
+ */
434
+ subscribed: boolean;
435
+ /**
436
+ * The text color of the label given in 6-digit hex notation with leading '#' sign.
437
+ */
438
+ textColor: string;
439
+ }
334
440
  export interface GetGroupMembershipMember {
335
441
  /**
336
442
  * The level of access to the group.
@@ -383,6 +489,152 @@ export interface GetGroupMembershipMemberGroupSamlIdentity {
383
489
  */
384
490
  samlProviderId: number;
385
491
  }
492
+ export interface GetGroupProtectedBranchMergeAccessLevel {
493
+ /**
494
+ * Access level allowed to perform the relevant action.
495
+ */
496
+ accessLevel: string;
497
+ /**
498
+ * Readable description of access level.
499
+ */
500
+ accessLevelDescription: string;
501
+ /**
502
+ * The ID of a GitLab group allowed to perform the relevant action.
503
+ */
504
+ groupId: number;
505
+ /**
506
+ * The ID of a GitLab user allowed to perform the relevant action.
507
+ */
508
+ userId: number;
509
+ }
510
+ export interface GetGroupProtectedBranchPushAccessLevel {
511
+ /**
512
+ * Access level allowed to perform the relevant action.
513
+ */
514
+ accessLevel: string;
515
+ /**
516
+ * Readable description of access level.
517
+ */
518
+ accessLevelDescription: string;
519
+ /**
520
+ * The ID of a GitLab deploy key allowed to perform the relevant action.
521
+ */
522
+ deployKeyId: number;
523
+ /**
524
+ * The ID of a GitLab group allowed to perform the relevant action.
525
+ */
526
+ groupId: number;
527
+ /**
528
+ * The ID of a GitLab user allowed to perform the relevant action.
529
+ */
530
+ userId: number;
531
+ }
532
+ export interface GetGroupProtectedBranchUnprotectAccessLevel {
533
+ /**
534
+ * Access level allowed to perform the relevant action.
535
+ */
536
+ accessLevel: string;
537
+ /**
538
+ * Readable description of access level.
539
+ */
540
+ accessLevelDescription: string;
541
+ /**
542
+ * The ID of a GitLab group allowed to perform the relevant action.
543
+ */
544
+ groupId: number;
545
+ /**
546
+ * The ID of a GitLab user allowed to perform the relevant action.
547
+ */
548
+ userId: number;
549
+ }
550
+ export interface GetGroupProtectedBranchesProtectedBranch {
551
+ /**
552
+ * Whether force push is allowed.
553
+ */
554
+ allowForcePush: boolean;
555
+ /**
556
+ * Reject code pushes that change files listed in the CODEOWNERS file.
557
+ */
558
+ codeOwnerApprovalRequired: boolean;
559
+ /**
560
+ * The ID of this resource.
561
+ */
562
+ id: number;
563
+ /**
564
+ * Array of merge access levels/users/groups allowed for the protected branch.
565
+ */
566
+ mergeAccessLevels: outputs.GetGroupProtectedBranchesProtectedBranchMergeAccessLevel[];
567
+ /**
568
+ * The name of the protected branch.
569
+ */
570
+ name: string;
571
+ /**
572
+ * Array of push access levels/users/groups/deploy keys allowed for the protected branch.
573
+ */
574
+ pushAccessLevels: outputs.GetGroupProtectedBranchesProtectedBranchPushAccessLevel[];
575
+ /**
576
+ * Array of unprotect access levels/users/groups allowed for the protected branch.
577
+ */
578
+ unprotectAccessLevels: outputs.GetGroupProtectedBranchesProtectedBranchUnprotectAccessLevel[];
579
+ }
580
+ export interface GetGroupProtectedBranchesProtectedBranchMergeAccessLevel {
581
+ /**
582
+ * Access level allowed to perform the relevant action.
583
+ */
584
+ accessLevel: string;
585
+ /**
586
+ * Readable description of access level.
587
+ */
588
+ accessLevelDescription: string;
589
+ /**
590
+ * The ID of a GitLab group allowed to perform the relevant action.
591
+ */
592
+ groupId: number;
593
+ /**
594
+ * The ID of a GitLab user allowed to perform the relevant action.
595
+ */
596
+ userId: number;
597
+ }
598
+ export interface GetGroupProtectedBranchesProtectedBranchPushAccessLevel {
599
+ /**
600
+ * Access level allowed to perform the relevant action.
601
+ */
602
+ accessLevel: string;
603
+ /**
604
+ * Readable description of access level.
605
+ */
606
+ accessLevelDescription: string;
607
+ /**
608
+ * The ID of a GitLab deploy key allowed to perform the relevant action.
609
+ */
610
+ deployKeyId: number;
611
+ /**
612
+ * The ID of a GitLab group allowed to perform the relevant action.
613
+ */
614
+ groupId: number;
615
+ /**
616
+ * The ID of a GitLab user allowed to perform the relevant action.
617
+ */
618
+ userId: number;
619
+ }
620
+ export interface GetGroupProtectedBranchesProtectedBranchUnprotectAccessLevel {
621
+ /**
622
+ * Access level allowed to perform the relevant action.
623
+ */
624
+ accessLevel: string;
625
+ /**
626
+ * Readable description of access level.
627
+ */
628
+ accessLevelDescription: string;
629
+ /**
630
+ * The ID of a GitLab group allowed to perform the relevant action.
631
+ */
632
+ groupId: number;
633
+ /**
634
+ * The ID of a GitLab user allowed to perform the relevant action.
635
+ */
636
+ userId: number;
637
+ }
386
638
  export interface GetGroupProvisionedUsersProvisionedUser {
387
639
  /**
388
640
  * The avatar URL of the provisioned user.
@@ -485,6 +737,60 @@ export interface GetGroupProvisionedUsersProvisionedUser {
485
737
  */
486
738
  websiteUrl: string;
487
739
  }
740
+ export interface GetGroupPushRule {
741
+ /**
742
+ * All commit author emails must match this regex, e.g. `@my-company.com$`.
743
+ */
744
+ authorEmailRegex: string;
745
+ /**
746
+ * All branch names must match this regex, e.g. `(feature|hotfix)\/*`.
747
+ */
748
+ branchNameRegex: string;
749
+ /**
750
+ * Users can only push commits to projects in this group that were committed with one of their own verified emails.
751
+ */
752
+ commitCommitterCheck: boolean;
753
+ /**
754
+ * Users can only push commits to projects in this group if the commit author name is consistent with their GitLab account name.
755
+ */
756
+ commitCommitterNameCheck: boolean;
757
+ /**
758
+ * No commit message is allowed to match this regex, for example `ssh\:\/\/`.
759
+ */
760
+ commitMessageNegativeRegex: string;
761
+ /**
762
+ * All commit messages must match this regex, e.g. `Fixed \d+\..*`.
763
+ */
764
+ commitMessageRegex: string;
765
+ /**
766
+ * Deny deleting a tag.
767
+ */
768
+ denyDeleteTag: boolean;
769
+ /**
770
+ * All committed filenames must not match this regex, e.g. `(jar|exe)$`.
771
+ */
772
+ fileNameRegex: string;
773
+ /**
774
+ * Maximum file size (MB).
775
+ */
776
+ maxFileSize: number;
777
+ /**
778
+ * Restrict commits by author (email) to existing GitLab users.
779
+ */
780
+ memberCheck: boolean;
781
+ /**
782
+ * GitLab will reject any files that are likely to contain secrets.
783
+ */
784
+ preventSecrets: boolean;
785
+ /**
786
+ * Reject commit when it's not DCO certified.
787
+ */
788
+ rejectNonDcoCommits: boolean;
789
+ /**
790
+ * Reject commit when it's not signed through GPG.
791
+ */
792
+ rejectUnsignedCommits: boolean;
793
+ }
488
794
  export interface GetGroupSamlLinksSamlLink {
489
795
  /**
490
796
  * The base access level for members of the SAML group.
@@ -659,75 +965,257 @@ export interface GetGroupVariablesVariable {
659
965
  }
660
966
  export interface GetGroupsGroup {
661
967
  /**
662
- * Whether developers and maintainers can push to the applicable default branch. Will be removed in 19.0.
663
- *
664
- * @deprecated Will be removed in 19.0.
968
+ * Default to allowing merge on a skipped pipeline for new projects in the group.
969
+ */
970
+ allowMergeOnSkippedPipeline: boolean;
971
+ /**
972
+ * Comma-separated list of email address domains allowed to be added as group members.
973
+ */
974
+ allowedEmailDomainsList: string;
975
+ /**
976
+ * Default to Auto DevOps pipeline for all projects within this group.
977
+ */
978
+ autoDevopsEnabled: boolean;
979
+ /**
980
+ * URL of the group avatar.
981
+ */
982
+ avatarUrl: string;
983
+ /**
984
+ * Timestamp at which the group was created.
985
+ */
986
+ createdAt: string;
987
+ /**
988
+ * Custom attributes attached to the group. Each entry is a map with `key` and `value`. Requires administrator privileges to read.
989
+ */
990
+ customAttributes: {
991
+ [key: string]: string;
992
+ }[];
993
+ /**
994
+ * The default branch of the group.
995
+ */
996
+ defaultBranch: string;
997
+ /**
998
+ * Whether developers and maintainers can push to the applicable default branch. Use `defaultBranchProtectionDefaults` instead, to be removed in 19.0.
999
+ *
1000
+ * @deprecated Use `defaultBranchProtectionDefaults` instead, to be removed in 19.0.
1001
+ */
1002
+ defaultBranchProtection: number;
1003
+ /**
1004
+ * Default protection settings applied to the default branch of new projects in this group.
1005
+ */
1006
+ defaultBranchProtectionDefaults: outputs.GetGroupsGroupDefaultBranchProtectionDefault[];
1007
+ /**
1008
+ * The description of the group.
1009
+ */
1010
+ description: string;
1011
+ /**
1012
+ * Whether email notifications are disabled for this group. Use `emailsEnabled` instead, to be removed in 19.0.
1013
+ *
1014
+ * @deprecated Use `emailsEnabled` instead, to be removed in 19.0.
1015
+ */
1016
+ emailsDisabled: boolean;
1017
+ /**
1018
+ * Whether email notifications are enabled for this group.
1019
+ */
1020
+ emailsEnabled: boolean;
1021
+ /**
1022
+ * Available in Self-Managed, Premium and Ultimate plans. Can be set by administrators only. Additional CI/CD minutes for this group.
1023
+ */
1024
+ extraSharedRunnersMinutesLimit: number;
1025
+ /**
1026
+ * The ID of the project used to load custom file templates.
1027
+ */
1028
+ fileTemplateProjectId: number;
1029
+ /**
1030
+ * The full name of the group.
1031
+ */
1032
+ fullName: string;
1033
+ /**
1034
+ * The full path of the group.
1035
+ */
1036
+ fullPath: string;
1037
+ /**
1038
+ * The ID of the group.
1039
+ */
1040
+ groupId: number;
1041
+ /**
1042
+ * Comma-separated list of IP addresses or subnet masks that restrict access to the group.
1043
+ */
1044
+ ipRestrictionRanges: string;
1045
+ /**
1046
+ * Default access level for members synced from LDAP.
1047
+ */
1048
+ ldapAccess: number;
1049
+ /**
1050
+ * LDAP common name used to sync members from an LDAP group.
1051
+ */
1052
+ ldapCn: string;
1053
+ /**
1054
+ * Boolean, is LFS enabled for projects in this group.
1055
+ */
1056
+ lfsEnabled: boolean;
1057
+ /**
1058
+ * Date on which the group was marked for deletion.
1059
+ */
1060
+ markedForDeletionOn: string;
1061
+ /**
1062
+ * Maximum artifacts size for the group, in MB.
1063
+ */
1064
+ maxArtifactsSize: number;
1065
+ /**
1066
+ * Users cannot be added to projects in this group.
1067
+ */
1068
+ membershipLock: boolean;
1069
+ /**
1070
+ * Whether mentions are disabled for this group.
1071
+ */
1072
+ mentionsDisabled: boolean;
1073
+ /**
1074
+ * The name of this group.
1075
+ */
1076
+ name: string;
1077
+ /**
1078
+ * Default to only allowing merge if all discussions are resolved for new projects in the group.
1079
+ */
1080
+ onlyAllowMergeIfAllDiscussionsAreResolved: boolean;
1081
+ /**
1082
+ * Default to only allowing merge if the pipeline succeeds for new projects in the group.
1083
+ */
1084
+ onlyAllowMergeIfPipelineSucceeds: boolean;
1085
+ /**
1086
+ * Integer, ID of the parent group.
1087
+ */
1088
+ parentId: number;
1089
+ /**
1090
+ * The path of the group.
1091
+ */
1092
+ path: string;
1093
+ /**
1094
+ * When enabled, users can not fork projects from this group to external namespaces.
1095
+ */
1096
+ preventForkingOutsideGroup: boolean;
1097
+ /**
1098
+ * When enabled, users cannot invite other groups outside of the top-level group's hierarchy. This option is only available for top-level groups.
1099
+ */
1100
+ preventSharingGroupsOutsideHierarchy: boolean;
1101
+ /**
1102
+ * Determine which roles can create projects in the group. Possible values are `noone`, `maintainer`, `developer`, `owner`, `administrator`.
1103
+ */
1104
+ projectCreationLevel: string;
1105
+ /**
1106
+ * Repository storage shard the group's projects use. (admin only)
1107
+ */
1108
+ repositoryStorage: string;
1109
+ /**
1110
+ * Boolean, is request for access enabled to the group.
1111
+ */
1112
+ requestAccessEnabled: boolean;
1113
+ /**
1114
+ * Require all users in this group to set up two-factor authentication.
1115
+ */
1116
+ requireTwoFactorAuthentication: boolean;
1117
+ /**
1118
+ * The group level registration token to use during runner setup.
1119
+ */
1120
+ runnersToken: string;
1121
+ /**
1122
+ * Prevent sharing a project with another group within this group.
1123
+ */
1124
+ shareWithGroupLock: boolean;
1125
+ /**
1126
+ * Available in Self-Managed, Premium and Ultimate plans. Can be set by administrators only. Maximum number of monthly CI/CD minutes for this group. Can be nil (default; inherit system default), 0 (unlimited), or > 0.
1127
+ */
1128
+ sharedRunnersMinutesLimit: number;
1129
+ /**
1130
+ * Enable or disable shared runners for a group's subgroups and projects. Valid values are: `enabled`, `disabledAndOverridable`, `disabledAndUnoverridable`, `disabledWithOverride`.
1131
+ */
1132
+ sharedRunnersSetting: string;
1133
+ /**
1134
+ * Describes groups which have access shared to this group.
1135
+ */
1136
+ sharedWithGroups: outputs.GetGroupsGroupSharedWithGroup[];
1137
+ /**
1138
+ * Statistics for the group. Keys: `commitCount`, `storageSize`, `repositorySize`, `wikiSize`, `lfsObjectsSize`, `jobArtifactsSize`, `pipelineArtifactsSize`, `packagesSize`, `snippetsSize`, `uploadsSize`, `containerRegistrySize`.
1139
+ */
1140
+ statistics: {
1141
+ [key: string]: number;
1142
+ };
1143
+ /**
1144
+ * Determine which roles can create subgroups in the group. Possible values are `owner`, `maintainer`.
665
1145
  */
666
- defaultBranchProtection: number;
1146
+ subgroupCreationLevel: string;
667
1147
  /**
668
- * The description of the group.
1148
+ * Grace period, in hours, before enforcing two-factor authentication on group members.
669
1149
  */
670
- description: string;
1150
+ twoFactorGracePeriod: number;
671
1151
  /**
672
- * The full name of the group.
1152
+ * Visibility level of the group. Possible values are `private`, `internal`, `public`.
673
1153
  */
674
- fullName: string;
1154
+ visibilityLevel: string;
675
1155
  /**
676
- * The full path of the group.
1156
+ * Web URL of the group.
677
1157
  */
678
- fullPath: string;
1158
+ webUrl: string;
679
1159
  /**
680
- * The ID of the group.
1160
+ * The group's wiki access level. Only available on Premium and Ultimate plans. Valid values are `disabled`, `private`, `enabled`.
681
1161
  */
682
- groupId: number;
1162
+ wikiAccessLevel: string;
1163
+ }
1164
+ export interface GetGroupsGroupDefaultBranchProtectionDefault {
683
1165
  /**
684
- * Is LFS enabled for projects in this group.
1166
+ * Whether force-push is allowed to the default branch.
685
1167
  */
686
- lfsEnabled: boolean;
1168
+ allowForcePush: boolean;
687
1169
  /**
688
- * The name of this group.
1170
+ * Access levels allowed to merge into the default branch.
689
1171
  */
690
- name: string;
1172
+ allowedToMerges: outputs.GetGroupsGroupDefaultBranchProtectionDefaultAllowedToMerge[];
691
1173
  /**
692
- * ID of the parent group.
1174
+ * Access levels allowed to push to the default branch.
693
1175
  */
694
- parentId: number;
1176
+ allowedToPushes: outputs.GetGroupsGroupDefaultBranchProtectionDefaultAllowedToPush[];
695
1177
  /**
696
- * The path of the group.
1178
+ * Whether code-owner approval is required on the default branch.
697
1179
  */
698
- path: string;
1180
+ codeOwnerApprovalRequired: boolean;
699
1181
  /**
700
- * When enabled, users can not fork projects from this group to external namespaces.
1182
+ * Whether developers can make the initial push to the default branch.
701
1183
  */
702
- preventForkingOutsideGroup: boolean;
1184
+ developerCanInitialPush: boolean;
1185
+ }
1186
+ export interface GetGroupsGroupDefaultBranchProtectionDefaultAllowedToMerge {
703
1187
  /**
704
- * When enabled, users cannot invite other groups outside of the top-level group’s hierarchy. This option is only available for top-level groups.
1188
+ * The access level integer.
705
1189
  */
706
- preventSharingGroupsOutsideHierarchy: boolean;
1190
+ accessLevel: number;
1191
+ }
1192
+ export interface GetGroupsGroupDefaultBranchProtectionDefaultAllowedToPush {
707
1193
  /**
708
- * Is request for access enabled to the group.
1194
+ * The access level integer.
709
1195
  */
710
- requestAccessEnabled: boolean;
1196
+ accessLevel: number;
1197
+ }
1198
+ export interface GetGroupsGroupSharedWithGroup {
711
1199
  /**
712
- * The group level registration token to use during runner setup.
1200
+ * Share with group expiration date.
713
1201
  */
714
- runnersToken: string;
1202
+ expiresAt: string;
715
1203
  /**
716
- * Enable or disable shared runners for a group's subgroups and projects. Valid values are: `enabled`, `disabledAndOverridable`, `disabledAndUnoverridable`, `disabledWithOverride`.
1204
+ * The accessLevel permission level of the shared group.
717
1205
  */
718
- sharedRunnersSetting: string;
1206
+ groupAccessLevel: number;
719
1207
  /**
720
- * Visibility level of the group. Possible values are `private`, `internal`, `public`.
1208
+ * The full path of the group shared with.
721
1209
  */
722
- visibilityLevel: string;
1210
+ groupFullPath: string;
723
1211
  /**
724
- * Web URL of the group.
1212
+ * The ID of the group shared with.
725
1213
  */
726
- webUrl: string;
1214
+ groupId: number;
727
1215
  /**
728
- * The group's wiki access level. Only available on Premium and Ultimate plans. Valid values are `disabled`, `private`, `enabled`.
1216
+ * The name of the group shared with.
729
1217
  */
730
- wikiAccessLevel: string;
1218
+ groupName: string;
731
1219
  }
732
1220
  export interface GetInstanceDeployKeysDeployKey {
733
1221
  /**
@@ -1197,7 +1685,41 @@ export interface GetProjectEnvironmentsEnvironment {
1197
1685
  */
1198
1686
  updatedAt: string;
1199
1687
  }
1688
+ export interface GetProjectForkedFromProject {
1689
+ /**
1690
+ * The HTTP clone URL of the upstream project.
1691
+ */
1692
+ httpUrlToRepo: string;
1693
+ /**
1694
+ * The ID of the upstream project.
1695
+ */
1696
+ id: number;
1697
+ /**
1698
+ * The name of the upstream project.
1699
+ */
1700
+ name: string;
1701
+ /**
1702
+ * In `group / subgroup / project` or `user / project` format.
1703
+ */
1704
+ nameWithNamespace: string;
1705
+ /**
1706
+ * The path of the upstream project.
1707
+ */
1708
+ path: string;
1709
+ /**
1710
+ * In `group/subgroup/project` or `user/project` format.
1711
+ */
1712
+ pathWithNamespace: string;
1713
+ /**
1714
+ * The web URL of the upstream project.
1715
+ */
1716
+ webUrl: string;
1717
+ }
1200
1718
  export interface GetProjectHooksHook {
1719
+ /**
1720
+ * Lifecycle status of the webhook. Values include `executable` and `disabled`.
1721
+ */
1722
+ alertStatus: string;
1201
1723
  /**
1202
1724
  * Filter push events by branch.
1203
1725
  */
@@ -1210,6 +1732,10 @@ export interface GetProjectHooksHook {
1210
1732
  * Invoke the hook for confidential notes events.
1211
1733
  */
1212
1734
  confidentialNoteEvents: boolean;
1735
+ /**
1736
+ * The date and time the hook was created in ISO8601 format.
1737
+ */
1738
+ createdAt: string;
1213
1739
  /**
1214
1740
  * Set a custom webhook template.
1215
1741
  */
@@ -1218,6 +1744,10 @@ export interface GetProjectHooksHook {
1218
1744
  * Invoke the hook for deployment events.
1219
1745
  */
1220
1746
  deploymentEvents: boolean;
1747
+ /**
1748
+ * Time until the webhook is re-enabled after being automatically disabled due to failures, in ISO8601 format. Null when the webhook is enabled.
1749
+ */
1750
+ disabledUntil: string;
1221
1751
  /**
1222
1752
  * Invoke the hook for emoji events.
1223
1753
  */
@@ -1226,6 +1756,10 @@ export interface GetProjectHooksHook {
1226
1756
  * Enable ssl verification when invoking the hook.
1227
1757
  */
1228
1758
  enableSslVerification: boolean;
1759
+ /**
1760
+ * Invoke the hook for feature flag events.
1761
+ */
1762
+ featureFlagEvents: boolean;
1229
1763
  /**
1230
1764
  * The id of the project hook.
1231
1765
  */
@@ -1242,6 +1776,10 @@ export interface GetProjectHooksHook {
1242
1776
  * Invoke the hook for merge requests.
1243
1777
  */
1244
1778
  mergeRequestsEvents: boolean;
1779
+ /**
1780
+ * Invoke the hook for milestone events.
1781
+ */
1782
+ milestoneEvents: boolean;
1245
1783
  /**
1246
1784
  * Invoke the hook for notes events.
1247
1785
  */
@@ -1271,15 +1809,25 @@ export interface GetProjectHooksHook {
1271
1809
  */
1272
1810
  releasesEvents: boolean;
1273
1811
  /**
1274
- * Invoke the hook for tag push events.
1812
+ * Invoke the hook for repository update events.
1275
1813
  */
1276
- tagPushEvents: boolean;
1814
+ repositoryUpdateEvents: boolean;
1277
1815
  /**
1278
- * A token to present when invoking the hook. The token is only available on resource creation, not in this datasource. It will always be blank. Will be removed in 19.0.
1279
- *
1280
- * @deprecated The token is only available on resource creation, not in this datasource. It will always be blank. To be removed in 19.0.
1816
+ * Invoke the hook for project access token expiry events.
1817
+ */
1818
+ resourceAccessTokenEvents: boolean;
1819
+ /**
1820
+ * Invoke the hook for resource deploy token events.
1821
+ */
1822
+ resourceDeployTokenEvents: boolean;
1823
+ /**
1824
+ * Whether a `signingToken` is configured server-side. Reflects the value returned by the GitLab API.
1825
+ */
1826
+ signingTokenPresent: boolean;
1827
+ /**
1828
+ * Invoke the hook for tag push events.
1281
1829
  */
1282
- token: string;
1830
+ tagPushEvents: boolean;
1283
1831
  /**
1284
1832
  * The url of the hook to invoke.
1285
1833
  */
@@ -1595,6 +2143,28 @@ export interface GetProjectLabelsLabel {
1595
2143
  */
1596
2144
  textColor: string;
1597
2145
  }
2146
+ export interface GetProjectLicense {
2147
+ /**
2148
+ * URL to the license's human-readable description.
2149
+ */
2150
+ htmlUrl: string;
2151
+ /**
2152
+ * The license key (e.g. `mit`).
2153
+ */
2154
+ key: string;
2155
+ /**
2156
+ * The license name (e.g. `MIT License`).
2157
+ */
2158
+ name: string;
2159
+ /**
2160
+ * The license nickname.
2161
+ */
2162
+ nickname: string;
2163
+ /**
2164
+ * URL to the license source text.
2165
+ */
2166
+ sourceUrl: string;
2167
+ }
1598
2168
  export interface GetProjectMembershipMember {
1599
2169
  /**
1600
2170
  * The level of access to the group.
@@ -1878,9 +2448,71 @@ export interface GetProjectMilestonesMilestone {
1878
2448
  */
1879
2449
  webUrl: string;
1880
2450
  }
2451
+ export interface GetProjectNamespace {
2452
+ /**
2453
+ * The full path of the namespace.
2454
+ */
2455
+ fullPath: string;
2456
+ /**
2457
+ * The ID of the namespace.
2458
+ */
2459
+ id: number;
2460
+ /**
2461
+ * The kind of the namespace.
2462
+ */
2463
+ kind: string;
2464
+ /**
2465
+ * The name of the namespace.
2466
+ */
2467
+ name: string;
2468
+ /**
2469
+ * The path of the namespace.
2470
+ */
2471
+ path: string;
2472
+ }
2473
+ export interface GetProjectOwner {
2474
+ /**
2475
+ * The avatar URL of the owner.
2476
+ */
2477
+ avatarUrl: string;
2478
+ /**
2479
+ * The ID of the owner.
2480
+ */
2481
+ id: number;
2482
+ /**
2483
+ * The name of the owner.
2484
+ */
2485
+ name: string;
2486
+ /**
2487
+ * The state of the owner.
2488
+ */
2489
+ state: string;
2490
+ /**
2491
+ * The username of the owner.
2492
+ */
2493
+ username: string;
2494
+ /**
2495
+ * The website URL of the owner.
2496
+ */
2497
+ websiteUrl: string;
2498
+ }
2499
+ export interface GetProjectPermission {
2500
+ /**
2501
+ * Group access level.
2502
+ */
2503
+ groupAccess: {
2504
+ [key: string]: number;
2505
+ };
2506
+ /**
2507
+ * Project access level.
2508
+ */
2509
+ projectAccess: {
2510
+ [key: string]: number;
2511
+ };
2512
+ }
1881
2513
  export interface GetProjectProtectedBranchMergeAccessLevel {
1882
2514
  /**
1883
- * Access levels allowed to merge to protected branch. Valid values are: `no one`, `developer`, `maintainer`, `admin`.
2515
+ * Access level allowed to perform the relevant action.
1884
2516
  */
1885
2517
  accessLevel: string;
1886
2518
  /**
@@ -1888,17 +2520,17 @@ export interface GetProjectProtectedBranchMergeAccessLevel {
1888
2520
  */
1889
2521
  accessLevelDescription: string;
1890
2522
  /**
1891
- * The ID of a GitLab group allowed to perform the relevant action. Mutually exclusive with `userId`.
2523
+ * The ID of a GitLab group allowed to perform the relevant action.
1892
2524
  */
1893
- groupId?: number;
2525
+ groupId: number;
1894
2526
  /**
1895
- * The ID of a GitLab user allowed to perform the relevant action. Mutually exclusive with `groupId`.
2527
+ * The ID of a GitLab user allowed to perform the relevant action.
1896
2528
  */
1897
- userId?: number;
2529
+ userId: number;
1898
2530
  }
1899
2531
  export interface GetProjectProtectedBranchPushAccessLevel {
1900
2532
  /**
1901
- * Access levels allowed to push to protected branch. Valid values are: `no one`, `developer`, `maintainer`, `admin`.
2533
+ * Access level allowed to perform the relevant action.
1902
2534
  */
1903
2535
  accessLevel: string;
1904
2536
  /**
@@ -1906,17 +2538,35 @@ export interface GetProjectProtectedBranchPushAccessLevel {
1906
2538
  */
1907
2539
  accessLevelDescription: string;
1908
2540
  /**
1909
- * The ID of a GitLab deploy key allowed to perform the relevant action. Mutually exclusive with `groupId` and `userId`. This field is read-only until Gitlab 17.5.
2541
+ * The ID of a GitLab deploy key allowed to perform the relevant action.
1910
2542
  */
1911
- deployKeyId?: number;
2543
+ deployKeyId: number;
1912
2544
  /**
1913
- * The ID of a GitLab group allowed to perform the relevant action. Mutually exclusive with `deployKeyId` and `userId`.
2545
+ * The ID of a GitLab group allowed to perform the relevant action.
1914
2546
  */
1915
- groupId?: number;
2547
+ groupId: number;
1916
2548
  /**
1917
- * The ID of a GitLab user allowed to perform the relevant action. Mutually exclusive with `deployKeyId` and `groupId`.
2549
+ * The ID of a GitLab user allowed to perform the relevant action.
1918
2550
  */
1919
- userId?: number;
2551
+ userId: number;
2552
+ }
2553
+ export interface GetProjectProtectedBranchUnprotectAccessLevel {
2554
+ /**
2555
+ * Access level allowed to perform the relevant action.
2556
+ */
2557
+ accessLevel: string;
2558
+ /**
2559
+ * Readable description of access level.
2560
+ */
2561
+ accessLevelDescription: string;
2562
+ /**
2563
+ * The ID of a GitLab group allowed to perform the relevant action.
2564
+ */
2565
+ groupId: number;
2566
+ /**
2567
+ * The ID of a GitLab user allowed to perform the relevant action.
2568
+ */
2569
+ userId: number;
1920
2570
  }
1921
2571
  export interface GetProjectProtectedBranchesProtectedBranch {
1922
2572
  /**
@@ -1932,21 +2582,25 @@ export interface GetProjectProtectedBranchesProtectedBranch {
1932
2582
  */
1933
2583
  id: number;
1934
2584
  /**
1935
- * Array of access levels and user(s)/group(s) allowed to merge to protected branch.
2585
+ * Array of merge access levels/users/groups allowed for the protected branch.
1936
2586
  */
1937
- mergeAccessLevels?: outputs.GetProjectProtectedBranchesProtectedBranchMergeAccessLevel[];
2587
+ mergeAccessLevels: outputs.GetProjectProtectedBranchesProtectedBranchMergeAccessLevel[];
1938
2588
  /**
1939
2589
  * The name of the protected branch.
1940
2590
  */
1941
2591
  name: string;
1942
2592
  /**
1943
- * Array of access levels and user(s)/group(s) allowed to push to protected branch.
2593
+ * Array of push access levels/users/groups/deploy keys allowed for the protected branch.
2594
+ */
2595
+ pushAccessLevels: outputs.GetProjectProtectedBranchesProtectedBranchPushAccessLevel[];
2596
+ /**
2597
+ * Array of unprotect access levels/users/groups allowed for the protected branch.
1944
2598
  */
1945
- pushAccessLevels?: outputs.GetProjectProtectedBranchesProtectedBranchPushAccessLevel[];
2599
+ unprotectAccessLevels: outputs.GetProjectProtectedBranchesProtectedBranchUnprotectAccessLevel[];
1946
2600
  }
1947
2601
  export interface GetProjectProtectedBranchesProtectedBranchMergeAccessLevel {
1948
2602
  /**
1949
- * Access levels allowed to merge to protected branch. Valid values are: `no one`, `developer`, `maintainer`, `admin`.
2603
+ * Access level allowed to perform the relevant action.
1950
2604
  */
1951
2605
  accessLevel: string;
1952
2606
  /**
@@ -1954,17 +2608,17 @@ export interface GetProjectProtectedBranchesProtectedBranchMergeAccessLevel {
1954
2608
  */
1955
2609
  accessLevelDescription: string;
1956
2610
  /**
1957
- * The ID of a GitLab group allowed to perform the relevant action. Mutually exclusive with `userId`.
2611
+ * The ID of a GitLab group allowed to perform the relevant action.
1958
2612
  */
1959
- groupId?: number;
2613
+ groupId: number;
1960
2614
  /**
1961
- * The ID of a GitLab user allowed to perform the relevant action. Mutually exclusive with `groupId`.
2615
+ * The ID of a GitLab user allowed to perform the relevant action.
1962
2616
  */
1963
- userId?: number;
2617
+ userId: number;
1964
2618
  }
1965
2619
  export interface GetProjectProtectedBranchesProtectedBranchPushAccessLevel {
1966
2620
  /**
1967
- * Access levels allowed to push to protected branch. Valid values are: `no one`, `developer`, `maintainer`, `admin`.
2621
+ * Access level allowed to perform the relevant action.
1968
2622
  */
1969
2623
  accessLevel: string;
1970
2624
  /**
@@ -1972,17 +2626,35 @@ export interface GetProjectProtectedBranchesProtectedBranchPushAccessLevel {
1972
2626
  */
1973
2627
  accessLevelDescription: string;
1974
2628
  /**
1975
- * The ID of a GitLab deploy key allowed to perform the relevant action. Mutually exclusive with `groupId` and `userId`. This field is read-only until Gitlab 17.5.
2629
+ * The ID of a GitLab deploy key allowed to perform the relevant action.
1976
2630
  */
1977
- deployKeyId?: number;
2631
+ deployKeyId: number;
1978
2632
  /**
1979
- * The ID of a GitLab group allowed to perform the relevant action. Mutually exclusive with `deployKeyId` and `userId`.
2633
+ * The ID of a GitLab group allowed to perform the relevant action.
1980
2634
  */
1981
- groupId?: number;
2635
+ groupId: number;
1982
2636
  /**
1983
- * The ID of a GitLab user allowed to perform the relevant action. Mutually exclusive with `deployKeyId` and `groupId`.
2637
+ * The ID of a GitLab user allowed to perform the relevant action.
1984
2638
  */
1985
- userId?: number;
2639
+ userId: number;
2640
+ }
2641
+ export interface GetProjectProtectedBranchesProtectedBranchUnprotectAccessLevel {
2642
+ /**
2643
+ * Access level allowed to perform the relevant action.
2644
+ */
2645
+ accessLevel: string;
2646
+ /**
2647
+ * Readable description of access level.
2648
+ */
2649
+ accessLevelDescription: string;
2650
+ /**
2651
+ * The ID of a GitLab group allowed to perform the relevant action.
2652
+ */
2653
+ groupId: number;
2654
+ /**
2655
+ * The ID of a GitLab user allowed to perform the relevant action.
2656
+ */
2657
+ userId: number;
1986
2658
  }
1987
2659
  export interface GetProjectProtectedTagCreateAccessLevel {
1988
2660
  /**
@@ -2152,9 +2824,15 @@ export interface GetProjectSecureFileMetadataSubject {
2152
2824
  }
2153
2825
  export interface GetProjectSharedWithGroup {
2154
2826
  /**
2155
- * The accessLevel permission level of the shared group.
2827
+ * The access level (integer) of the shared group. Matches the upstream GitLab API. See `groupAccessLevelName` for the human-readable string form.
2156
2828
  */
2157
2829
  groupAccessLevel: number;
2830
+ /**
2831
+ * The human-readable access level name of the shared group (e.g. `developer`, `maintainer`). Computed from `groupAccessLevel`.
2832
+ *
2833
+ * @deprecated Use `groupAccessLevel` instead, to be removed in 20.0.
2834
+ */
2835
+ groupAccessLevelName: string;
2158
2836
  /**
2159
2837
  * The full path of the group shared with.
2160
2838
  */
@@ -2341,20 +3019,12 @@ export interface GetProjectVariablesVariable {
2341
3019
  value: string;
2342
3020
  /**
2343
3021
  * The type of the variable, either `envVar` or `file`.
2344
- */
2345
- variableType: string;
2346
- }
2347
- export interface GetProjectsProject {
2348
- /**
2349
- * Links for the project. Use `links` instead. To be removed in 19.0.
2350
- *
2351
- * @deprecated Use `links` instead. To be removed in 19.0.
2352
- */
2353
- _links: {
2354
- [key: string]: string;
2355
- };
3022
+ */
3023
+ variableType: string;
3024
+ }
3025
+ export interface GetProjectsProject {
2356
3026
  /**
2357
- * Whether allowMergeOnSkippedPipeline is enabled for the project.
3027
+ * Whether `allowMergeOnSkippedPipeline` is enabled for the project.
2358
3028
  */
2359
3029
  allowMergeOnSkippedPipeline: boolean;
2360
3030
  /**
@@ -2366,15 +3036,17 @@ export interface GetProjectsProject {
2366
3036
  */
2367
3037
  analyticsAccessLevel: string;
2368
3038
  /**
2369
- * The numbers of approvals needed in a merge requests.
3039
+ * The number of approvals needed in a merge request.
3040
+ *
3041
+ * @deprecated Use the Merge Request Approvals API instead, to be removed in 20.0.
2370
3042
  */
2371
3043
  approvalsBeforeMerge: number;
2372
3044
  /**
2373
- * Whether the project is archived.
3045
+ * Whether the project is in read-only mode (archived).
2374
3046
  */
2375
3047
  archived: boolean;
2376
3048
  /**
2377
- * Auto-cancel pending pipelines. This isnt a boolean, but enabled/disabled.
3049
+ * Auto-cancel pending pipelines. This isn't a boolean, but `enabled`/`disabled`.
2378
3050
  */
2379
3051
  autoCancelPendingPipelines: string;
2380
3052
  /**
@@ -2385,12 +3057,16 @@ export interface GetProjectsProject {
2385
3057
  * Enable Auto DevOps for this project.
2386
3058
  */
2387
3059
  autoDevopsEnabled: boolean;
3060
+ /**
3061
+ * Whether GitLab Duo code review is enabled for the project.
3062
+ */
3063
+ autoDuoCodeReviewEnabled: boolean;
2388
3064
  /**
2389
3065
  * Set whether auto-closing referenced issues on default branch.
2390
3066
  */
2391
3067
  autocloseReferencedIssues: boolean;
2392
3068
  /**
2393
- * The avatar url of the project.
3069
+ * The avatar URL of the project.
2394
3070
  */
2395
3071
  avatarUrl: string;
2396
3072
  /**
@@ -2398,7 +3074,7 @@ export interface GetProjectsProject {
2398
3074
  */
2399
3075
  buildCoverageRegex: string;
2400
3076
  /**
2401
- * The Git strategy. Defaults to fetch.
3077
+ * The Git strategy. Defaults to `fetch`.
2402
3078
  */
2403
3079
  buildGitStrategy: string;
2404
3080
  /**
@@ -2409,6 +3085,14 @@ export interface GetProjectsProject {
2409
3085
  * Set the builds access level. Valid values are `disabled`, `private`, `enabled`.
2410
3086
  */
2411
3087
  buildsAccessLevel: string;
3088
+ /**
3089
+ * Whether the calling user can create merge requests in this project.
3090
+ */
3091
+ canCreateMergeRequestIn: boolean;
3092
+ /**
3093
+ * Whether pipelines triggered from merge requests opened from forks may run in the parent project.
3094
+ */
3095
+ ciAllowForkPipelinesToRunInParentProject: boolean;
2412
3096
  /**
2413
3097
  * CI config file path for the project.
2414
3098
  */
@@ -2421,6 +3105,10 @@ export interface GetProjectsProject {
2421
3105
  * Pipelines older than the configured time are deleted.
2422
3106
  */
2423
3107
  ciDeletePipelinesInSeconds: number;
3108
+ /**
3109
+ * Whether pipeline variables are displayed in the UI.
3110
+ */
3111
+ ciDisplayPipelineVariables: boolean;
2424
3112
  /**
2425
3113
  * When a new deployment job starts, skip older deployment jobs that are still pending.
2426
3114
  */
@@ -2430,29 +3118,55 @@ export interface GetProjectsProject {
2430
3118
  */
2431
3119
  ciForwardDeploymentRollbackAllowed: boolean;
2432
3120
  /**
2433
- * Fields included in the sub claim of the ID Token. Accepts an array starting with project_path. The array might also include refType and ref. Defaults to ["projectPath", "refType", "ref"]. Introduced in GitLab 17.10.
3121
+ * Fields included in the sub claim of the ID Token. Accepts an array starting with `projectPath`. The array might also include `refType` and `ref`. Defaults to `["projectPath", "refType", "ref"]`. Introduced in GitLab 17.10.
2434
3122
  */
2435
3123
  ciIdTokenSubClaimComponents: string[];
2436
3124
  /**
2437
- * The minimum role required to set variables when running pipelines and jobs. Introduced in GitLab 17.1. Valid values are `developer`, `maintainer`, `owner`, `noOneAllowed`
3125
+ * Whether the CI/CD job token access scope is enabled (limits which projects can be accessed using the job token).
3126
+ */
3127
+ ciJobTokenScopeEnabled: boolean;
3128
+ /**
3129
+ * Whether the project must explicitly opt in to receive ID tokens in CI jobs.
3130
+ */
3131
+ ciOptInJwt: boolean;
3132
+ /**
3133
+ * The minimum role required to set variables when running pipelines and jobs. Introduced in GitLab 17.1. Valid values are `developer`, `maintainer`, `owner`, `noOneAllowed`.
2438
3134
  */
2439
3135
  ciPipelineVariablesMinimumOverrideRole: string;
2440
3136
  /**
2441
- * The role required to cancel a pipeline or job. Premium and Ultimate only. Valid values are `developer`, `maintainer`, `no one`
3137
+ * Whether pushes to the repository using the CI/CD job token are allowed.
3138
+ */
3139
+ ciPushRepositoryForJobTokenAllowed: boolean;
3140
+ /**
3141
+ * The role required to cancel a pipeline or job. Premium and Ultimate only. Valid values are `developer`, `maintainer`, `noOne`.
2442
3142
  */
2443
3143
  ciRestrictPipelineCancellationRole: string;
2444
3144
  /**
2445
- * Set the image cleanup policy for this project. **Note**: this field is sometimes named `containerExpirationPolicyAttributes` in the GitLab Upstream API.
3145
+ * Use separate caches for protected branches.
3146
+ */
3147
+ ciSeparatedCaches: boolean;
3148
+ /**
3149
+ * Compliance frameworks applied to the project. Premium and Ultimate only.
3150
+ */
3151
+ complianceFrameworks: string[];
3152
+ /**
3153
+ * The image cleanup policy for this project.
2446
3154
  */
2447
3155
  containerExpirationPolicies: outputs.GetProjectsProjectContainerExpirationPolicy[];
2448
3156
  /**
2449
- * Set visibility of container registry, for this project. Valid values are `disabled`, `private`, `enabled`.
3157
+ * Set visibility of container registry for this project. Valid values are `disabled`, `private`, `enabled`.
2450
3158
  */
2451
3159
  containerRegistryAccessLevel: string;
2452
3160
  /**
2453
3161
  * Whether the container registry is enabled for the project.
3162
+ *
3163
+ * @deprecated Use `containerRegistryAccessLevel` instead, to be removed in 20.0.
2454
3164
  */
2455
3165
  containerRegistryEnabled: boolean;
3166
+ /**
3167
+ * The image prefix used by the container registry for this project.
3168
+ */
3169
+ containerRegistryImagePrefix: string;
2456
3170
  /**
2457
3171
  * Creation time for the project.
2458
3172
  */
@@ -2472,9 +3186,13 @@ export interface GetProjectsProject {
2472
3186
  */
2473
3187
  defaultBranch: string;
2474
3188
  /**
2475
- * The description of the project.
3189
+ * A description of the project.
2476
3190
  */
2477
3191
  description: string;
3192
+ /**
3193
+ * Whether email notifications are disabled for the project.
3194
+ */
3195
+ emailsDisabled: boolean;
2478
3196
  /**
2479
3197
  * Enable email notifications.
2480
3198
  */
@@ -2483,6 +3201,10 @@ export interface GetProjectsProject {
2483
3201
  * Whether the project is empty.
2484
3202
  */
2485
3203
  emptyRepo: boolean;
3204
+ /**
3205
+ * Whether authentication checks are enforced when uploading to the project.
3206
+ */
3207
+ enforceAuthChecksOnUploads: boolean;
2486
3208
  /**
2487
3209
  * Set the environments access level. Valid values are `disabled`, `private`, `enabled`.
2488
3210
  */
@@ -2527,6 +3249,10 @@ export interface GetProjectsProject {
2527
3249
  * The import status of the project.
2528
3250
  */
2529
3251
  importStatus: string;
3252
+ /**
3253
+ * The type of import used to create the project (for example `github`, `bitbucket`).
3254
+ */
3255
+ importType: string;
2530
3256
  /**
2531
3257
  * URL the project was imported from.
2532
3258
  */
@@ -2535,16 +3261,28 @@ export interface GetProjectsProject {
2535
3261
  * Set the infrastructure access level. Valid values are `disabled`, `private`, `enabled`.
2536
3262
  */
2537
3263
  infrastructureAccessLevel: string;
3264
+ /**
3265
+ * Template used to suggest a branch name when creating one from an issue.
3266
+ */
3267
+ issueBranchTemplate: string;
2538
3268
  /**
2539
3269
  * Set the issues access level. Valid values are `disabled`, `private`, `enabled`.
2540
3270
  */
2541
3271
  issuesAccessLevel: string;
2542
3272
  /**
2543
3273
  * Whether issues are enabled for the project.
3274
+ *
3275
+ * @deprecated Use `issuesAccessLevel` instead, to be removed in 20.0.
2544
3276
  */
2545
3277
  issuesEnabled: boolean;
2546
3278
  /**
2547
- * Whether pipelines are enabled for the project.
3279
+ * Default description template for new issues.
3280
+ */
3281
+ issuesTemplate: string;
3282
+ /**
3283
+ * Whether jobs are enabled for the project.
3284
+ *
3285
+ * @deprecated Use `buildsAccessLevel` instead, to be removed in 20.0.
2548
3286
  */
2549
3287
  jobsEnabled: boolean;
2550
3288
  /**
@@ -2552,19 +3290,45 @@ export interface GetProjectsProject {
2552
3290
  */
2553
3291
  keepLatestArtifact: boolean;
2554
3292
  /**
2555
- * Last activirty time for the project.
3293
+ * Last activity time for the project.
2556
3294
  */
2557
3295
  lastActivityAt: string;
2558
3296
  /**
2559
3297
  * Whether LFS (large file storage) is enabled for the project.
2560
3298
  */
2561
3299
  lfsEnabled: boolean;
3300
+ /**
3301
+ * URL of the project's license file.
3302
+ */
3303
+ licenseUrl: string;
3304
+ /**
3305
+ * Information about the project's license, if one is detected.
3306
+ */
3307
+ licenses: outputs.GetProjectsProjectLicense[];
2562
3308
  /**
2563
3309
  * Links for the project.
2564
3310
  */
2565
3311
  links: {
2566
3312
  [key: string]: string;
2567
3313
  };
3314
+ /**
3315
+ * Whether the project is marked for deletion.
3316
+ */
3317
+ markedForDeletion: boolean;
3318
+ /**
3319
+ * Timestamp at which the project was marked for deletion. Premium and Ultimate only.
3320
+ *
3321
+ * @deprecated Use `markedForDeletionOn` instead, to be removed in 20.0.
3322
+ */
3323
+ markedForDeletionAt: string;
3324
+ /**
3325
+ * Timestamp at which the project was marked for deletion. Premium and Ultimate only.
3326
+ */
3327
+ markedForDeletionOn: string;
3328
+ /**
3329
+ * Maximum artifacts size, in MB, for the project. Overrides the instance-wide setting when set.
3330
+ */
3331
+ maxArtifactsSize: number;
2568
3332
  /**
2569
3333
  * Template used to create merge commit message in merge requests.
2570
3334
  */
@@ -2577,24 +3341,42 @@ export interface GetProjectsProject {
2577
3341
  * Enable or disable merge pipelines.
2578
3342
  */
2579
3343
  mergePipelinesEnabled: boolean;
3344
+ /**
3345
+ * Regular expression that merge request titles must match.
3346
+ */
3347
+ mergeRequestTitleRegex: string;
3348
+ /**
3349
+ * Human-readable description of `mergeRequestTitleRegex`.
3350
+ */
3351
+ mergeRequestTitleRegexDescription: string;
2580
3352
  /**
2581
3353
  * Set the merge requests access level. Valid values are `disabled`, `private`, `enabled`.
2582
3354
  */
2583
3355
  mergeRequestsAccessLevel: string;
2584
3356
  /**
2585
3357
  * Whether merge requests are enabled for the project.
3358
+ *
3359
+ * @deprecated Use `mergeRequestsAccessLevel` instead, to be removed in 20.0.
2586
3360
  */
2587
3361
  mergeRequestsEnabled: boolean;
3362
+ /**
3363
+ * Default description template for new merge requests.
3364
+ */
3365
+ mergeRequestsTemplate: string;
2588
3366
  /**
2589
3367
  * Enable or disable merge trains.
2590
3368
  */
2591
3369
  mergeTrainsEnabled: boolean;
2592
3370
  /**
2593
- * Whether the pull mirroring is enabled for the project.
3371
+ * Allows merge train merge requests to be merged without waiting for pipelines to finish.
3372
+ */
3373
+ mergeTrainsSkipTrainAllowed: boolean;
3374
+ /**
3375
+ * Whether pull mirroring is enabled for the project.
2594
3376
  */
2595
3377
  mirror: boolean;
2596
3378
  /**
2597
- * Whether mirrorOverwritesDivergedBranches is enabled for the project.
3379
+ * Whether `mirrorOverwritesDivergedBranches` is enabled for the project.
2598
3380
  */
2599
3381
  mirrorOverwritesDivergedBranches: boolean;
2600
3382
  /**
@@ -2617,6 +3399,10 @@ export interface GetProjectsProject {
2617
3399
  * Set the monitor access level. Valid values are `disabled`, `private`, `enabled`.
2618
3400
  */
2619
3401
  monitorAccessLevel: string;
3402
+ /**
3403
+ * For forks, whether merge requests target the fork itself rather than the upstream project by default.
3404
+ */
3405
+ mrDefaultTargetSelf: boolean;
2620
3406
  /**
2621
3407
  * The name of the project.
2622
3408
  */
@@ -2625,34 +3411,54 @@ export interface GetProjectsProject {
2625
3411
  * In `group / subgroup / project` or `user / project` format.
2626
3412
  */
2627
3413
  nameWithNamespace: string;
3414
+ /**
3415
+ * The namespace (group or user) ID of the project. Alias for `namespace[0].id`.
3416
+ *
3417
+ * @deprecated Use `namespace[0].id` instead, to be removed in 20.0.
3418
+ */
3419
+ namespaceId: number;
2628
3420
  /**
2629
3421
  * Namespace of the project (parent group/s).
2630
3422
  */
2631
3423
  namespaces: outputs.GetProjectsProjectNamespace[];
2632
3424
  /**
2633
- * Whether onlyAllowMergeIfAllDiscussionsAreResolved is enabled for the project.
3425
+ * Whether `onlyAllowMergeIfAllDiscussionsAreResolved` is enabled for the project.
2634
3426
  */
2635
3427
  onlyAllowMergeIfAllDiscussionsAreResolved: boolean;
2636
3428
  /**
2637
- * Whether onlyAllowMergeIfPipelineSucceeds is enabled for the project.
3429
+ * Whether `onlyAllowMergeIfPipelineSucceeds` is enabled for the project.
2638
3430
  */
2639
3431
  onlyAllowMergeIfPipelineSucceeds: boolean;
2640
3432
  /**
2641
- * Whether onlyMirrorProtectedBranches is enabled for the project.
3433
+ * Whether `onlyMirrorProtectedBranches` is enabled for the project.
2642
3434
  */
2643
3435
  onlyMirrorProtectedBranches: boolean;
2644
3436
  /**
2645
- * The number of open issies for the project.
3437
+ * The number of open issues for the project.
2646
3438
  */
2647
3439
  openIssuesCount: number;
2648
3440
  /**
2649
- * The owner of the project, due to Terraform aggregate types limitations, this field's attributes are accessed with the `owner.0` prefix. Structure is documented below.
3441
+ * Set the operations access level. Valid values are `disabled`, `private`, `enabled`.
3442
+ */
3443
+ operationsAccessLevel: string;
3444
+ /**
3445
+ * The owner of the project. Only populated when the calling token has administrator scope.
2650
3446
  */
2651
3447
  owners: outputs.GetProjectsProjectOwner[];
3448
+ /**
3449
+ * The visibility of the package registry.
3450
+ */
3451
+ packageRegistryAccessLevel: string;
2652
3452
  /**
2653
3453
  * Whether packages are enabled for the project.
3454
+ *
3455
+ * @deprecated Use `packageRegistryAccessLevel` instead, to be removed in 20.0.
2654
3456
  */
2655
3457
  packagesEnabled: boolean;
3458
+ /**
3459
+ * Set the GitLab Pages access level. Valid values are `disabled`, `private`, `enabled`.
3460
+ */
3461
+ pagesAccessLevel: string;
2656
3462
  /**
2657
3463
  * The path of the project.
2658
3464
  */
@@ -2665,22 +3471,44 @@ export interface GetProjectsProject {
2665
3471
  * Permissions for the project.
2666
3472
  */
2667
3473
  permissions: outputs.GetProjectsProjectPermission[];
3474
+ /**
3475
+ * Whether pre-receive secret detection is enabled for the project.
3476
+ */
3477
+ preReceiveSecretDetectionEnabled: boolean;
2668
3478
  /**
2669
3479
  * Whether merge requests require an associated issue from Jira. Premium and Ultimate only.
2670
3480
  */
2671
3481
  preventMergeWithoutJiraIssue: boolean;
2672
3482
  /**
2673
- * Whether public builds are enabled for the project.
3483
+ * Show link to create/view merge request when pushing from the command line.
3484
+ */
3485
+ printingMergeRequestLinkEnabled: boolean;
3486
+ /**
3487
+ * Whether pipelines triggered for merge requests run with project secrets and protected variables, instead of the contributor's lower-privileged context.
3488
+ */
3489
+ protectMergeRequestPipelines: boolean;
3490
+ /**
3491
+ * If true, jobs can be viewed by non-project members. Alias for `publicJobs`.
3492
+ *
3493
+ * @deprecated Use `publicJobs` instead, to be removed in 20.0.
2674
3494
  */
2675
3495
  publicBuilds: boolean;
2676
3496
  /**
2677
- * The remote url of the project.
3497
+ * If true, jobs can be viewed by non-project members.
3498
+ */
3499
+ publicJobs: boolean;
3500
+ /**
3501
+ * The URL of the project README.
2678
3502
  */
2679
3503
  readmeUrl: string;
2680
3504
  /**
2681
3505
  * Set the releases access level. Valid values are `disabled`, `private`, `enabled`.
2682
3506
  */
2683
3507
  releasesAccessLevel: string;
3508
+ /**
3509
+ * Enable `Delete source branch` option by default for all new merge requests.
3510
+ */
3511
+ removeSourceBranchAfterMerge: boolean;
2684
3512
  /**
2685
3513
  * Set the repository access level. Valid values are `disabled`, `private`, `enabled`.
2686
3514
  */
@@ -2698,7 +3526,11 @@ export interface GetProjectsProject {
2698
3526
  */
2699
3527
  requirementsAccessLevel: string;
2700
3528
  /**
2701
- * Whether resolveOutdatedDiffDiscussions is enabled for the project
3529
+ * Whether the requirements feature is enabled. Premium and Ultimate only.
3530
+ */
3531
+ requirementsEnabled: boolean;
3532
+ /**
3533
+ * Automatically resolve merge request diffs discussions on lines changed with a push.
2702
3534
  */
2703
3535
  resolveOutdatedDiffDiscussions: boolean;
2704
3536
  /**
@@ -2707,22 +3539,40 @@ export interface GetProjectsProject {
2707
3539
  resourceGroupDefaultProcessMode: string;
2708
3540
  /**
2709
3541
  * Allow only users with the Maintainer role to pass user-defined variables when triggering a pipeline.
3542
+ *
3543
+ * @deprecated Use `ciPipelineVariablesMinimumOverrideRole` instead, to be removed in 20.0.
2710
3544
  */
2711
3545
  restrictUserDefinedVariables: boolean;
2712
3546
  /**
2713
- * The runners token for the project.
3547
+ * Runner token expiration interval, in seconds.
3548
+ */
3549
+ runnerTokenExpirationInterval: number;
3550
+ /**
3551
+ * Registration token to use during runner setup.
2714
3552
  */
2715
3553
  runnersToken: string;
2716
3554
  /**
2717
3555
  * Set the security and compliance access level. Valid values are `disabled`, `private`, `enabled`.
2718
3556
  */
2719
3557
  securityAndComplianceAccessLevel: string;
3558
+ /**
3559
+ * Whether the security and compliance feature is enabled.
3560
+ */
3561
+ securityAndComplianceEnabled: boolean;
3562
+ /**
3563
+ * The Service Desk email address for the project.
3564
+ */
3565
+ serviceDeskAddress: string;
3566
+ /**
3567
+ * Whether Service Desk is enabled for the project.
3568
+ */
3569
+ serviceDeskEnabled: boolean;
2720
3570
  /**
2721
3571
  * Whether shared runners are enabled for the project.
2722
3572
  */
2723
3573
  sharedRunnersEnabled: boolean;
2724
3574
  /**
2725
- * Groups the the project is shared with.
3575
+ * Describes groups which have access shared to this project.
2726
3576
  */
2727
3577
  sharedWithGroups: outputs.GetProjectsProjectSharedWithGroup[];
2728
3578
  /**
@@ -2731,12 +3581,18 @@ export interface GetProjectsProject {
2731
3581
  snippetsAccessLevel: string;
2732
3582
  /**
2733
3583
  * Whether snippets are enabled for the project.
3584
+ *
3585
+ * @deprecated Use `snippetsAccessLevel` instead, to be removed in 20.0.
2734
3586
  */
2735
3587
  snippetsEnabled: boolean;
2736
3588
  /**
2737
3589
  * Template used to create squash commit message in merge requests.
2738
3590
  */
2739
3591
  squashCommitTemplate: string;
3592
+ /**
3593
+ * The project's squash option for merge requests (`never`, `always`, `defaultOn`, `defaultOff`).
3594
+ */
3595
+ squashOption: string;
2740
3596
  /**
2741
3597
  * The SSH clone URL of the project.
2742
3598
  */
@@ -2756,7 +3612,9 @@ export interface GetProjectsProject {
2756
3612
  */
2757
3613
  suggestionCommitMessage: string;
2758
3614
  /**
2759
- * A set of the project topics (formerly called "project tags").
3615
+ * The list of project topics (formerly project tags).
3616
+ *
3617
+ * @deprecated Use `topics` instead, to be removed in 20.0.
2760
3618
  */
2761
3619
  tagLists: string[];
2762
3620
  /**
@@ -2764,11 +3622,21 @@ export interface GetProjectsProject {
2764
3622
  */
2765
3623
  topics: string[];
2766
3624
  /**
2767
- * The visibility of the project.
3625
+ * The time the project was last updated.
3626
+ */
3627
+ updatedAt: string;
3628
+ /**
3629
+ * The visibility of the project (`private`, `internal`, `public`).
2768
3630
  */
2769
3631
  visibility: string;
2770
3632
  /**
2771
- * The web url of the project.
3633
+ * The visibility of the project. Alias for `visibility`.
3634
+ *
3635
+ * @deprecated Use `visibility` instead, to be removed in 20.0.
3636
+ */
3637
+ visibilityLevel: string;
3638
+ /**
3639
+ * URL that can be used to find the project in a browser.
2772
3640
  */
2773
3641
  webUrl: string;
2774
3642
  /**
@@ -2777,6 +3645,8 @@ export interface GetProjectsProject {
2777
3645
  wikiAccessLevel: string;
2778
3646
  /**
2779
3647
  * Whether wiki is enabled for the project.
3648
+ *
3649
+ * @deprecated Use `wikiAccessLevel` instead, to be removed in 20.0.
2780
3650
  */
2781
3651
  wikiEnabled: boolean;
2782
3652
  }
@@ -2836,10 +3706,32 @@ export interface GetProjectsProjectForkedFromProject {
2836
3706
  */
2837
3707
  pathWithNamespace: string;
2838
3708
  /**
2839
- * The web url of the upstream project.
3709
+ * The web URL of the upstream project.
2840
3710
  */
2841
3711
  webUrl: string;
2842
3712
  }
3713
+ export interface GetProjectsProjectLicense {
3714
+ /**
3715
+ * URL to the license's human-readable description.
3716
+ */
3717
+ htmlUrl: string;
3718
+ /**
3719
+ * The license key (e.g. `mit`).
3720
+ */
3721
+ key: string;
3722
+ /**
3723
+ * The license name (e.g. `MIT License`).
3724
+ */
3725
+ name: string;
3726
+ /**
3727
+ * The license nickname.
3728
+ */
3729
+ nickname: string;
3730
+ /**
3731
+ * URL to the license source text.
3732
+ */
3733
+ sourceUrl: string;
3734
+ }
2843
3735
  export interface GetProjectsProjectNamespace {
2844
3736
  /**
2845
3737
  * The full path of the namespace.
@@ -2864,7 +3756,7 @@ export interface GetProjectsProjectNamespace {
2864
3756
  }
2865
3757
  export interface GetProjectsProjectOwner {
2866
3758
  /**
2867
- * The avatar url of the owner.
3759
+ * The avatar URL of the owner.
2868
3760
  */
2869
3761
  avatarUrl: string;
2870
3762
  /**
@@ -2884,7 +3776,7 @@ export interface GetProjectsProjectOwner {
2884
3776
  */
2885
3777
  username: string;
2886
3778
  /**
2887
- * The website url of the owner.
3779
+ * The website URL of the owner.
2888
3780
  */
2889
3781
  websiteUrl: string;
2890
3782
  }
@@ -2904,15 +3796,25 @@ export interface GetProjectsProjectPermission {
2904
3796
  }
2905
3797
  export interface GetProjectsProjectSharedWithGroup {
2906
3798
  /**
2907
- * The group access level.
3799
+ * The access level (integer) of the shared group. Matches the upstream GitLab API. See `groupAccessLevelName` for the human-readable string form.
3800
+ */
3801
+ groupAccessLevel: number;
3802
+ /**
3803
+ * The human-readable access level name of the shared group (e.g. `developer`, `maintainer`). Computed from `groupAccessLevel`.
3804
+ *
3805
+ * @deprecated Use `groupAccessLevel` instead, to be removed in 20.0.
3806
+ */
3807
+ groupAccessLevelName: string;
3808
+ /**
3809
+ * The full path of the group shared with.
2908
3810
  */
2909
- groupAccessLevel: string;
3811
+ groupFullPath: string;
2910
3812
  /**
2911
- * The group ID.
3813
+ * The ID of the group shared with.
2912
3814
  */
2913
3815
  groupId: number;
2914
3816
  /**
2915
- * The group name.
3817
+ * The name of the group shared with.
2916
3818
  */
2917
3819
  groupName: string;
2918
3820
  }
@@ -2997,12 +3899,6 @@ export interface GetReleaseLinksReleaseLink {
2997
3899
  url: string;
2998
3900
  }
2999
3901
  export interface GetRepositoryTreeTree {
3000
- /**
3001
- * The project ID. Use `nodeId` instead. To be removed in 19.0.
3002
- *
3003
- * @deprecated Use `nodeId` instead. To be removed in 19.0.
3004
- */
3005
- id: string;
3006
3902
  /**
3007
3903
  * Unix access mode of the file in the repository.
3008
3904
  */
@@ -3212,6 +4108,52 @@ export interface GetSecurityPolicyDocumentScanExecutionPolicySkipCi {
3212
4108
  */
3213
4109
  allowed: boolean;
3214
4110
  }
4111
+ export interface GetSystemHooksHook {
4112
+ /**
4113
+ * The date and time the hook was created in ISO8601 format.
4114
+ */
4115
+ createdAt: string;
4116
+ /**
4117
+ * The description of the hook.
4118
+ */
4119
+ description: string;
4120
+ /**
4121
+ * Do SSL verification when triggering the hook.
4122
+ */
4123
+ enableSslVerification: boolean;
4124
+ /**
4125
+ * The id of the system hook.
4126
+ */
4127
+ hookId: number;
4128
+ /**
4129
+ * Trigger hook on merge requests events.
4130
+ */
4131
+ mergeRequestsEvents: boolean;
4132
+ /**
4133
+ * The name of the hook.
4134
+ */
4135
+ name: string;
4136
+ /**
4137
+ * When true, the hook fires on push events.
4138
+ */
4139
+ pushEvents: boolean;
4140
+ /**
4141
+ * Trigger hook on repository update events.
4142
+ */
4143
+ repositoryUpdateEvents: boolean;
4144
+ /**
4145
+ * Whether a `signingToken` is configured server-side. Reflects the value returned by the GitLab API.
4146
+ */
4147
+ signingTokenPresent: boolean;
4148
+ /**
4149
+ * When true, the hook fires on new tags being pushed.
4150
+ */
4151
+ tagPushEvents: boolean;
4152
+ /**
4153
+ * The hook URL.
4154
+ */
4155
+ url: string;
4156
+ }
3215
4157
  export interface GetUserSshkeysKey {
3216
4158
  /**
3217
4159
  * The time when this key was created in GitLab.
@@ -3362,6 +4304,64 @@ export interface GroupAccessTokenRotationConfiguration {
3362
4304
  */
3363
4305
  rotateBeforeDays: number;
3364
4306
  }
4307
+ export interface GroupBranchProtectionAllowedToMerge {
4308
+ /**
4309
+ * Access level allowed to perform the relevant action. Mutually exclusive with `groupId` and `userId`. Valid values are: `no one`, `developer`, `maintainer`, `admin`.
4310
+ */
4311
+ accessLevel: string;
4312
+ /**
4313
+ * Readable description of access level.
4314
+ */
4315
+ accessLevelDescription: string;
4316
+ /**
4317
+ * The ID of a GitLab group allowed to perform the relevant action. Mutually exclusive with `userId` and `accessLevel`.
4318
+ */
4319
+ groupId?: number;
4320
+ /**
4321
+ * The ID of a GitLab user allowed to perform the relevant action. Mutually exclusive with `groupId` and `accessLevel`.
4322
+ */
4323
+ userId?: number;
4324
+ }
4325
+ export interface GroupBranchProtectionAllowedToPush {
4326
+ /**
4327
+ * Access level allowed to perform the relevant action. Mutually exclusive with `deployKeyId`, `groupId`, and `userId`. Valid values are: `no one`, `developer`, `maintainer`, `admin`.
4328
+ */
4329
+ accessLevel: string;
4330
+ /**
4331
+ * Readable description of access level.
4332
+ */
4333
+ accessLevelDescription: string;
4334
+ /**
4335
+ * The ID of a GitLab deploy key allowed to perform the relevant action. Mutually exclusive with `userId`, `groupId`, and `accessLevel`.
4336
+ */
4337
+ deployKeyId?: number;
4338
+ /**
4339
+ * The ID of a GitLab group allowed to perform the relevant action. Mutually exclusive with `deployKeyId`, `userId`, and `accessLevel`.
4340
+ */
4341
+ groupId?: number;
4342
+ /**
4343
+ * The ID of a GitLab user allowed to perform the relevant action. Mutually exclusive with `deployKeyId`, `groupId`, and `accessLevel`.
4344
+ */
4345
+ userId?: number;
4346
+ }
4347
+ export interface GroupBranchProtectionAllowedToUnprotect {
4348
+ /**
4349
+ * Access level allowed to perform the relevant action. Mutually exclusive with `groupId` and `userId`. Valid values are: `developer`, `maintainer`, `admin`.
4350
+ */
4351
+ accessLevel: string;
4352
+ /**
4353
+ * Readable description of access level.
4354
+ */
4355
+ accessLevelDescription: string;
4356
+ /**
4357
+ * The ID of a GitLab group allowed to perform the relevant action. Mutually exclusive with `userId` and `accessLevel`.
4358
+ */
4359
+ groupId?: number;
4360
+ /**
4361
+ * The ID of a GitLab user allowed to perform the relevant action. Mutually exclusive with `groupId` and `accessLevel`.
4362
+ */
4363
+ userId?: number;
4364
+ }
3365
4365
  export interface GroupDefaultBranchProtectionDefaults {
3366
4366
  /**
3367
4367
  * Allow force push for all users with push access.
@@ -3408,6 +4408,16 @@ export interface GroupHookCustomHeader {
3408
4408
  */
3409
4409
  value: string;
3410
4410
  }
4411
+ export interface GroupHookUrlVariable {
4412
+ /**
4413
+ * The value to display in place of the sensitive portion in the URL.
4414
+ */
4415
+ key: string;
4416
+ /**
4417
+ * The sensitive portion of the webhook URL to mask. This value cannot be imported.
4418
+ */
4419
+ value: string;
4420
+ }
3411
4421
  export interface GroupIssueBoardList {
3412
4422
  /**
3413
4423
  * The ID of the list.
@@ -3432,7 +4442,7 @@ export interface GroupProtectedEnvironmentApprovalRule {
3432
4442
  */
3433
4443
  accessLevelDescription: string;
3434
4444
  /**
3435
- * The ID of the group allowed to approve a deployment to this protected environment. TThe group must be a sub-group under the given group. Mutually exclusive with `accessLevel` and `userId`.
4445
+ * The ID of the group allowed to approve a deployment to this protected environment. The group must be a sub-group under the given group. Mutually exclusive with `accessLevel` and `userId`.
3436
4446
  */
3437
4447
  groupId?: number;
3438
4448
  /**
@@ -3630,6 +4640,16 @@ export interface ProjectHookCustomHeader {
3630
4640
  */
3631
4641
  value: string;
3632
4642
  }
4643
+ export interface ProjectHookUrlVariable {
4644
+ /**
4645
+ * The value to display in place of the sensitive portion in the URL.
4646
+ */
4647
+ key: string;
4648
+ /**
4649
+ * The sensitive portion of the webhook URL to mask. This value cannot be imported.
4650
+ */
4651
+ value: string;
4652
+ }
3633
4653
  export interface ProjectIssueBoardList {
3634
4654
  /**
3635
4655
  * The ID of the assignee the list should be scoped to. Requires a GitLab EE license.
@@ -3714,32 +4734,6 @@ export interface ProjectProtectedEnvironmentApprovalRule {
3714
4734
  */
3715
4735
  userId?: number;
3716
4736
  }
3717
- export interface ProjectProtectedEnvironmentDeployAccessLevel {
3718
- /**
3719
- * Levels of access required to deploy to this protected environment. Mutually exclusive with `userId` and `groupId`. Valid values are `developer`, `maintainer`.
3720
- */
3721
- accessLevel?: string;
3722
- /**
3723
- * Readable description of level of access.
3724
- */
3725
- accessLevelDescription: string;
3726
- /**
3727
- * The ID of the group allowed to deploy to this protected environment. The project must be shared with the group. Mutually exclusive with `accessLevel` and `userId`.
3728
- */
3729
- groupId?: number;
3730
- /**
3731
- * Group inheritance allows deploy access levels to take inherited group membership into account. Valid values are `0`, `1`. `0` => Direct group membership only, `1` => All inherited groups. Default: `0`
3732
- */
3733
- groupInheritanceType: number;
3734
- /**
3735
- * The unique ID of the Deploy Access Level object.
3736
- */
3737
- id: number;
3738
- /**
3739
- * The ID of the user allowed to deploy to this protected environment. The user must be a member of the project. Mutually exclusive with `accessLevel` and `groupId`.
3740
- */
3741
- userId?: number;
3742
- }
3743
4737
  export interface ProjectProtectedEnvironmentDeployAccessLevelsAttribute {
3744
4738
  /**
3745
4739
  * Levels of access required to deploy to this protected environment. Mutually exclusive with `userId` and `groupId`. Valid values are `developer`, `maintainer`.
@@ -3820,6 +4814,12 @@ export interface ProjectPushRules {
3820
4814
  */
3821
4815
  rejectUnsignedCommits?: boolean;
3822
4816
  }
4817
+ export interface ProjectServiceAccountTimeouts {
4818
+ /**
4819
+ * How long to wait for the service account to be fully deleted. Defaults to 10 minutes.
4820
+ */
4821
+ delete?: string;
4822
+ }
3823
4823
  export interface ProjectTagCommit {
3824
4824
  /**
3825
4825
  * The email of the author.