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
pulumi_gitlab/group.py CHANGED
@@ -22,6 +22,7 @@ __all__ = ['GroupArgs', 'Group']
22
22
  class GroupArgs:
23
23
  def __init__(__self__, *,
24
24
  path: pulumi.Input[_builtins.str],
25
+ allow_merge_on_skipped_pipeline: Optional[pulumi.Input[_builtins.bool]] = None,
25
26
  allowed_email_domains_lists: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
26
27
  auto_devops_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
27
28
  avatar: Optional[pulumi.Input[_builtins.str]] = None,
@@ -37,6 +38,8 @@ class GroupArgs:
37
38
  membership_lock: Optional[pulumi.Input[_builtins.bool]] = None,
38
39
  mentions_disabled: Optional[pulumi.Input[_builtins.bool]] = None,
39
40
  name: Optional[pulumi.Input[_builtins.str]] = None,
41
+ only_allow_merge_if_all_discussions_are_resolved: Optional[pulumi.Input[_builtins.bool]] = None,
42
+ only_allow_merge_if_pipeline_succeeds: Optional[pulumi.Input[_builtins.bool]] = None,
40
43
  parent_id: Optional[pulumi.Input[_builtins.int]] = None,
41
44
  permanently_remove_on_delete: Optional[pulumi.Input[_builtins.bool]] = None,
42
45
  prevent_forking_outside_group: Optional[pulumi.Input[_builtins.bool]] = None,
@@ -54,6 +57,7 @@ class GroupArgs:
54
57
  """
55
58
  The set of arguments for constructing a Group resource.
56
59
  :param pulumi.Input[_builtins.str] path: The path of the group.
60
+ :param pulumi.Input[_builtins.bool] allow_merge_on_skipped_pipeline: Allow merging merge requests when the pipeline is skipped. Only applies when only*allow*merge*if*pipeline_succeeds is true. Premium and Ultimate only.
57
61
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] allowed_email_domains_lists: A list of email address domains to allow group access. Will be concatenated together into a comma separated string.
58
62
  :param pulumi.Input[_builtins.bool] auto_devops_enabled: Default to Auto DevOps pipeline for all projects within this group.
59
63
  :param pulumi.Input[_builtins.str] avatar: A local path to the avatar image to upload. **Note**: not available for imported resources.
@@ -69,10 +73,12 @@ class GroupArgs:
69
73
  :param pulumi.Input[_builtins.bool] membership_lock: Users cannot be added to projects in this group.
70
74
  :param pulumi.Input[_builtins.bool] mentions_disabled: Disable the capability of a group from getting mentioned.
71
75
  :param pulumi.Input[_builtins.str] name: The name of the group.
76
+ :param pulumi.Input[_builtins.bool] only_allow_merge_if_all_discussions_are_resolved: Only allow merging merge requests when all discussions are resolved. When enabled for a group, applies to all projects in the group. Premium and Ultimate only.
77
+ :param pulumi.Input[_builtins.bool] only_allow_merge_if_pipeline_succeeds: Only allow merging merge requests if the pipeline succeeds. When enabled for a group, applies to all projects in the group. Premium and Ultimate only.
72
78
  :param pulumi.Input[_builtins.int] parent_id: Id of the parent group (creates a nested group).
73
79
  :param pulumi.Input[_builtins.bool] permanently_remove_on_delete: Whether the group should be permanently removed during a `delete` operation. This only works with subgroups. Must be configured via an `apply` before the `destroy` is run.
74
80
  :param pulumi.Input[_builtins.bool] prevent_forking_outside_group: Defaults to false. When enabled, users can not fork projects from this group to external namespaces.
75
- :param pulumi.Input[_builtins.str] project_creation_level: Determine if developers can create projects in the group. Valid values are: `noone`, `owner`, `maintainer`, `developer`
81
+ :param pulumi.Input[_builtins.str] project_creation_level: Determine if developers can create projects in the group. Valid values are: `noone`, `owner`, `maintainer`, `developer`, `administrator`
76
82
  :param pulumi.Input['GroupPushRulesArgs'] push_rules: Push rules for the group.
77
83
  :param pulumi.Input[_builtins.bool] request_access_enabled: Allow users to request member access.
78
84
  :param pulumi.Input[_builtins.bool] require_two_factor_authentication: Require all users in this group to setup Two-factor authentication.
@@ -85,6 +91,8 @@ class GroupArgs:
85
91
  :param pulumi.Input[_builtins.str] wiki_access_level: The group's wiki access level. Only available on Premium and Ultimate plans. Valid values are `disabled`, `private`, `enabled`.
86
92
  """
87
93
  pulumi.set(__self__, "path", path)
94
+ if allow_merge_on_skipped_pipeline is not None:
95
+ pulumi.set(__self__, "allow_merge_on_skipped_pipeline", allow_merge_on_skipped_pipeline)
88
96
  if allowed_email_domains_lists is not None:
89
97
  pulumi.set(__self__, "allowed_email_domains_lists", allowed_email_domains_lists)
90
98
  if auto_devops_enabled is not None:
@@ -118,6 +126,10 @@ class GroupArgs:
118
126
  pulumi.set(__self__, "mentions_disabled", mentions_disabled)
119
127
  if name is not None:
120
128
  pulumi.set(__self__, "name", name)
129
+ if only_allow_merge_if_all_discussions_are_resolved is not None:
130
+ pulumi.set(__self__, "only_allow_merge_if_all_discussions_are_resolved", only_allow_merge_if_all_discussions_are_resolved)
131
+ if only_allow_merge_if_pipeline_succeeds is not None:
132
+ pulumi.set(__self__, "only_allow_merge_if_pipeline_succeeds", only_allow_merge_if_pipeline_succeeds)
121
133
  if parent_id is not None:
122
134
  pulumi.set(__self__, "parent_id", parent_id)
123
135
  if permanently_remove_on_delete is not None:
@@ -159,6 +171,18 @@ class GroupArgs:
159
171
  def path(self, value: pulumi.Input[_builtins.str]):
160
172
  pulumi.set(self, "path", value)
161
173
 
174
+ @_builtins.property
175
+ @pulumi.getter(name="allowMergeOnSkippedPipeline")
176
+ def allow_merge_on_skipped_pipeline(self) -> Optional[pulumi.Input[_builtins.bool]]:
177
+ """
178
+ Allow merging merge requests when the pipeline is skipped. Only applies when only*allow*merge*if*pipeline_succeeds is true. Premium and Ultimate only.
179
+ """
180
+ return pulumi.get(self, "allow_merge_on_skipped_pipeline")
181
+
182
+ @allow_merge_on_skipped_pipeline.setter
183
+ def allow_merge_on_skipped_pipeline(self, value: Optional[pulumi.Input[_builtins.bool]]):
184
+ pulumi.set(self, "allow_merge_on_skipped_pipeline", value)
185
+
162
186
  @_builtins.property
163
187
  @pulumi.getter(name="allowedEmailDomainsLists")
164
188
  def allowed_email_domains_lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
@@ -340,6 +364,30 @@ class GroupArgs:
340
364
  def name(self, value: Optional[pulumi.Input[_builtins.str]]):
341
365
  pulumi.set(self, "name", value)
342
366
 
367
+ @_builtins.property
368
+ @pulumi.getter(name="onlyAllowMergeIfAllDiscussionsAreResolved")
369
+ def only_allow_merge_if_all_discussions_are_resolved(self) -> Optional[pulumi.Input[_builtins.bool]]:
370
+ """
371
+ Only allow merging merge requests when all discussions are resolved. When enabled for a group, applies to all projects in the group. Premium and Ultimate only.
372
+ """
373
+ return pulumi.get(self, "only_allow_merge_if_all_discussions_are_resolved")
374
+
375
+ @only_allow_merge_if_all_discussions_are_resolved.setter
376
+ def only_allow_merge_if_all_discussions_are_resolved(self, value: Optional[pulumi.Input[_builtins.bool]]):
377
+ pulumi.set(self, "only_allow_merge_if_all_discussions_are_resolved", value)
378
+
379
+ @_builtins.property
380
+ @pulumi.getter(name="onlyAllowMergeIfPipelineSucceeds")
381
+ def only_allow_merge_if_pipeline_succeeds(self) -> Optional[pulumi.Input[_builtins.bool]]:
382
+ """
383
+ Only allow merging merge requests if the pipeline succeeds. When enabled for a group, applies to all projects in the group. Premium and Ultimate only.
384
+ """
385
+ return pulumi.get(self, "only_allow_merge_if_pipeline_succeeds")
386
+
387
+ @only_allow_merge_if_pipeline_succeeds.setter
388
+ def only_allow_merge_if_pipeline_succeeds(self, value: Optional[pulumi.Input[_builtins.bool]]):
389
+ pulumi.set(self, "only_allow_merge_if_pipeline_succeeds", value)
390
+
343
391
  @_builtins.property
344
392
  @pulumi.getter(name="parentId")
345
393
  def parent_id(self) -> Optional[pulumi.Input[_builtins.int]]:
@@ -380,7 +428,7 @@ class GroupArgs:
380
428
  @pulumi.getter(name="projectCreationLevel")
381
429
  def project_creation_level(self) -> Optional[pulumi.Input[_builtins.str]]:
382
430
  """
383
- Determine if developers can create projects in the group. Valid values are: `noone`, `owner`, `maintainer`, `developer`
431
+ Determine if developers can create projects in the group. Valid values are: `noone`, `owner`, `maintainer`, `developer`, `administrator`
384
432
  """
385
433
  return pulumi.get(self, "project_creation_level")
386
434
 
@@ -512,6 +560,7 @@ class GroupArgs:
512
560
  @pulumi.input_type
513
561
  class _GroupState:
514
562
  def __init__(__self__, *,
563
+ allow_merge_on_skipped_pipeline: Optional[pulumi.Input[_builtins.bool]] = None,
515
564
  allowed_email_domains_lists: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
516
565
  auto_devops_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
517
566
  avatar: Optional[pulumi.Input[_builtins.str]] = None,
@@ -530,6 +579,8 @@ class _GroupState:
530
579
  membership_lock: Optional[pulumi.Input[_builtins.bool]] = None,
531
580
  mentions_disabled: Optional[pulumi.Input[_builtins.bool]] = None,
532
581
  name: Optional[pulumi.Input[_builtins.str]] = None,
582
+ only_allow_merge_if_all_discussions_are_resolved: Optional[pulumi.Input[_builtins.bool]] = None,
583
+ only_allow_merge_if_pipeline_succeeds: Optional[pulumi.Input[_builtins.bool]] = None,
533
584
  parent_id: Optional[pulumi.Input[_builtins.int]] = None,
534
585
  path: Optional[pulumi.Input[_builtins.str]] = None,
535
586
  permanently_remove_on_delete: Optional[pulumi.Input[_builtins.bool]] = None,
@@ -549,6 +600,7 @@ class _GroupState:
549
600
  wiki_access_level: Optional[pulumi.Input[_builtins.str]] = None):
550
601
  """
551
602
  Input properties used for looking up and filtering Group resources.
603
+ :param pulumi.Input[_builtins.bool] allow_merge_on_skipped_pipeline: Allow merging merge requests when the pipeline is skipped. Only applies when only*allow*merge*if*pipeline_succeeds is true. Premium and Ultimate only.
552
604
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] allowed_email_domains_lists: A list of email address domains to allow group access. Will be concatenated together into a comma separated string.
553
605
  :param pulumi.Input[_builtins.bool] auto_devops_enabled: Default to Auto DevOps pipeline for all projects within this group.
554
606
  :param pulumi.Input[_builtins.str] avatar: A local path to the avatar image to upload. **Note**: not available for imported resources.
@@ -567,11 +619,13 @@ class _GroupState:
567
619
  :param pulumi.Input[_builtins.bool] membership_lock: Users cannot be added to projects in this group.
568
620
  :param pulumi.Input[_builtins.bool] mentions_disabled: Disable the capability of a group from getting mentioned.
569
621
  :param pulumi.Input[_builtins.str] name: The name of the group.
622
+ :param pulumi.Input[_builtins.bool] only_allow_merge_if_all_discussions_are_resolved: Only allow merging merge requests when all discussions are resolved. When enabled for a group, applies to all projects in the group. Premium and Ultimate only.
623
+ :param pulumi.Input[_builtins.bool] only_allow_merge_if_pipeline_succeeds: Only allow merging merge requests if the pipeline succeeds. When enabled for a group, applies to all projects in the group. Premium and Ultimate only.
570
624
  :param pulumi.Input[_builtins.int] parent_id: Id of the parent group (creates a nested group).
571
625
  :param pulumi.Input[_builtins.str] path: The path of the group.
572
626
  :param pulumi.Input[_builtins.bool] permanently_remove_on_delete: Whether the group should be permanently removed during a `delete` operation. This only works with subgroups. Must be configured via an `apply` before the `destroy` is run.
573
627
  :param pulumi.Input[_builtins.bool] prevent_forking_outside_group: Defaults to false. When enabled, users can not fork projects from this group to external namespaces.
574
- :param pulumi.Input[_builtins.str] project_creation_level: Determine if developers can create projects in the group. Valid values are: `noone`, `owner`, `maintainer`, `developer`
628
+ :param pulumi.Input[_builtins.str] project_creation_level: Determine if developers can create projects in the group. Valid values are: `noone`, `owner`, `maintainer`, `developer`, `administrator`
575
629
  :param pulumi.Input['GroupPushRulesArgs'] push_rules: Push rules for the group.
576
630
  :param pulumi.Input[_builtins.bool] request_access_enabled: Allow users to request member access.
577
631
  :param pulumi.Input[_builtins.bool] require_two_factor_authentication: Require all users in this group to setup Two-factor authentication.
@@ -585,6 +639,8 @@ class _GroupState:
585
639
  :param pulumi.Input[_builtins.str] web_url: Web URL of the group.
586
640
  :param pulumi.Input[_builtins.str] wiki_access_level: The group's wiki access level. Only available on Premium and Ultimate plans. Valid values are `disabled`, `private`, `enabled`.
587
641
  """
642
+ if allow_merge_on_skipped_pipeline is not None:
643
+ pulumi.set(__self__, "allow_merge_on_skipped_pipeline", allow_merge_on_skipped_pipeline)
588
644
  if allowed_email_domains_lists is not None:
589
645
  pulumi.set(__self__, "allowed_email_domains_lists", allowed_email_domains_lists)
590
646
  if auto_devops_enabled is not None:
@@ -624,6 +680,10 @@ class _GroupState:
624
680
  pulumi.set(__self__, "mentions_disabled", mentions_disabled)
625
681
  if name is not None:
626
682
  pulumi.set(__self__, "name", name)
683
+ if only_allow_merge_if_all_discussions_are_resolved is not None:
684
+ pulumi.set(__self__, "only_allow_merge_if_all_discussions_are_resolved", only_allow_merge_if_all_discussions_are_resolved)
685
+ if only_allow_merge_if_pipeline_succeeds is not None:
686
+ pulumi.set(__self__, "only_allow_merge_if_pipeline_succeeds", only_allow_merge_if_pipeline_succeeds)
627
687
  if parent_id is not None:
628
688
  pulumi.set(__self__, "parent_id", parent_id)
629
689
  if path is not None:
@@ -659,6 +719,18 @@ class _GroupState:
659
719
  if wiki_access_level is not None:
660
720
  pulumi.set(__self__, "wiki_access_level", wiki_access_level)
661
721
 
722
+ @_builtins.property
723
+ @pulumi.getter(name="allowMergeOnSkippedPipeline")
724
+ def allow_merge_on_skipped_pipeline(self) -> Optional[pulumi.Input[_builtins.bool]]:
725
+ """
726
+ Allow merging merge requests when the pipeline is skipped. Only applies when only*allow*merge*if*pipeline_succeeds is true. Premium and Ultimate only.
727
+ """
728
+ return pulumi.get(self, "allow_merge_on_skipped_pipeline")
729
+
730
+ @allow_merge_on_skipped_pipeline.setter
731
+ def allow_merge_on_skipped_pipeline(self, value: Optional[pulumi.Input[_builtins.bool]]):
732
+ pulumi.set(self, "allow_merge_on_skipped_pipeline", value)
733
+
662
734
  @_builtins.property
663
735
  @pulumi.getter(name="allowedEmailDomainsLists")
664
736
  def allowed_email_domains_lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
@@ -876,6 +948,30 @@ class _GroupState:
876
948
  def name(self, value: Optional[pulumi.Input[_builtins.str]]):
877
949
  pulumi.set(self, "name", value)
878
950
 
951
+ @_builtins.property
952
+ @pulumi.getter(name="onlyAllowMergeIfAllDiscussionsAreResolved")
953
+ def only_allow_merge_if_all_discussions_are_resolved(self) -> Optional[pulumi.Input[_builtins.bool]]:
954
+ """
955
+ Only allow merging merge requests when all discussions are resolved. When enabled for a group, applies to all projects in the group. Premium and Ultimate only.
956
+ """
957
+ return pulumi.get(self, "only_allow_merge_if_all_discussions_are_resolved")
958
+
959
+ @only_allow_merge_if_all_discussions_are_resolved.setter
960
+ def only_allow_merge_if_all_discussions_are_resolved(self, value: Optional[pulumi.Input[_builtins.bool]]):
961
+ pulumi.set(self, "only_allow_merge_if_all_discussions_are_resolved", value)
962
+
963
+ @_builtins.property
964
+ @pulumi.getter(name="onlyAllowMergeIfPipelineSucceeds")
965
+ def only_allow_merge_if_pipeline_succeeds(self) -> Optional[pulumi.Input[_builtins.bool]]:
966
+ """
967
+ Only allow merging merge requests if the pipeline succeeds. When enabled for a group, applies to all projects in the group. Premium and Ultimate only.
968
+ """
969
+ return pulumi.get(self, "only_allow_merge_if_pipeline_succeeds")
970
+
971
+ @only_allow_merge_if_pipeline_succeeds.setter
972
+ def only_allow_merge_if_pipeline_succeeds(self, value: Optional[pulumi.Input[_builtins.bool]]):
973
+ pulumi.set(self, "only_allow_merge_if_pipeline_succeeds", value)
974
+
879
975
  @_builtins.property
880
976
  @pulumi.getter(name="parentId")
881
977
  def parent_id(self) -> Optional[pulumi.Input[_builtins.int]]:
@@ -928,7 +1024,7 @@ class _GroupState:
928
1024
  @pulumi.getter(name="projectCreationLevel")
929
1025
  def project_creation_level(self) -> Optional[pulumi.Input[_builtins.str]]:
930
1026
  """
931
- Determine if developers can create projects in the group. Valid values are: `noone`, `owner`, `maintainer`, `developer`
1027
+ Determine if developers can create projects in the group. Valid values are: `noone`, `owner`, `maintainer`, `developer`, `administrator`
932
1028
  """
933
1029
  return pulumi.get(self, "project_creation_level")
934
1030
 
@@ -1087,6 +1183,7 @@ class Group(pulumi.CustomResource):
1087
1183
  def __init__(__self__,
1088
1184
  resource_name: str,
1089
1185
  opts: Optional[pulumi.ResourceOptions] = None,
1186
+ allow_merge_on_skipped_pipeline: Optional[pulumi.Input[_builtins.bool]] = None,
1090
1187
  allowed_email_domains_lists: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1091
1188
  auto_devops_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
1092
1189
  avatar: Optional[pulumi.Input[_builtins.str]] = None,
@@ -1102,6 +1199,8 @@ class Group(pulumi.CustomResource):
1102
1199
  membership_lock: Optional[pulumi.Input[_builtins.bool]] = None,
1103
1200
  mentions_disabled: Optional[pulumi.Input[_builtins.bool]] = None,
1104
1201
  name: Optional[pulumi.Input[_builtins.str]] = None,
1202
+ only_allow_merge_if_all_discussions_are_resolved: Optional[pulumi.Input[_builtins.bool]] = None,
1203
+ only_allow_merge_if_pipeline_succeeds: Optional[pulumi.Input[_builtins.bool]] = None,
1105
1204
  parent_id: Optional[pulumi.Input[_builtins.int]] = None,
1106
1205
  path: Optional[pulumi.Input[_builtins.str]] = None,
1107
1206
  permanently_remove_on_delete: Optional[pulumi.Input[_builtins.bool]] = None,
@@ -1208,6 +1307,7 @@ class Group(pulumi.CustomResource):
1208
1307
 
1209
1308
  :param str resource_name: The name of the resource.
1210
1309
  :param pulumi.ResourceOptions opts: Options for the resource.
1310
+ :param pulumi.Input[_builtins.bool] allow_merge_on_skipped_pipeline: Allow merging merge requests when the pipeline is skipped. Only applies when only*allow*merge*if*pipeline_succeeds is true. Premium and Ultimate only.
1211
1311
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] allowed_email_domains_lists: A list of email address domains to allow group access. Will be concatenated together into a comma separated string.
1212
1312
  :param pulumi.Input[_builtins.bool] auto_devops_enabled: Default to Auto DevOps pipeline for all projects within this group.
1213
1313
  :param pulumi.Input[_builtins.str] avatar: A local path to the avatar image to upload. **Note**: not available for imported resources.
@@ -1223,11 +1323,13 @@ class Group(pulumi.CustomResource):
1223
1323
  :param pulumi.Input[_builtins.bool] membership_lock: Users cannot be added to projects in this group.
1224
1324
  :param pulumi.Input[_builtins.bool] mentions_disabled: Disable the capability of a group from getting mentioned.
1225
1325
  :param pulumi.Input[_builtins.str] name: The name of the group.
1326
+ :param pulumi.Input[_builtins.bool] only_allow_merge_if_all_discussions_are_resolved: Only allow merging merge requests when all discussions are resolved. When enabled for a group, applies to all projects in the group. Premium and Ultimate only.
1327
+ :param pulumi.Input[_builtins.bool] only_allow_merge_if_pipeline_succeeds: Only allow merging merge requests if the pipeline succeeds. When enabled for a group, applies to all projects in the group. Premium and Ultimate only.
1226
1328
  :param pulumi.Input[_builtins.int] parent_id: Id of the parent group (creates a nested group).
1227
1329
  :param pulumi.Input[_builtins.str] path: The path of the group.
1228
1330
  :param pulumi.Input[_builtins.bool] permanently_remove_on_delete: Whether the group should be permanently removed during a `delete` operation. This only works with subgroups. Must be configured via an `apply` before the `destroy` is run.
1229
1331
  :param pulumi.Input[_builtins.bool] prevent_forking_outside_group: Defaults to false. When enabled, users can not fork projects from this group to external namespaces.
1230
- :param pulumi.Input[_builtins.str] project_creation_level: Determine if developers can create projects in the group. Valid values are: `noone`, `owner`, `maintainer`, `developer`
1332
+ :param pulumi.Input[_builtins.str] project_creation_level: Determine if developers can create projects in the group. Valid values are: `noone`, `owner`, `maintainer`, `developer`, `administrator`
1231
1333
  :param pulumi.Input[Union['GroupPushRulesArgs', 'GroupPushRulesArgsDict']] push_rules: Push rules for the group.
1232
1334
  :param pulumi.Input[_builtins.bool] request_access_enabled: Allow users to request member access.
1233
1335
  :param pulumi.Input[_builtins.bool] require_two_factor_authentication: Require all users in this group to setup Two-factor authentication.
@@ -1348,6 +1450,7 @@ class Group(pulumi.CustomResource):
1348
1450
  def _internal_init(__self__,
1349
1451
  resource_name: str,
1350
1452
  opts: Optional[pulumi.ResourceOptions] = None,
1453
+ allow_merge_on_skipped_pipeline: Optional[pulumi.Input[_builtins.bool]] = None,
1351
1454
  allowed_email_domains_lists: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1352
1455
  auto_devops_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
1353
1456
  avatar: Optional[pulumi.Input[_builtins.str]] = None,
@@ -1363,6 +1466,8 @@ class Group(pulumi.CustomResource):
1363
1466
  membership_lock: Optional[pulumi.Input[_builtins.bool]] = None,
1364
1467
  mentions_disabled: Optional[pulumi.Input[_builtins.bool]] = None,
1365
1468
  name: Optional[pulumi.Input[_builtins.str]] = None,
1469
+ only_allow_merge_if_all_discussions_are_resolved: Optional[pulumi.Input[_builtins.bool]] = None,
1470
+ only_allow_merge_if_pipeline_succeeds: Optional[pulumi.Input[_builtins.bool]] = None,
1366
1471
  parent_id: Optional[pulumi.Input[_builtins.int]] = None,
1367
1472
  path: Optional[pulumi.Input[_builtins.str]] = None,
1368
1473
  permanently_remove_on_delete: Optional[pulumi.Input[_builtins.bool]] = None,
@@ -1387,6 +1492,7 @@ class Group(pulumi.CustomResource):
1387
1492
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
1388
1493
  __props__ = GroupArgs.__new__(GroupArgs)
1389
1494
 
1495
+ __props__.__dict__["allow_merge_on_skipped_pipeline"] = allow_merge_on_skipped_pipeline
1390
1496
  __props__.__dict__["allowed_email_domains_lists"] = allowed_email_domains_lists
1391
1497
  __props__.__dict__["auto_devops_enabled"] = auto_devops_enabled
1392
1498
  __props__.__dict__["avatar"] = avatar
@@ -1402,6 +1508,8 @@ class Group(pulumi.CustomResource):
1402
1508
  __props__.__dict__["membership_lock"] = membership_lock
1403
1509
  __props__.__dict__["mentions_disabled"] = mentions_disabled
1404
1510
  __props__.__dict__["name"] = name
1511
+ __props__.__dict__["only_allow_merge_if_all_discussions_are_resolved"] = only_allow_merge_if_all_discussions_are_resolved
1512
+ __props__.__dict__["only_allow_merge_if_pipeline_succeeds"] = only_allow_merge_if_pipeline_succeeds
1405
1513
  __props__.__dict__["parent_id"] = parent_id
1406
1514
  if path is None and not opts.urn:
1407
1515
  raise TypeError("Missing required property 'path'")
@@ -1436,6 +1544,7 @@ class Group(pulumi.CustomResource):
1436
1544
  def get(resource_name: str,
1437
1545
  id: pulumi.Input[str],
1438
1546
  opts: Optional[pulumi.ResourceOptions] = None,
1547
+ allow_merge_on_skipped_pipeline: Optional[pulumi.Input[_builtins.bool]] = None,
1439
1548
  allowed_email_domains_lists: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1440
1549
  auto_devops_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
1441
1550
  avatar: Optional[pulumi.Input[_builtins.str]] = None,
@@ -1454,6 +1563,8 @@ class Group(pulumi.CustomResource):
1454
1563
  membership_lock: Optional[pulumi.Input[_builtins.bool]] = None,
1455
1564
  mentions_disabled: Optional[pulumi.Input[_builtins.bool]] = None,
1456
1565
  name: Optional[pulumi.Input[_builtins.str]] = None,
1566
+ only_allow_merge_if_all_discussions_are_resolved: Optional[pulumi.Input[_builtins.bool]] = None,
1567
+ only_allow_merge_if_pipeline_succeeds: Optional[pulumi.Input[_builtins.bool]] = None,
1457
1568
  parent_id: Optional[pulumi.Input[_builtins.int]] = None,
1458
1569
  path: Optional[pulumi.Input[_builtins.str]] = None,
1459
1570
  permanently_remove_on_delete: Optional[pulumi.Input[_builtins.bool]] = None,
@@ -1478,6 +1589,7 @@ class Group(pulumi.CustomResource):
1478
1589
  :param str resource_name: The unique name of the resulting resource.
1479
1590
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
1480
1591
  :param pulumi.ResourceOptions opts: Options for the resource.
1592
+ :param pulumi.Input[_builtins.bool] allow_merge_on_skipped_pipeline: Allow merging merge requests when the pipeline is skipped. Only applies when only*allow*merge*if*pipeline_succeeds is true. Premium and Ultimate only.
1481
1593
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] allowed_email_domains_lists: A list of email address domains to allow group access. Will be concatenated together into a comma separated string.
1482
1594
  :param pulumi.Input[_builtins.bool] auto_devops_enabled: Default to Auto DevOps pipeline for all projects within this group.
1483
1595
  :param pulumi.Input[_builtins.str] avatar: A local path to the avatar image to upload. **Note**: not available for imported resources.
@@ -1496,11 +1608,13 @@ class Group(pulumi.CustomResource):
1496
1608
  :param pulumi.Input[_builtins.bool] membership_lock: Users cannot be added to projects in this group.
1497
1609
  :param pulumi.Input[_builtins.bool] mentions_disabled: Disable the capability of a group from getting mentioned.
1498
1610
  :param pulumi.Input[_builtins.str] name: The name of the group.
1611
+ :param pulumi.Input[_builtins.bool] only_allow_merge_if_all_discussions_are_resolved: Only allow merging merge requests when all discussions are resolved. When enabled for a group, applies to all projects in the group. Premium and Ultimate only.
1612
+ :param pulumi.Input[_builtins.bool] only_allow_merge_if_pipeline_succeeds: Only allow merging merge requests if the pipeline succeeds. When enabled for a group, applies to all projects in the group. Premium and Ultimate only.
1499
1613
  :param pulumi.Input[_builtins.int] parent_id: Id of the parent group (creates a nested group).
1500
1614
  :param pulumi.Input[_builtins.str] path: The path of the group.
1501
1615
  :param pulumi.Input[_builtins.bool] permanently_remove_on_delete: Whether the group should be permanently removed during a `delete` operation. This only works with subgroups. Must be configured via an `apply` before the `destroy` is run.
1502
1616
  :param pulumi.Input[_builtins.bool] prevent_forking_outside_group: Defaults to false. When enabled, users can not fork projects from this group to external namespaces.
1503
- :param pulumi.Input[_builtins.str] project_creation_level: Determine if developers can create projects in the group. Valid values are: `noone`, `owner`, `maintainer`, `developer`
1617
+ :param pulumi.Input[_builtins.str] project_creation_level: Determine if developers can create projects in the group. Valid values are: `noone`, `owner`, `maintainer`, `developer`, `administrator`
1504
1618
  :param pulumi.Input[Union['GroupPushRulesArgs', 'GroupPushRulesArgsDict']] push_rules: Push rules for the group.
1505
1619
  :param pulumi.Input[_builtins.bool] request_access_enabled: Allow users to request member access.
1506
1620
  :param pulumi.Input[_builtins.bool] require_two_factor_authentication: Require all users in this group to setup Two-factor authentication.
@@ -1518,6 +1632,7 @@ class Group(pulumi.CustomResource):
1518
1632
 
1519
1633
  __props__ = _GroupState.__new__(_GroupState)
1520
1634
 
1635
+ __props__.__dict__["allow_merge_on_skipped_pipeline"] = allow_merge_on_skipped_pipeline
1521
1636
  __props__.__dict__["allowed_email_domains_lists"] = allowed_email_domains_lists
1522
1637
  __props__.__dict__["auto_devops_enabled"] = auto_devops_enabled
1523
1638
  __props__.__dict__["avatar"] = avatar
@@ -1536,6 +1651,8 @@ class Group(pulumi.CustomResource):
1536
1651
  __props__.__dict__["membership_lock"] = membership_lock
1537
1652
  __props__.__dict__["mentions_disabled"] = mentions_disabled
1538
1653
  __props__.__dict__["name"] = name
1654
+ __props__.__dict__["only_allow_merge_if_all_discussions_are_resolved"] = only_allow_merge_if_all_discussions_are_resolved
1655
+ __props__.__dict__["only_allow_merge_if_pipeline_succeeds"] = only_allow_merge_if_pipeline_succeeds
1539
1656
  __props__.__dict__["parent_id"] = parent_id
1540
1657
  __props__.__dict__["path"] = path
1541
1658
  __props__.__dict__["permanently_remove_on_delete"] = permanently_remove_on_delete
@@ -1555,6 +1672,14 @@ class Group(pulumi.CustomResource):
1555
1672
  __props__.__dict__["wiki_access_level"] = wiki_access_level
1556
1673
  return Group(resource_name, opts=opts, __props__=__props__)
1557
1674
 
1675
+ @_builtins.property
1676
+ @pulumi.getter(name="allowMergeOnSkippedPipeline")
1677
+ def allow_merge_on_skipped_pipeline(self) -> pulumi.Output[_builtins.bool]:
1678
+ """
1679
+ Allow merging merge requests when the pipeline is skipped. Only applies when only*allow*merge*if*pipeline_succeeds is true. Premium and Ultimate only.
1680
+ """
1681
+ return pulumi.get(self, "allow_merge_on_skipped_pipeline")
1682
+
1558
1683
  @_builtins.property
1559
1684
  @pulumi.getter(name="allowedEmailDomainsLists")
1560
1685
  def allowed_email_domains_lists(self) -> pulumi.Output[Sequence[_builtins.str]]:
@@ -1700,6 +1825,22 @@ class Group(pulumi.CustomResource):
1700
1825
  """
1701
1826
  return pulumi.get(self, "name")
1702
1827
 
1828
+ @_builtins.property
1829
+ @pulumi.getter(name="onlyAllowMergeIfAllDiscussionsAreResolved")
1830
+ def only_allow_merge_if_all_discussions_are_resolved(self) -> pulumi.Output[_builtins.bool]:
1831
+ """
1832
+ Only allow merging merge requests when all discussions are resolved. When enabled for a group, applies to all projects in the group. Premium and Ultimate only.
1833
+ """
1834
+ return pulumi.get(self, "only_allow_merge_if_all_discussions_are_resolved")
1835
+
1836
+ @_builtins.property
1837
+ @pulumi.getter(name="onlyAllowMergeIfPipelineSucceeds")
1838
+ def only_allow_merge_if_pipeline_succeeds(self) -> pulumi.Output[_builtins.bool]:
1839
+ """
1840
+ Only allow merging merge requests if the pipeline succeeds. When enabled for a group, applies to all projects in the group. Premium and Ultimate only.
1841
+ """
1842
+ return pulumi.get(self, "only_allow_merge_if_pipeline_succeeds")
1843
+
1703
1844
  @_builtins.property
1704
1845
  @pulumi.getter(name="parentId")
1705
1846
  def parent_id(self) -> pulumi.Output[_builtins.int]:
@@ -1736,7 +1877,7 @@ class Group(pulumi.CustomResource):
1736
1877
  @pulumi.getter(name="projectCreationLevel")
1737
1878
  def project_creation_level(self) -> pulumi.Output[_builtins.str]:
1738
1879
  """
1739
- Determine if developers can create projects in the group. Valid values are: `noone`, `owner`, `maintainer`, `developer`
1880
+ Determine if developers can create projects in the group. Valid values are: `noone`, `owner`, `maintainer`, `developer`, `administrator`
1740
1881
  """
1741
1882
  return pulumi.get(self, "project_creation_level")
1742
1883
 
@@ -27,7 +27,8 @@ class GroupAccessTokenArgs:
27
27
  description: Optional[pulumi.Input[_builtins.str]] = None,
28
28
  expires_at: Optional[pulumi.Input[_builtins.str]] = None,
29
29
  name: Optional[pulumi.Input[_builtins.str]] = None,
30
- rotation_configuration: Optional[pulumi.Input['GroupAccessTokenRotationConfigurationArgs']] = None):
30
+ rotation_configuration: Optional[pulumi.Input['GroupAccessTokenRotationConfigurationArgs']] = None,
31
+ validate_past_expiration_date: Optional[pulumi.Input[_builtins.bool]] = None):
31
32
  """
32
33
  The set of arguments for constructing a GroupAccessToken resource.
33
34
  :param pulumi.Input[_builtins.str] group: The ID or full path of the group.
@@ -37,6 +38,7 @@ class GroupAccessTokenArgs:
37
38
  :param pulumi.Input[_builtins.str] expires_at: When the token will expire, YYYY-MM-DD format.
38
39
  :param pulumi.Input[_builtins.str] name: The name of the group access token.
39
40
  :param pulumi.Input['GroupAccessTokenRotationConfigurationArgs'] rotation_configuration: The configuration for when to rotate a token automatically. Will not rotate a token until `pulumi up` is run.
41
+ :param pulumi.Input[_builtins.bool] validate_past_expiration_date: Wether to validate if the expiration date is in the future.
40
42
  """
41
43
  pulumi.set(__self__, "group", group)
42
44
  pulumi.set(__self__, "scopes", scopes)
@@ -50,6 +52,8 @@ class GroupAccessTokenArgs:
50
52
  pulumi.set(__self__, "name", name)
51
53
  if rotation_configuration is not None:
52
54
  pulumi.set(__self__, "rotation_configuration", rotation_configuration)
55
+ if validate_past_expiration_date is not None:
56
+ pulumi.set(__self__, "validate_past_expiration_date", validate_past_expiration_date)
53
57
 
54
58
  @_builtins.property
55
59
  @pulumi.getter
@@ -135,6 +139,18 @@ class GroupAccessTokenArgs:
135
139
  def rotation_configuration(self, value: Optional[pulumi.Input['GroupAccessTokenRotationConfigurationArgs']]):
136
140
  pulumi.set(self, "rotation_configuration", value)
137
141
 
142
+ @_builtins.property
143
+ @pulumi.getter(name="validatePastExpirationDate")
144
+ def validate_past_expiration_date(self) -> Optional[pulumi.Input[_builtins.bool]]:
145
+ """
146
+ Wether to validate if the expiration date is in the future.
147
+ """
148
+ return pulumi.get(self, "validate_past_expiration_date")
149
+
150
+ @validate_past_expiration_date.setter
151
+ def validate_past_expiration_date(self, value: Optional[pulumi.Input[_builtins.bool]]):
152
+ pulumi.set(self, "validate_past_expiration_date", value)
153
+
138
154
 
139
155
  @pulumi.input_type
140
156
  class _GroupAccessTokenState:
@@ -150,7 +166,8 @@ class _GroupAccessTokenState:
150
166
  rotation_configuration: Optional[pulumi.Input['GroupAccessTokenRotationConfigurationArgs']] = None,
151
167
  scopes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
152
168
  token: Optional[pulumi.Input[_builtins.str]] = None,
153
- user_id: Optional[pulumi.Input[_builtins.int]] = None):
169
+ user_id: Optional[pulumi.Input[_builtins.int]] = None,
170
+ validate_past_expiration_date: Optional[pulumi.Input[_builtins.bool]] = None):
154
171
  """
155
172
  Input properties used for looking up and filtering GroupAccessToken resources.
156
173
  :param pulumi.Input[_builtins.str] access_level: The access level for the group access token. Valid values are: `no one`, `minimal`, `guest`, `planner`, `reporter`, `developer`, `maintainer`, `owner`. Default is `maintainer`.
@@ -165,6 +182,7 @@ class _GroupAccessTokenState:
165
182
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] scopes: The scopes of the group access token. Valid values are: `api`, `read_api`, `read_registry`, `write_registry`, `read_virtual_registry`, `write_virtual_registry`, `read_repository`, `write_repository`, `create_runner`, `manage_runner`, `ai_features`, `k8s_proxy`, `read_observability`, `write_observability`, `self_rotate`
166
183
  :param pulumi.Input[_builtins.str] token: The token of the group access token. **Note**: the token is not available for imported resources.
167
184
  :param pulumi.Input[_builtins.int] user_id: The user_id associated to the token.
185
+ :param pulumi.Input[_builtins.bool] validate_past_expiration_date: Wether to validate if the expiration date is in the future.
168
186
  """
169
187
  if access_level is not None:
170
188
  pulumi.set(__self__, "access_level", access_level)
@@ -190,6 +208,8 @@ class _GroupAccessTokenState:
190
208
  pulumi.set(__self__, "token", token)
191
209
  if user_id is not None:
192
210
  pulumi.set(__self__, "user_id", user_id)
211
+ if validate_past_expiration_date is not None:
212
+ pulumi.set(__self__, "validate_past_expiration_date", validate_past_expiration_date)
193
213
 
194
214
  @_builtins.property
195
215
  @pulumi.getter(name="accessLevel")
@@ -335,6 +355,18 @@ class _GroupAccessTokenState:
335
355
  def user_id(self, value: Optional[pulumi.Input[_builtins.int]]):
336
356
  pulumi.set(self, "user_id", value)
337
357
 
358
+ @_builtins.property
359
+ @pulumi.getter(name="validatePastExpirationDate")
360
+ def validate_past_expiration_date(self) -> Optional[pulumi.Input[_builtins.bool]]:
361
+ """
362
+ Wether to validate if the expiration date is in the future.
363
+ """
364
+ return pulumi.get(self, "validate_past_expiration_date")
365
+
366
+ @validate_past_expiration_date.setter
367
+ def validate_past_expiration_date(self, value: Optional[pulumi.Input[_builtins.bool]]):
368
+ pulumi.set(self, "validate_past_expiration_date", value)
369
+
338
370
 
339
371
  @pulumi.type_token("gitlab:index/groupAccessToken:GroupAccessToken")
340
372
  class GroupAccessToken(pulumi.CustomResource):
@@ -349,15 +381,16 @@ class GroupAccessToken(pulumi.CustomResource):
349
381
  name: Optional[pulumi.Input[_builtins.str]] = None,
350
382
  rotation_configuration: Optional[pulumi.Input[Union['GroupAccessTokenRotationConfigurationArgs', 'GroupAccessTokenRotationConfigurationArgsDict']]] = None,
351
383
  scopes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
384
+ validate_past_expiration_date: Optional[pulumi.Input[_builtins.bool]] = None,
352
385
  __props__=None):
353
386
  """
354
387
  The `GroupAccessToken` resource allows to manage the lifecycle of a group access token.
355
388
 
356
- > Observability scopes are in beta and may not work on all instances. See more details in [the documentation](https://docs.gitlab.com/operations/tracing/)
389
+ > Observability scopes are in beta and may not work on all instances. See more details in [the documentation](https://docs.gitlab.com/development/tracing/)
357
390
 
358
391
  > Use `rotation_configuration` to automatically rotate tokens instead of using `timestamp()` as timestamp will cause changes with every plan. `pulumi up` must still be run to rotate the token.
359
392
 
360
- > Due to [Automatic reuse detection](https://docs.gitlab.com/api/group_access_tokens/#automatic-reuse-detection) it's possible that a new Group Access Token will immediately be revoked. Check if an old process using the old token is running if this happens.
393
+ > Due to [Automatic reuse detection](https://docs.gitlab.com/api/personal_access_tokens/#automatic-reuse-detection) it's possible that a new Group Access Token will immediately be revoked. Check if an old process using the old token is running if this happens.
361
394
 
362
395
  **Upstream API**: [GitLab REST API](https://docs.gitlab.com/api/group_access_tokens/)
363
396
 
@@ -412,6 +445,7 @@ class GroupAccessToken(pulumi.CustomResource):
412
445
  :param pulumi.Input[_builtins.str] name: The name of the group access token.
413
446
  :param pulumi.Input[Union['GroupAccessTokenRotationConfigurationArgs', 'GroupAccessTokenRotationConfigurationArgsDict']] rotation_configuration: The configuration for when to rotate a token automatically. Will not rotate a token until `pulumi up` is run.
414
447
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] scopes: The scopes of the group access token. Valid values are: `api`, `read_api`, `read_registry`, `write_registry`, `read_virtual_registry`, `write_virtual_registry`, `read_repository`, `write_repository`, `create_runner`, `manage_runner`, `ai_features`, `k8s_proxy`, `read_observability`, `write_observability`, `self_rotate`
448
+ :param pulumi.Input[_builtins.bool] validate_past_expiration_date: Wether to validate if the expiration date is in the future.
415
449
  """
416
450
  ...
417
451
  @overload
@@ -422,11 +456,11 @@ class GroupAccessToken(pulumi.CustomResource):
422
456
  """
423
457
  The `GroupAccessToken` resource allows to manage the lifecycle of a group access token.
424
458
 
425
- > Observability scopes are in beta and may not work on all instances. See more details in [the documentation](https://docs.gitlab.com/operations/tracing/)
459
+ > Observability scopes are in beta and may not work on all instances. See more details in [the documentation](https://docs.gitlab.com/development/tracing/)
426
460
 
427
461
  > Use `rotation_configuration` to automatically rotate tokens instead of using `timestamp()` as timestamp will cause changes with every plan. `pulumi up` must still be run to rotate the token.
428
462
 
429
- > Due to [Automatic reuse detection](https://docs.gitlab.com/api/group_access_tokens/#automatic-reuse-detection) it's possible that a new Group Access Token will immediately be revoked. Check if an old process using the old token is running if this happens.
463
+ > Due to [Automatic reuse detection](https://docs.gitlab.com/api/personal_access_tokens/#automatic-reuse-detection) it's possible that a new Group Access Token will immediately be revoked. Check if an old process using the old token is running if this happens.
430
464
 
431
465
  **Upstream API**: [GitLab REST API](https://docs.gitlab.com/api/group_access_tokens/)
432
466
 
@@ -494,6 +528,7 @@ class GroupAccessToken(pulumi.CustomResource):
494
528
  name: Optional[pulumi.Input[_builtins.str]] = None,
495
529
  rotation_configuration: Optional[pulumi.Input[Union['GroupAccessTokenRotationConfigurationArgs', 'GroupAccessTokenRotationConfigurationArgsDict']]] = None,
496
530
  scopes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
531
+ validate_past_expiration_date: Optional[pulumi.Input[_builtins.bool]] = None,
497
532
  __props__=None):
498
533
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
499
534
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -514,6 +549,7 @@ class GroupAccessToken(pulumi.CustomResource):
514
549
  if scopes is None and not opts.urn:
515
550
  raise TypeError("Missing required property 'scopes'")
516
551
  __props__.__dict__["scopes"] = scopes
552
+ __props__.__dict__["validate_past_expiration_date"] = validate_past_expiration_date
517
553
  __props__.__dict__["active"] = None
518
554
  __props__.__dict__["created_at"] = None
519
555
  __props__.__dict__["revoked"] = None
@@ -542,7 +578,8 @@ class GroupAccessToken(pulumi.CustomResource):
542
578
  rotation_configuration: Optional[pulumi.Input[Union['GroupAccessTokenRotationConfigurationArgs', 'GroupAccessTokenRotationConfigurationArgsDict']]] = None,
543
579
  scopes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
544
580
  token: Optional[pulumi.Input[_builtins.str]] = None,
545
- user_id: Optional[pulumi.Input[_builtins.int]] = None) -> 'GroupAccessToken':
581
+ user_id: Optional[pulumi.Input[_builtins.int]] = None,
582
+ validate_past_expiration_date: Optional[pulumi.Input[_builtins.bool]] = None) -> 'GroupAccessToken':
546
583
  """
547
584
  Get an existing GroupAccessToken resource's state with the given name, id, and optional extra
548
585
  properties used to qualify the lookup.
@@ -562,6 +599,7 @@ class GroupAccessToken(pulumi.CustomResource):
562
599
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] scopes: The scopes of the group access token. Valid values are: `api`, `read_api`, `read_registry`, `write_registry`, `read_virtual_registry`, `write_virtual_registry`, `read_repository`, `write_repository`, `create_runner`, `manage_runner`, `ai_features`, `k8s_proxy`, `read_observability`, `write_observability`, `self_rotate`
563
600
  :param pulumi.Input[_builtins.str] token: The token of the group access token. **Note**: the token is not available for imported resources.
564
601
  :param pulumi.Input[_builtins.int] user_id: The user_id associated to the token.
602
+ :param pulumi.Input[_builtins.bool] validate_past_expiration_date: Wether to validate if the expiration date is in the future.
565
603
  """
566
604
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
567
605
 
@@ -579,6 +617,7 @@ class GroupAccessToken(pulumi.CustomResource):
579
617
  __props__.__dict__["scopes"] = scopes
580
618
  __props__.__dict__["token"] = token
581
619
  __props__.__dict__["user_id"] = user_id
620
+ __props__.__dict__["validate_past_expiration_date"] = validate_past_expiration_date
582
621
  return GroupAccessToken(resource_name, opts=opts, __props__=__props__)
583
622
 
584
623
  @_builtins.property
@@ -677,3 +716,11 @@ class GroupAccessToken(pulumi.CustomResource):
677
716
  """
678
717
  return pulumi.get(self, "user_id")
679
718
 
719
+ @_builtins.property
720
+ @pulumi.getter(name="validatePastExpirationDate")
721
+ def validate_past_expiration_date(self) -> pulumi.Output[_builtins.bool]:
722
+ """
723
+ Wether to validate if the expiration date is in the future.
724
+ """
725
+ return pulumi.get(self, "validate_past_expiration_date")
726
+