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/_inputs.py CHANGED
@@ -43,6 +43,8 @@ __all__ = [
43
43
  'GroupPushRulesArgsDict',
44
44
  'GroupServiceAccountAccessTokenRotationConfigurationArgs',
45
45
  'GroupServiceAccountAccessTokenRotationConfigurationArgsDict',
46
+ 'GroupServiceAccountTimeoutsArgs',
47
+ 'GroupServiceAccountTimeoutsArgsDict',
46
48
  'InstanceServiceAccountTimeoutsArgs',
47
49
  'InstanceServiceAccountTimeoutsArgsDict',
48
50
  'PersonalAccessTokenRotationConfigurationArgs',
@@ -85,6 +87,8 @@ __all__ = [
85
87
  'ValueStreamAnalyticsStageArgsDict',
86
88
  'GetGroupProvisionedUsersProvisionedUserArgs',
87
89
  'GetGroupProvisionedUsersProvisionedUserArgsDict',
90
+ 'GetProjectApprovalRulesApprovalRuleArgs',
91
+ 'GetProjectApprovalRulesApprovalRuleArgsDict',
88
92
  'GetProjectProtectedBranchMergeAccessLevelArgs',
89
93
  'GetProjectProtectedBranchMergeAccessLevelArgsDict',
90
94
  'GetProjectProtectedBranchPushAccessLevelArgs',
@@ -101,6 +105,18 @@ __all__ = [
101
105
  'GetReleaseAssetsLinkArgsDict',
102
106
  'GetReleaseAssetsSourceArgs',
103
107
  'GetReleaseAssetsSourceArgsDict',
108
+ 'GetSecurityPolicyDocumentScanExecutionPolicyArgs',
109
+ 'GetSecurityPolicyDocumentScanExecutionPolicyArgsDict',
110
+ 'GetSecurityPolicyDocumentScanExecutionPolicyActionArgs',
111
+ 'GetSecurityPolicyDocumentScanExecutionPolicyActionArgsDict',
112
+ 'GetSecurityPolicyDocumentScanExecutionPolicyPolicyScopeArgs',
113
+ 'GetSecurityPolicyDocumentScanExecutionPolicyPolicyScopeArgsDict',
114
+ 'GetSecurityPolicyDocumentScanExecutionPolicyPolicyScopeProjectsArgs',
115
+ 'GetSecurityPolicyDocumentScanExecutionPolicyPolicyScopeProjectsArgsDict',
116
+ 'GetSecurityPolicyDocumentScanExecutionPolicyRuleArgs',
117
+ 'GetSecurityPolicyDocumentScanExecutionPolicyRuleArgsDict',
118
+ 'GetSecurityPolicyDocumentScanExecutionPolicySkipCiArgs',
119
+ 'GetSecurityPolicyDocumentScanExecutionPolicySkipCiArgsDict',
104
120
  ]
105
121
 
106
122
  MYPY = False
@@ -1668,6 +1684,38 @@ class GroupServiceAccountAccessTokenRotationConfigurationArgs:
1668
1684
  pulumi.set(self, "expiration_days", value)
1669
1685
 
1670
1686
 
1687
+ if not MYPY:
1688
+ class GroupServiceAccountTimeoutsArgsDict(TypedDict):
1689
+ delete: NotRequired[pulumi.Input[_builtins.str]]
1690
+ """
1691
+ How long to wait for the service account to be fully deleted. Defaults to 10 minutes.
1692
+ """
1693
+ elif False:
1694
+ GroupServiceAccountTimeoutsArgsDict: TypeAlias = Mapping[str, Any]
1695
+
1696
+ @pulumi.input_type
1697
+ class GroupServiceAccountTimeoutsArgs:
1698
+ def __init__(__self__, *,
1699
+ delete: Optional[pulumi.Input[_builtins.str]] = None):
1700
+ """
1701
+ :param pulumi.Input[_builtins.str] delete: How long to wait for the service account to be fully deleted. Defaults to 10 minutes.
1702
+ """
1703
+ if delete is not None:
1704
+ pulumi.set(__self__, "delete", delete)
1705
+
1706
+ @_builtins.property
1707
+ @pulumi.getter
1708
+ def delete(self) -> Optional[pulumi.Input[_builtins.str]]:
1709
+ """
1710
+ How long to wait for the service account to be fully deleted. Defaults to 10 minutes.
1711
+ """
1712
+ return pulumi.get(self, "delete")
1713
+
1714
+ @delete.setter
1715
+ def delete(self, value: Optional[pulumi.Input[_builtins.str]]):
1716
+ pulumi.set(self, "delete", value)
1717
+
1718
+
1671
1719
  if not MYPY:
1672
1720
  class InstanceServiceAccountTimeoutsArgsDict(TypedDict):
1673
1721
  delete: NotRequired[pulumi.Input[_builtins.str]]
@@ -4568,6 +4616,208 @@ class GetGroupProvisionedUsersProvisionedUserArgs:
4568
4616
  pulumi.set(self, "website_url", value)
4569
4617
 
4570
4618
 
4619
+ if not MYPY:
4620
+ class GetProjectApprovalRulesApprovalRuleArgsDict(TypedDict):
4621
+ applies_to_all_protected_branches: _builtins.bool
4622
+ """
4623
+ If true, applies the rule to all protected branches, ignoring the protected branches attribute.
4624
+ """
4625
+ approvals_required: _builtins.int
4626
+ """
4627
+ The number of approvals required for this rule.
4628
+ """
4629
+ eligible_approver_ids: Sequence[_builtins.int]
4630
+ """
4631
+ List of all approver IDs that are eligible to approve this rule.
4632
+ """
4633
+ group_ids: Sequence[_builtins.int]
4634
+ """
4635
+ List of group IDs that are eligible to approve this rule.
4636
+ """
4637
+ id: _builtins.int
4638
+ """
4639
+ The ID of the approval rule.
4640
+ """
4641
+ name: _builtins.str
4642
+ """
4643
+ The name of the approval rule.
4644
+ """
4645
+ protected_branch_ids: Sequence[_builtins.int]
4646
+ """
4647
+ List of protected branch IDs that this rule applies to.
4648
+ """
4649
+ report_type: _builtins.str
4650
+ """
4651
+ The report type. Required when the rule type is `report_approver`. The supported report types are `license_scanning` and `code_coverage`.
4652
+ """
4653
+ rule_type: _builtins.str
4654
+ """
4655
+ The type of the approval rule. Can be `any_approver`, `regular` or `report_approver`.
4656
+ """
4657
+ user_ids: Sequence[_builtins.int]
4658
+ """
4659
+ List of user IDs that are eligible to approve this rule.
4660
+ """
4661
+ elif False:
4662
+ GetProjectApprovalRulesApprovalRuleArgsDict: TypeAlias = Mapping[str, Any]
4663
+
4664
+ @pulumi.input_type
4665
+ class GetProjectApprovalRulesApprovalRuleArgs:
4666
+ def __init__(__self__, *,
4667
+ applies_to_all_protected_branches: _builtins.bool,
4668
+ approvals_required: _builtins.int,
4669
+ eligible_approver_ids: Sequence[_builtins.int],
4670
+ group_ids: Sequence[_builtins.int],
4671
+ id: _builtins.int,
4672
+ name: _builtins.str,
4673
+ protected_branch_ids: Sequence[_builtins.int],
4674
+ report_type: _builtins.str,
4675
+ rule_type: _builtins.str,
4676
+ user_ids: Sequence[_builtins.int]):
4677
+ """
4678
+ :param _builtins.bool applies_to_all_protected_branches: If true, applies the rule to all protected branches, ignoring the protected branches attribute.
4679
+ :param _builtins.int approvals_required: The number of approvals required for this rule.
4680
+ :param Sequence[_builtins.int] eligible_approver_ids: List of all approver IDs that are eligible to approve this rule.
4681
+ :param Sequence[_builtins.int] group_ids: List of group IDs that are eligible to approve this rule.
4682
+ :param _builtins.int id: The ID of the approval rule.
4683
+ :param _builtins.str name: The name of the approval rule.
4684
+ :param Sequence[_builtins.int] protected_branch_ids: List of protected branch IDs that this rule applies to.
4685
+ :param _builtins.str report_type: The report type. Required when the rule type is `report_approver`. The supported report types are `license_scanning` and `code_coverage`.
4686
+ :param _builtins.str rule_type: The type of the approval rule. Can be `any_approver`, `regular` or `report_approver`.
4687
+ :param Sequence[_builtins.int] user_ids: List of user IDs that are eligible to approve this rule.
4688
+ """
4689
+ pulumi.set(__self__, "applies_to_all_protected_branches", applies_to_all_protected_branches)
4690
+ pulumi.set(__self__, "approvals_required", approvals_required)
4691
+ pulumi.set(__self__, "eligible_approver_ids", eligible_approver_ids)
4692
+ pulumi.set(__self__, "group_ids", group_ids)
4693
+ pulumi.set(__self__, "id", id)
4694
+ pulumi.set(__self__, "name", name)
4695
+ pulumi.set(__self__, "protected_branch_ids", protected_branch_ids)
4696
+ pulumi.set(__self__, "report_type", report_type)
4697
+ pulumi.set(__self__, "rule_type", rule_type)
4698
+ pulumi.set(__self__, "user_ids", user_ids)
4699
+
4700
+ @_builtins.property
4701
+ @pulumi.getter(name="appliesToAllProtectedBranches")
4702
+ def applies_to_all_protected_branches(self) -> _builtins.bool:
4703
+ """
4704
+ If true, applies the rule to all protected branches, ignoring the protected branches attribute.
4705
+ """
4706
+ return pulumi.get(self, "applies_to_all_protected_branches")
4707
+
4708
+ @applies_to_all_protected_branches.setter
4709
+ def applies_to_all_protected_branches(self, value: _builtins.bool):
4710
+ pulumi.set(self, "applies_to_all_protected_branches", value)
4711
+
4712
+ @_builtins.property
4713
+ @pulumi.getter(name="approvalsRequired")
4714
+ def approvals_required(self) -> _builtins.int:
4715
+ """
4716
+ The number of approvals required for this rule.
4717
+ """
4718
+ return pulumi.get(self, "approvals_required")
4719
+
4720
+ @approvals_required.setter
4721
+ def approvals_required(self, value: _builtins.int):
4722
+ pulumi.set(self, "approvals_required", value)
4723
+
4724
+ @_builtins.property
4725
+ @pulumi.getter(name="eligibleApproverIds")
4726
+ def eligible_approver_ids(self) -> Sequence[_builtins.int]:
4727
+ """
4728
+ List of all approver IDs that are eligible to approve this rule.
4729
+ """
4730
+ return pulumi.get(self, "eligible_approver_ids")
4731
+
4732
+ @eligible_approver_ids.setter
4733
+ def eligible_approver_ids(self, value: Sequence[_builtins.int]):
4734
+ pulumi.set(self, "eligible_approver_ids", value)
4735
+
4736
+ @_builtins.property
4737
+ @pulumi.getter(name="groupIds")
4738
+ def group_ids(self) -> Sequence[_builtins.int]:
4739
+ """
4740
+ List of group IDs that are eligible to approve this rule.
4741
+ """
4742
+ return pulumi.get(self, "group_ids")
4743
+
4744
+ @group_ids.setter
4745
+ def group_ids(self, value: Sequence[_builtins.int]):
4746
+ pulumi.set(self, "group_ids", value)
4747
+
4748
+ @_builtins.property
4749
+ @pulumi.getter
4750
+ def id(self) -> _builtins.int:
4751
+ """
4752
+ The ID of the approval rule.
4753
+ """
4754
+ return pulumi.get(self, "id")
4755
+
4756
+ @id.setter
4757
+ def id(self, value: _builtins.int):
4758
+ pulumi.set(self, "id", value)
4759
+
4760
+ @_builtins.property
4761
+ @pulumi.getter
4762
+ def name(self) -> _builtins.str:
4763
+ """
4764
+ The name of the approval rule.
4765
+ """
4766
+ return pulumi.get(self, "name")
4767
+
4768
+ @name.setter
4769
+ def name(self, value: _builtins.str):
4770
+ pulumi.set(self, "name", value)
4771
+
4772
+ @_builtins.property
4773
+ @pulumi.getter(name="protectedBranchIds")
4774
+ def protected_branch_ids(self) -> Sequence[_builtins.int]:
4775
+ """
4776
+ List of protected branch IDs that this rule applies to.
4777
+ """
4778
+ return pulumi.get(self, "protected_branch_ids")
4779
+
4780
+ @protected_branch_ids.setter
4781
+ def protected_branch_ids(self, value: Sequence[_builtins.int]):
4782
+ pulumi.set(self, "protected_branch_ids", value)
4783
+
4784
+ @_builtins.property
4785
+ @pulumi.getter(name="reportType")
4786
+ def report_type(self) -> _builtins.str:
4787
+ """
4788
+ The report type. Required when the rule type is `report_approver`. The supported report types are `license_scanning` and `code_coverage`.
4789
+ """
4790
+ return pulumi.get(self, "report_type")
4791
+
4792
+ @report_type.setter
4793
+ def report_type(self, value: _builtins.str):
4794
+ pulumi.set(self, "report_type", value)
4795
+
4796
+ @_builtins.property
4797
+ @pulumi.getter(name="ruleType")
4798
+ def rule_type(self) -> _builtins.str:
4799
+ """
4800
+ The type of the approval rule. Can be `any_approver`, `regular` or `report_approver`.
4801
+ """
4802
+ return pulumi.get(self, "rule_type")
4803
+
4804
+ @rule_type.setter
4805
+ def rule_type(self, value: _builtins.str):
4806
+ pulumi.set(self, "rule_type", value)
4807
+
4808
+ @_builtins.property
4809
+ @pulumi.getter(name="userIds")
4810
+ def user_ids(self) -> Sequence[_builtins.int]:
4811
+ """
4812
+ List of user IDs that are eligible to approve this rule.
4813
+ """
4814
+ return pulumi.get(self, "user_ids")
4815
+
4816
+ @user_ids.setter
4817
+ def user_ids(self, value: Sequence[_builtins.int]):
4818
+ pulumi.set(self, "user_ids", value)
4819
+
4820
+
4571
4821
  if not MYPY:
4572
4822
  class GetProjectProtectedBranchMergeAccessLevelArgsDict(TypedDict):
4573
4823
  access_level: _builtins.str
@@ -5305,3 +5555,548 @@ class GetReleaseAssetsSourceArgs:
5305
5555
  pulumi.set(self, "url", value)
5306
5556
 
5307
5557
 
5558
+ if not MYPY:
5559
+ class GetSecurityPolicyDocumentScanExecutionPolicyArgsDict(TypedDict):
5560
+ actions: Sequence['GetSecurityPolicyDocumentScanExecutionPolicyActionArgsDict']
5561
+ """
5562
+ Actions to execute when rules match. At least one action is required.
5563
+ """
5564
+ enabled: _builtins.bool
5565
+ """
5566
+ Whether the policy is enabled.
5567
+ """
5568
+ name: _builtins.str
5569
+ """
5570
+ Name of the scan execution policy.
5571
+ """
5572
+ rules: Sequence['GetSecurityPolicyDocumentScanExecutionPolicyRuleArgsDict']
5573
+ """
5574
+ Rules that trigger the policy. At least one rule is required.
5575
+ """
5576
+ description: NotRequired[_builtins.str]
5577
+ """
5578
+ Description of the scan execution policy.
5579
+ """
5580
+ policy_scope: NotRequired['GetSecurityPolicyDocumentScanExecutionPolicyPolicyScopeArgsDict']
5581
+ """
5582
+ Scope configuration to limit which projects the policy applies to.
5583
+ """
5584
+ skip_ci: NotRequired['GetSecurityPolicyDocumentScanExecutionPolicySkipCiArgsDict']
5585
+ """
5586
+ Control whether users can use the skip-ci directive.
5587
+ """
5588
+ elif False:
5589
+ GetSecurityPolicyDocumentScanExecutionPolicyArgsDict: TypeAlias = Mapping[str, Any]
5590
+
5591
+ @pulumi.input_type
5592
+ class GetSecurityPolicyDocumentScanExecutionPolicyArgs:
5593
+ def __init__(__self__, *,
5594
+ actions: Sequence['GetSecurityPolicyDocumentScanExecutionPolicyActionArgs'],
5595
+ enabled: _builtins.bool,
5596
+ name: _builtins.str,
5597
+ rules: Sequence['GetSecurityPolicyDocumentScanExecutionPolicyRuleArgs'],
5598
+ description: Optional[_builtins.str] = None,
5599
+ policy_scope: Optional['GetSecurityPolicyDocumentScanExecutionPolicyPolicyScopeArgs'] = None,
5600
+ skip_ci: Optional['GetSecurityPolicyDocumentScanExecutionPolicySkipCiArgs'] = None):
5601
+ """
5602
+ :param Sequence['GetSecurityPolicyDocumentScanExecutionPolicyActionArgs'] actions: Actions to execute when rules match. At least one action is required.
5603
+ :param _builtins.bool enabled: Whether the policy is enabled.
5604
+ :param _builtins.str name: Name of the scan execution policy.
5605
+ :param Sequence['GetSecurityPolicyDocumentScanExecutionPolicyRuleArgs'] rules: Rules that trigger the policy. At least one rule is required.
5606
+ :param _builtins.str description: Description of the scan execution policy.
5607
+ :param 'GetSecurityPolicyDocumentScanExecutionPolicyPolicyScopeArgs' policy_scope: Scope configuration to limit which projects the policy applies to.
5608
+ :param 'GetSecurityPolicyDocumentScanExecutionPolicySkipCiArgs' skip_ci: Control whether users can use the skip-ci directive.
5609
+ """
5610
+ pulumi.set(__self__, "actions", actions)
5611
+ pulumi.set(__self__, "enabled", enabled)
5612
+ pulumi.set(__self__, "name", name)
5613
+ pulumi.set(__self__, "rules", rules)
5614
+ if description is not None:
5615
+ pulumi.set(__self__, "description", description)
5616
+ if policy_scope is not None:
5617
+ pulumi.set(__self__, "policy_scope", policy_scope)
5618
+ if skip_ci is not None:
5619
+ pulumi.set(__self__, "skip_ci", skip_ci)
5620
+
5621
+ @_builtins.property
5622
+ @pulumi.getter
5623
+ def actions(self) -> Sequence['GetSecurityPolicyDocumentScanExecutionPolicyActionArgs']:
5624
+ """
5625
+ Actions to execute when rules match. At least one action is required.
5626
+ """
5627
+ return pulumi.get(self, "actions")
5628
+
5629
+ @actions.setter
5630
+ def actions(self, value: Sequence['GetSecurityPolicyDocumentScanExecutionPolicyActionArgs']):
5631
+ pulumi.set(self, "actions", value)
5632
+
5633
+ @_builtins.property
5634
+ @pulumi.getter
5635
+ def enabled(self) -> _builtins.bool:
5636
+ """
5637
+ Whether the policy is enabled.
5638
+ """
5639
+ return pulumi.get(self, "enabled")
5640
+
5641
+ @enabled.setter
5642
+ def enabled(self, value: _builtins.bool):
5643
+ pulumi.set(self, "enabled", value)
5644
+
5645
+ @_builtins.property
5646
+ @pulumi.getter
5647
+ def name(self) -> _builtins.str:
5648
+ """
5649
+ Name of the scan execution policy.
5650
+ """
5651
+ return pulumi.get(self, "name")
5652
+
5653
+ @name.setter
5654
+ def name(self, value: _builtins.str):
5655
+ pulumi.set(self, "name", value)
5656
+
5657
+ @_builtins.property
5658
+ @pulumi.getter
5659
+ def rules(self) -> Sequence['GetSecurityPolicyDocumentScanExecutionPolicyRuleArgs']:
5660
+ """
5661
+ Rules that trigger the policy. At least one rule is required.
5662
+ """
5663
+ return pulumi.get(self, "rules")
5664
+
5665
+ @rules.setter
5666
+ def rules(self, value: Sequence['GetSecurityPolicyDocumentScanExecutionPolicyRuleArgs']):
5667
+ pulumi.set(self, "rules", value)
5668
+
5669
+ @_builtins.property
5670
+ @pulumi.getter
5671
+ def description(self) -> Optional[_builtins.str]:
5672
+ """
5673
+ Description of the scan execution policy.
5674
+ """
5675
+ return pulumi.get(self, "description")
5676
+
5677
+ @description.setter
5678
+ def description(self, value: Optional[_builtins.str]):
5679
+ pulumi.set(self, "description", value)
5680
+
5681
+ @_builtins.property
5682
+ @pulumi.getter(name="policyScope")
5683
+ def policy_scope(self) -> Optional['GetSecurityPolicyDocumentScanExecutionPolicyPolicyScopeArgs']:
5684
+ """
5685
+ Scope configuration to limit which projects the policy applies to.
5686
+ """
5687
+ return pulumi.get(self, "policy_scope")
5688
+
5689
+ @policy_scope.setter
5690
+ def policy_scope(self, value: Optional['GetSecurityPolicyDocumentScanExecutionPolicyPolicyScopeArgs']):
5691
+ pulumi.set(self, "policy_scope", value)
5692
+
5693
+ @_builtins.property
5694
+ @pulumi.getter(name="skipCi")
5695
+ def skip_ci(self) -> Optional['GetSecurityPolicyDocumentScanExecutionPolicySkipCiArgs']:
5696
+ """
5697
+ Control whether users can use the skip-ci directive.
5698
+ """
5699
+ return pulumi.get(self, "skip_ci")
5700
+
5701
+ @skip_ci.setter
5702
+ def skip_ci(self, value: Optional['GetSecurityPolicyDocumentScanExecutionPolicySkipCiArgs']):
5703
+ pulumi.set(self, "skip_ci", value)
5704
+
5705
+
5706
+ if not MYPY:
5707
+ class GetSecurityPolicyDocumentScanExecutionPolicyActionArgsDict(TypedDict):
5708
+ scan: _builtins.str
5709
+ """
5710
+ Type of scan to run. Valid values: `sast`, `secret_detection`, `container_scanning`, `dependency_scanning`, `dast`, `sast_iac`, `cluster_image_scanning`, `api_fuzzing`, `coverage_fuzzing`.
5711
+ """
5712
+ scanner_profile: NotRequired[_builtins.str]
5713
+ """
5714
+ Scanner profile to use for DAST scans.
5715
+ """
5716
+ site_profile: NotRequired[_builtins.str]
5717
+ """
5718
+ Site profile to use for DAST scans.
5719
+ """
5720
+ tags_to_excludes: NotRequired[Sequence[_builtins.str]]
5721
+ """
5722
+ Tags to exclude from the scan.
5723
+ """
5724
+ template: NotRequired[_builtins.str]
5725
+ """
5726
+ The template to use for the scan. Valid values: `default`, `latest`.
5727
+ """
5728
+ variables: NotRequired[Mapping[str, _builtins.str]]
5729
+ """
5730
+ Environment variables to pass to the scan job.
5731
+ """
5732
+ elif False:
5733
+ GetSecurityPolicyDocumentScanExecutionPolicyActionArgsDict: TypeAlias = Mapping[str, Any]
5734
+
5735
+ @pulumi.input_type
5736
+ class GetSecurityPolicyDocumentScanExecutionPolicyActionArgs:
5737
+ def __init__(__self__, *,
5738
+ scan: _builtins.str,
5739
+ scanner_profile: Optional[_builtins.str] = None,
5740
+ site_profile: Optional[_builtins.str] = None,
5741
+ tags_to_excludes: Optional[Sequence[_builtins.str]] = None,
5742
+ template: Optional[_builtins.str] = None,
5743
+ variables: Optional[Mapping[str, _builtins.str]] = None):
5744
+ """
5745
+ :param _builtins.str scan: Type of scan to run. Valid values: `sast`, `secret_detection`, `container_scanning`, `dependency_scanning`, `dast`, `sast_iac`, `cluster_image_scanning`, `api_fuzzing`, `coverage_fuzzing`.
5746
+ :param _builtins.str scanner_profile: Scanner profile to use for DAST scans.
5747
+ :param _builtins.str site_profile: Site profile to use for DAST scans.
5748
+ :param Sequence[_builtins.str] tags_to_excludes: Tags to exclude from the scan.
5749
+ :param _builtins.str template: The template to use for the scan. Valid values: `default`, `latest`.
5750
+ :param Mapping[str, _builtins.str] variables: Environment variables to pass to the scan job.
5751
+ """
5752
+ pulumi.set(__self__, "scan", scan)
5753
+ if scanner_profile is not None:
5754
+ pulumi.set(__self__, "scanner_profile", scanner_profile)
5755
+ if site_profile is not None:
5756
+ pulumi.set(__self__, "site_profile", site_profile)
5757
+ if tags_to_excludes is not None:
5758
+ pulumi.set(__self__, "tags_to_excludes", tags_to_excludes)
5759
+ if template is not None:
5760
+ pulumi.set(__self__, "template", template)
5761
+ if variables is not None:
5762
+ pulumi.set(__self__, "variables", variables)
5763
+
5764
+ @_builtins.property
5765
+ @pulumi.getter
5766
+ def scan(self) -> _builtins.str:
5767
+ """
5768
+ Type of scan to run. Valid values: `sast`, `secret_detection`, `container_scanning`, `dependency_scanning`, `dast`, `sast_iac`, `cluster_image_scanning`, `api_fuzzing`, `coverage_fuzzing`.
5769
+ """
5770
+ return pulumi.get(self, "scan")
5771
+
5772
+ @scan.setter
5773
+ def scan(self, value: _builtins.str):
5774
+ pulumi.set(self, "scan", value)
5775
+
5776
+ @_builtins.property
5777
+ @pulumi.getter(name="scannerProfile")
5778
+ def scanner_profile(self) -> Optional[_builtins.str]:
5779
+ """
5780
+ Scanner profile to use for DAST scans.
5781
+ """
5782
+ return pulumi.get(self, "scanner_profile")
5783
+
5784
+ @scanner_profile.setter
5785
+ def scanner_profile(self, value: Optional[_builtins.str]):
5786
+ pulumi.set(self, "scanner_profile", value)
5787
+
5788
+ @_builtins.property
5789
+ @pulumi.getter(name="siteProfile")
5790
+ def site_profile(self) -> Optional[_builtins.str]:
5791
+ """
5792
+ Site profile to use for DAST scans.
5793
+ """
5794
+ return pulumi.get(self, "site_profile")
5795
+
5796
+ @site_profile.setter
5797
+ def site_profile(self, value: Optional[_builtins.str]):
5798
+ pulumi.set(self, "site_profile", value)
5799
+
5800
+ @_builtins.property
5801
+ @pulumi.getter(name="tagsToExcludes")
5802
+ def tags_to_excludes(self) -> Optional[Sequence[_builtins.str]]:
5803
+ """
5804
+ Tags to exclude from the scan.
5805
+ """
5806
+ return pulumi.get(self, "tags_to_excludes")
5807
+
5808
+ @tags_to_excludes.setter
5809
+ def tags_to_excludes(self, value: Optional[Sequence[_builtins.str]]):
5810
+ pulumi.set(self, "tags_to_excludes", value)
5811
+
5812
+ @_builtins.property
5813
+ @pulumi.getter
5814
+ def template(self) -> Optional[_builtins.str]:
5815
+ """
5816
+ The template to use for the scan. Valid values: `default`, `latest`.
5817
+ """
5818
+ return pulumi.get(self, "template")
5819
+
5820
+ @template.setter
5821
+ def template(self, value: Optional[_builtins.str]):
5822
+ pulumi.set(self, "template", value)
5823
+
5824
+ @_builtins.property
5825
+ @pulumi.getter
5826
+ def variables(self) -> Optional[Mapping[str, _builtins.str]]:
5827
+ """
5828
+ Environment variables to pass to the scan job.
5829
+ """
5830
+ return pulumi.get(self, "variables")
5831
+
5832
+ @variables.setter
5833
+ def variables(self, value: Optional[Mapping[str, _builtins.str]]):
5834
+ pulumi.set(self, "variables", value)
5835
+
5836
+
5837
+ if not MYPY:
5838
+ class GetSecurityPolicyDocumentScanExecutionPolicyPolicyScopeArgsDict(TypedDict):
5839
+ compliance_frameworks: NotRequired[Sequence[_builtins.str]]
5840
+ """
5841
+ Compliance framework names to scope the policy to.
5842
+ """
5843
+ projects: NotRequired['GetSecurityPolicyDocumentScanExecutionPolicyPolicyScopeProjectsArgsDict']
5844
+ """
5845
+ Project scope configuration.
5846
+ """
5847
+ elif False:
5848
+ GetSecurityPolicyDocumentScanExecutionPolicyPolicyScopeArgsDict: TypeAlias = Mapping[str, Any]
5849
+
5850
+ @pulumi.input_type
5851
+ class GetSecurityPolicyDocumentScanExecutionPolicyPolicyScopeArgs:
5852
+ def __init__(__self__, *,
5853
+ compliance_frameworks: Optional[Sequence[_builtins.str]] = None,
5854
+ projects: Optional['GetSecurityPolicyDocumentScanExecutionPolicyPolicyScopeProjectsArgs'] = None):
5855
+ """
5856
+ :param Sequence[_builtins.str] compliance_frameworks: Compliance framework names to scope the policy to.
5857
+ :param 'GetSecurityPolicyDocumentScanExecutionPolicyPolicyScopeProjectsArgs' projects: Project scope configuration.
5858
+ """
5859
+ if compliance_frameworks is not None:
5860
+ pulumi.set(__self__, "compliance_frameworks", compliance_frameworks)
5861
+ if projects is not None:
5862
+ pulumi.set(__self__, "projects", projects)
5863
+
5864
+ @_builtins.property
5865
+ @pulumi.getter(name="complianceFrameworks")
5866
+ def compliance_frameworks(self) -> Optional[Sequence[_builtins.str]]:
5867
+ """
5868
+ Compliance framework names to scope the policy to.
5869
+ """
5870
+ return pulumi.get(self, "compliance_frameworks")
5871
+
5872
+ @compliance_frameworks.setter
5873
+ def compliance_frameworks(self, value: Optional[Sequence[_builtins.str]]):
5874
+ pulumi.set(self, "compliance_frameworks", value)
5875
+
5876
+ @_builtins.property
5877
+ @pulumi.getter
5878
+ def projects(self) -> Optional['GetSecurityPolicyDocumentScanExecutionPolicyPolicyScopeProjectsArgs']:
5879
+ """
5880
+ Project scope configuration.
5881
+ """
5882
+ return pulumi.get(self, "projects")
5883
+
5884
+ @projects.setter
5885
+ def projects(self, value: Optional['GetSecurityPolicyDocumentScanExecutionPolicyPolicyScopeProjectsArgs']):
5886
+ pulumi.set(self, "projects", value)
5887
+
5888
+
5889
+ if not MYPY:
5890
+ class GetSecurityPolicyDocumentScanExecutionPolicyPolicyScopeProjectsArgsDict(TypedDict):
5891
+ excludings: NotRequired[Sequence[_builtins.int]]
5892
+ """
5893
+ List of project IDs to exclude from this policy.
5894
+ """
5895
+ includings: NotRequired[Sequence[_builtins.int]]
5896
+ """
5897
+ List of project IDs to explicitly include in this policy.
5898
+ """
5899
+ elif False:
5900
+ GetSecurityPolicyDocumentScanExecutionPolicyPolicyScopeProjectsArgsDict: TypeAlias = Mapping[str, Any]
5901
+
5902
+ @pulumi.input_type
5903
+ class GetSecurityPolicyDocumentScanExecutionPolicyPolicyScopeProjectsArgs:
5904
+ def __init__(__self__, *,
5905
+ excludings: Optional[Sequence[_builtins.int]] = None,
5906
+ includings: Optional[Sequence[_builtins.int]] = None):
5907
+ """
5908
+ :param Sequence[_builtins.int] excludings: List of project IDs to exclude from this policy.
5909
+ :param Sequence[_builtins.int] includings: List of project IDs to explicitly include in this policy.
5910
+ """
5911
+ if excludings is not None:
5912
+ pulumi.set(__self__, "excludings", excludings)
5913
+ if includings is not None:
5914
+ pulumi.set(__self__, "includings", includings)
5915
+
5916
+ @_builtins.property
5917
+ @pulumi.getter
5918
+ def excludings(self) -> Optional[Sequence[_builtins.int]]:
5919
+ """
5920
+ List of project IDs to exclude from this policy.
5921
+ """
5922
+ return pulumi.get(self, "excludings")
5923
+
5924
+ @excludings.setter
5925
+ def excludings(self, value: Optional[Sequence[_builtins.int]]):
5926
+ pulumi.set(self, "excludings", value)
5927
+
5928
+ @_builtins.property
5929
+ @pulumi.getter
5930
+ def includings(self) -> Optional[Sequence[_builtins.int]]:
5931
+ """
5932
+ List of project IDs to explicitly include in this policy.
5933
+ """
5934
+ return pulumi.get(self, "includings")
5935
+
5936
+ @includings.setter
5937
+ def includings(self, value: Optional[Sequence[_builtins.int]]):
5938
+ pulumi.set(self, "includings", value)
5939
+
5940
+
5941
+ if not MYPY:
5942
+ class GetSecurityPolicyDocumentScanExecutionPolicyRuleArgsDict(TypedDict):
5943
+ type: _builtins.str
5944
+ """
5945
+ Type of rule. Valid values: `pipeline`, `schedule`, `agent`.
5946
+ """
5947
+ agents: NotRequired[Mapping[str, _builtins.str]]
5948
+ """
5949
+ Kubernetes agents configuration for agent-based policies.
5950
+ """
5951
+ branch_exceptions: NotRequired[Sequence[_builtins.str]]
5952
+ """
5953
+ Branches to exclude from the policy.
5954
+ """
5955
+ branch_type: NotRequired[_builtins.str]
5956
+ """
5957
+ Type of branches to match. Valid values: `all`, `protected`, `default`.
5958
+ """
5959
+ branches: NotRequired[Sequence[_builtins.str]]
5960
+ """
5961
+ Branch names or patterns to match.
5962
+ """
5963
+ cadence: NotRequired[_builtins.str]
5964
+ """
5965
+ Cron expression for schedule type rules (e.g., `*/15 * * * *` for every 15 minutes).
5966
+ """
5967
+ elif False:
5968
+ GetSecurityPolicyDocumentScanExecutionPolicyRuleArgsDict: TypeAlias = Mapping[str, Any]
5969
+
5970
+ @pulumi.input_type
5971
+ class GetSecurityPolicyDocumentScanExecutionPolicyRuleArgs:
5972
+ def __init__(__self__, *,
5973
+ type: _builtins.str,
5974
+ agents: Optional[Mapping[str, _builtins.str]] = None,
5975
+ branch_exceptions: Optional[Sequence[_builtins.str]] = None,
5976
+ branch_type: Optional[_builtins.str] = None,
5977
+ branches: Optional[Sequence[_builtins.str]] = None,
5978
+ cadence: Optional[_builtins.str] = None):
5979
+ """
5980
+ :param _builtins.str type: Type of rule. Valid values: `pipeline`, `schedule`, `agent`.
5981
+ :param Mapping[str, _builtins.str] agents: Kubernetes agents configuration for agent-based policies.
5982
+ :param Sequence[_builtins.str] branch_exceptions: Branches to exclude from the policy.
5983
+ :param _builtins.str branch_type: Type of branches to match. Valid values: `all`, `protected`, `default`.
5984
+ :param Sequence[_builtins.str] branches: Branch names or patterns to match.
5985
+ :param _builtins.str cadence: Cron expression for schedule type rules (e.g., `*/15 * * * *` for every 15 minutes).
5986
+ """
5987
+ pulumi.set(__self__, "type", type)
5988
+ if agents is not None:
5989
+ pulumi.set(__self__, "agents", agents)
5990
+ if branch_exceptions is not None:
5991
+ pulumi.set(__self__, "branch_exceptions", branch_exceptions)
5992
+ if branch_type is not None:
5993
+ pulumi.set(__self__, "branch_type", branch_type)
5994
+ if branches is not None:
5995
+ pulumi.set(__self__, "branches", branches)
5996
+ if cadence is not None:
5997
+ pulumi.set(__self__, "cadence", cadence)
5998
+
5999
+ @_builtins.property
6000
+ @pulumi.getter
6001
+ def type(self) -> _builtins.str:
6002
+ """
6003
+ Type of rule. Valid values: `pipeline`, `schedule`, `agent`.
6004
+ """
6005
+ return pulumi.get(self, "type")
6006
+
6007
+ @type.setter
6008
+ def type(self, value: _builtins.str):
6009
+ pulumi.set(self, "type", value)
6010
+
6011
+ @_builtins.property
6012
+ @pulumi.getter
6013
+ def agents(self) -> Optional[Mapping[str, _builtins.str]]:
6014
+ """
6015
+ Kubernetes agents configuration for agent-based policies.
6016
+ """
6017
+ return pulumi.get(self, "agents")
6018
+
6019
+ @agents.setter
6020
+ def agents(self, value: Optional[Mapping[str, _builtins.str]]):
6021
+ pulumi.set(self, "agents", value)
6022
+
6023
+ @_builtins.property
6024
+ @pulumi.getter(name="branchExceptions")
6025
+ def branch_exceptions(self) -> Optional[Sequence[_builtins.str]]:
6026
+ """
6027
+ Branches to exclude from the policy.
6028
+ """
6029
+ return pulumi.get(self, "branch_exceptions")
6030
+
6031
+ @branch_exceptions.setter
6032
+ def branch_exceptions(self, value: Optional[Sequence[_builtins.str]]):
6033
+ pulumi.set(self, "branch_exceptions", value)
6034
+
6035
+ @_builtins.property
6036
+ @pulumi.getter(name="branchType")
6037
+ def branch_type(self) -> Optional[_builtins.str]:
6038
+ """
6039
+ Type of branches to match. Valid values: `all`, `protected`, `default`.
6040
+ """
6041
+ return pulumi.get(self, "branch_type")
6042
+
6043
+ @branch_type.setter
6044
+ def branch_type(self, value: Optional[_builtins.str]):
6045
+ pulumi.set(self, "branch_type", value)
6046
+
6047
+ @_builtins.property
6048
+ @pulumi.getter
6049
+ def branches(self) -> Optional[Sequence[_builtins.str]]:
6050
+ """
6051
+ Branch names or patterns to match.
6052
+ """
6053
+ return pulumi.get(self, "branches")
6054
+
6055
+ @branches.setter
6056
+ def branches(self, value: Optional[Sequence[_builtins.str]]):
6057
+ pulumi.set(self, "branches", value)
6058
+
6059
+ @_builtins.property
6060
+ @pulumi.getter
6061
+ def cadence(self) -> Optional[_builtins.str]:
6062
+ """
6063
+ Cron expression for schedule type rules (e.g., `*/15 * * * *` for every 15 minutes).
6064
+ """
6065
+ return pulumi.get(self, "cadence")
6066
+
6067
+ @cadence.setter
6068
+ def cadence(self, value: Optional[_builtins.str]):
6069
+ pulumi.set(self, "cadence", value)
6070
+
6071
+
6072
+ if not MYPY:
6073
+ class GetSecurityPolicyDocumentScanExecutionPolicySkipCiArgsDict(TypedDict):
6074
+ allowed: _builtins.bool
6075
+ """
6076
+ Allow (true) or prevent (false) the use of skip-ci directive.
6077
+ """
6078
+ elif False:
6079
+ GetSecurityPolicyDocumentScanExecutionPolicySkipCiArgsDict: TypeAlias = Mapping[str, Any]
6080
+
6081
+ @pulumi.input_type
6082
+ class GetSecurityPolicyDocumentScanExecutionPolicySkipCiArgs:
6083
+ def __init__(__self__, *,
6084
+ allowed: _builtins.bool):
6085
+ """
6086
+ :param _builtins.bool allowed: Allow (true) or prevent (false) the use of skip-ci directive.
6087
+ """
6088
+ pulumi.set(__self__, "allowed", allowed)
6089
+
6090
+ @_builtins.property
6091
+ @pulumi.getter
6092
+ def allowed(self) -> _builtins.bool:
6093
+ """
6094
+ Allow (true) or prevent (false) the use of skip-ci directive.
6095
+ """
6096
+ return pulumi.get(self, "allowed")
6097
+
6098
+ @allowed.setter
6099
+ def allowed(self, value: _builtins.bool):
6100
+ pulumi.set(self, "allowed", value)
6101
+
6102
+