diff --git a/provider/cmd/pulumi-resource-gitlab/bridge-metadata.json b/provider/cmd/pulumi-resource-gitlab/bridge-metadata.json index 8d356be1..36b1ac35 100644 --- a/provider/cmd/pulumi-resource-gitlab/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-gitlab/bridge-metadata.json @@ -112,6 +112,10 @@ } } }, + "gitlab_global_level_notifications": { + "current": "gitlab:index/globalLevelNotifications:GlobalLevelNotifications", + "majorVersion": 6 + }, "gitlab_group": { "current": "gitlab:index/group:Group", "majorVersion": 6, @@ -593,7 +597,12 @@ }, "gitlab_group": { "current": "gitlab:index/getGroup:getGroup", - "majorVersion": 6 + "majorVersion": 6, + "fields": { + "shared_with_groups": { + "maxItemsOne": false + } + } }, "gitlab_group_hook": { "current": "gitlab:index/getGroupHook:getGroupHook", @@ -694,6 +703,9 @@ "push_rules": { "maxItemsOne": false }, + "shared_with_groups": { + "maxItemsOne": false + }, "topics": { "maxItemsOne": false } @@ -1010,6 +1022,7 @@ "gitlab:index/deployKey:DeployKey": 0, "gitlab:index/deployKeyEnable:DeployKeyEnable": 0, "gitlab:index/deployToken:DeployToken": 0, + "gitlab:index/globalLevelNotifications:GlobalLevelNotifications": 1, "gitlab:index/group:Group": 0, "gitlab:index/groupAccessToken:GroupAccessToken": 0, "gitlab:index/groupBadge:GroupBadge": 0, @@ -1142,6 +1155,7 @@ "gitlab:index/deployKey:DeployKey": "gitlab_deploy_key", "gitlab:index/deployKeyEnable:DeployKeyEnable": "gitlab_deploy_key_enable", "gitlab:index/deployToken:DeployToken": "gitlab_deploy_token", + "gitlab:index/globalLevelNotifications:GlobalLevelNotifications": "gitlab_global_level_notifications", "gitlab:index/group:Group": "gitlab_group", "gitlab:index/groupAccessToken:GroupAccessToken": "gitlab_group_access_token", "gitlab:index/groupBadge:GroupBadge": "gitlab_group_badge", @@ -1426,8 +1440,6 @@ "defaultProjectVisibility": "default_project_visibility", "defaultProjectsLimit": "default_projects_limit", "defaultSnippetVisibility": "default_snippet_visibility", - "delayedGroupDeletion": "delayed_group_deletion", - "delayedProjectDeletion": "delayed_project_deletion", "deleteInactiveProjects": "delete_inactive_projects", "deletionAdjournedPeriod": "deletion_adjourned_period", "diffMaxFiles": "diff_max_files", @@ -1503,6 +1515,7 @@ "housekeepingFullRepackPeriod": "housekeeping_full_repack_period", "housekeepingGcPeriod": "housekeeping_gc_period", "housekeepingIncrementalRepackPeriod": "housekeeping_incremental_repack_period", + "housekeepingOptimizeRepositoryPeriod": "housekeeping_optimize_repository_period", "htmlEmailsEnabled": "html_emails_enabled", "importSources": "import_sources", "inProductMarketingEmailsEnabled": "in_product_marketing_emails_enabled", @@ -1733,6 +1746,7 @@ "runnersToken": "runners_token", "sharedRunnersMinutesLimit": "shared_runners_minutes_limit", "sharedRunnersSetting": "shared_runners_setting", + "sharedWithGroups": "shared_with_groups", "visibilityLevel": "visibility_level", "webUrl": "web_url", "wikiAccessLevel": "wiki_access_level" @@ -1786,6 +1800,13 @@ "expiresAt": "expires_at", "webUrl": "web_url" }, + "gitlab:index/getGroupSharedWithGroup:getGroupSharedWithGroup": { + "expiresAt": "expires_at", + "groupAccessLevel": "group_access_level", + "groupFullPath": "group_full_path", + "groupId": "group_id", + "groupName": "group_name" + }, "gitlab:index/getGroupSubgroups:getGroupSubgroups": { "allAvailable": "all_available", "groupId": "group_id", @@ -1919,6 +1940,7 @@ "restrictUserDefinedVariables": "restrict_user_defined_variables", "runnersToken": "runners_token", "securityAndComplianceAccessLevel": "security_and_compliance_access_level", + "sharedWithGroups": "shared_with_groups", "snippetsAccessLevel": "snippets_access_level", "snippetsEnabled": "snippets_enabled", "squashCommitTemplate": "squash_commit_template", @@ -2156,6 +2178,12 @@ "preventSecrets": "prevent_secrets", "rejectUnsignedCommits": "reject_unsigned_commits" }, + "gitlab:index/getProjectSharedWithGroup:getProjectSharedWithGroup": { + "groupAccessLevel": "group_access_level", + "groupFullPath": "group_full_path", + "groupId": "group_id", + "groupName": "group_name" + }, "gitlab:index/getProjectTag:getProjectTag": { "commits": "commit", "releases": "release" @@ -2371,6 +2399,7 @@ "currentSignInAt": "current_sign_in_at", "externUid": "extern_uid", "isAdmin": "is_admin", + "isBot": "is_bot", "lastSignInAt": "last_sign_in_at", "namespaceId": "namespace_id", "projectsLimit": "projects_limit", @@ -2405,6 +2434,7 @@ "currentSignInAt": "current_sign_in_at", "externUid": "extern_uid", "isAdmin": "is_admin", + "isBot": "is_bot", "lastSignInAt": "last_sign_in_at", "namespaceId": "namespace_id", "projectsLimit": "projects_limit", @@ -2412,6 +2442,25 @@ "twoFactorEnabled": "two_factor_enabled", "websiteUrl": "website_url" }, + "gitlab:index/globalLevelNotifications:GlobalLevelNotifications": { + "closeIssue": "close_issue", + "closeMergeRequest": "close_merge_request", + "failedPipeline": "failed_pipeline", + "fixedPipeline": "fixed_pipeline", + "issueDue": "issue_due", + "mergeMergeRequest": "merge_merge_request", + "mergeWhenPipelineSucceeds": "merge_when_pipeline_succeeds", + "movedProject": "moved_project", + "newIssue": "new_issue", + "newMergeRequest": "new_merge_request", + "newNote": "new_note", + "pushToMergeRequest": "push_to_merge_request", + "reassignIssue": "reassign_issue", + "reassignMergeRequest": "reassign_merge_request", + "reopenIssue": "reopen_issue", + "reopenMergeRequest": "reopen_merge_request", + "successPipeline": "success_pipeline" + }, "gitlab:index/group:Group": { "autoDevopsEnabled": "auto_devops_enabled", "avatarHash": "avatar_hash", diff --git a/provider/cmd/pulumi-resource-gitlab/schema.json b/provider/cmd/pulumi-resource-gitlab/schema.json index fc5b367a..60d8c56d 100644 --- a/provider/cmd/pulumi-resource-gitlab/schema.json +++ b/provider/cmd/pulumi-resource-gitlab/schema.json @@ -982,6 +982,38 @@ } } }, + "gitlab:index/getGroupSharedWithGroup:getGroupSharedWithGroup": { + "properties": { + "expiresAt": { + "type": "string" + }, + "groupAccessLevel": { + "type": "integer" + }, + "groupFullPath": { + "type": "string" + }, + "groupId": { + "type": "integer" + }, + "groupName": { + "type": "string" + } + }, + "type": "object", + "required": [ + "expiresAt", + "groupAccessLevel", + "groupFullPath", + "groupId", + "groupName" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "gitlab:index/getGroupSubgroupsSubgroup:getGroupSubgroupsSubgroup": { "properties": { "autoDevopsEnabled": { @@ -2164,6 +2196,34 @@ } } }, + "gitlab:index/getProjectSharedWithGroup:getProjectSharedWithGroup": { + "properties": { + "groupAccessLevel": { + "type": "integer" + }, + "groupFullPath": { + "type": "string" + }, + "groupId": { + "type": "integer" + }, + "groupName": { + "type": "string" + } + }, + "type": "object", + "required": [ + "groupAccessLevel", + "groupFullPath", + "groupId", + "groupName" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "gitlab:index/getProjectTagCommit:getProjectTagCommit": { "properties": { "authorEmail": { @@ -3198,6 +3258,9 @@ "isAdmin": { "type": "boolean" }, + "isBot": { + "type": "boolean" + }, "lastSignInAt": { "type": "string" }, @@ -3258,6 +3321,7 @@ "external", "id", "isAdmin", + "isBot", "lastSignInAt", "linkedin", "location", @@ -3603,21 +3667,13 @@ "type": "string", "description": "What visibility level new snippets receive. Can take private, internal and public as a parameter.\n" }, - "delayedGroupDeletion": { - "type": "boolean", - "description": "Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false.\n" - }, - "delayedProjectDeletion": { - "type": "boolean", - "description": "Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true.\n" - }, "deleteInactiveProjects": { "type": "boolean", "description": "Enable inactive project deletion feature. Introduced in GitLab 14.10. Became operational in GitLab 15.0 (with feature flag inactive*projects*deletion).\n" }, "deletionAdjournedPeriod": { "type": "integer", - "description": "The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0.\n" + "description": "The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90.\n" }, "diffMaxFiles": { "type": "integer", @@ -3925,17 +3981,24 @@ }, "housekeepingEnabled": { "type": "boolean", - "description": "(If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping.\n" + "description": "Enable or disable Git housekeeping.\n\t\t\tIf enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period.\n\t\t\tOptions housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead.\n" }, "housekeepingFullRepackPeriod": { "type": "integer", - "description": "Number of Git pushes after which an incremental git repack is run.\n" + "description": "Number of Git pushes after which an incremental git repack is run.\n", + "deprecationMessage": "housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead." }, "housekeepingGcPeriod": { "type": "integer", - "description": "Number of Git pushes after which git gc is run.\n" + "description": "Number of Git pushes after which git gc is run.\n", + "deprecationMessage": "housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead." }, "housekeepingIncrementalRepackPeriod": { + "type": "integer", + "description": "Number of Git pushes after which an incremental git repack is run.\n", + "deprecationMessage": "housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead." + }, + "housekeepingOptimizeRepositoryPeriod": { "type": "integer", "description": "Number of Git pushes after which an incremental git repack is run.\n" }, @@ -4511,8 +4574,6 @@ "defaultProjectVisibility", "defaultProjectsLimit", "defaultSnippetVisibility", - "delayedGroupDeletion", - "delayedProjectDeletion", "deleteInactiveProjects", "deletionAdjournedPeriod", "diffMaxFiles", @@ -4588,6 +4649,7 @@ "housekeepingFullRepackPeriod", "housekeepingGcPeriod", "housekeepingIncrementalRepackPeriod", + "housekeepingOptimizeRepositoryPeriod", "htmlEmailsEnabled", "importSources", "inProductMarketingEmailsEnabled", @@ -4871,21 +4933,13 @@ "type": "string", "description": "What visibility level new snippets receive. Can take private, internal and public as a parameter.\n" }, - "delayedGroupDeletion": { - "type": "boolean", - "description": "Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false.\n" - }, - "delayedProjectDeletion": { - "type": "boolean", - "description": "Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true.\n" - }, "deleteInactiveProjects": { "type": "boolean", "description": "Enable inactive project deletion feature. Introduced in GitLab 14.10. Became operational in GitLab 15.0 (with feature flag inactive*projects*deletion).\n" }, "deletionAdjournedPeriod": { "type": "integer", - "description": "The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0.\n" + "description": "The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90.\n" }, "diffMaxFiles": { "type": "integer", @@ -5193,17 +5247,24 @@ }, "housekeepingEnabled": { "type": "boolean", - "description": "(If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping.\n" + "description": "Enable or disable Git housekeeping.\n\t\t\tIf enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period.\n\t\t\tOptions housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead.\n" }, "housekeepingFullRepackPeriod": { "type": "integer", - "description": "Number of Git pushes after which an incremental git repack is run.\n" + "description": "Number of Git pushes after which an incremental git repack is run.\n", + "deprecationMessage": "housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead." }, "housekeepingGcPeriod": { "type": "integer", - "description": "Number of Git pushes after which git gc is run.\n" + "description": "Number of Git pushes after which git gc is run.\n", + "deprecationMessage": "housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead." }, "housekeepingIncrementalRepackPeriod": { + "type": "integer", + "description": "Number of Git pushes after which an incremental git repack is run.\n", + "deprecationMessage": "housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead." + }, + "housekeepingOptimizeRepositoryPeriod": { "type": "integer", "description": "Number of Git pushes after which an incremental git repack is run.\n" }, @@ -5897,21 +5958,13 @@ "type": "string", "description": "What visibility level new snippets receive. Can take private, internal and public as a parameter.\n" }, - "delayedGroupDeletion": { - "type": "boolean", - "description": "Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false.\n" - }, - "delayedProjectDeletion": { - "type": "boolean", - "description": "Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true.\n" - }, "deleteInactiveProjects": { "type": "boolean", "description": "Enable inactive project deletion feature. Introduced in GitLab 14.10. Became operational in GitLab 15.0 (with feature flag inactive*projects*deletion).\n" }, "deletionAdjournedPeriod": { "type": "integer", - "description": "The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0.\n" + "description": "The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90.\n" }, "diffMaxFiles": { "type": "integer", @@ -6219,17 +6272,24 @@ }, "housekeepingEnabled": { "type": "boolean", - "description": "(If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping.\n" + "description": "Enable or disable Git housekeeping.\n\t\t\tIf enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period.\n\t\t\tOptions housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead.\n" }, "housekeepingFullRepackPeriod": { "type": "integer", - "description": "Number of Git pushes after which an incremental git repack is run.\n" + "description": "Number of Git pushes after which an incremental git repack is run.\n", + "deprecationMessage": "housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead." }, "housekeepingGcPeriod": { "type": "integer", - "description": "Number of Git pushes after which git gc is run.\n" + "description": "Number of Git pushes after which git gc is run.\n", + "deprecationMessage": "housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead." }, "housekeepingIncrementalRepackPeriod": { + "type": "integer", + "description": "Number of Git pushes after which an incremental git repack is run.\n", + "deprecationMessage": "housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead." + }, + "housekeepingOptimizeRepositoryPeriod": { "type": "integer", "description": "Number of Git pushes after which an incremental git repack is run.\n" }, @@ -7718,6 +7778,255 @@ "type": "object" } }, + "gitlab:index/globalLevelNotifications:GlobalLevelNotifications": { + "description": "The `gitlab.GlobalLevelNotifications` resource allows to manage global notifications.\n\t\t\n**Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/ee/api/notification_settings.html#group--project-level-notification-settings)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gitlab from \"@pulumi/gitlab\";\n\n// Create Custom global level notification\nconst foo = new gitlab.GlobalLevelNotifications(\"foo\", {\n level: \"custom\",\n newMergeRequest: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_gitlab as gitlab\n\n# Create Custom global level notification\nfoo = gitlab.GlobalLevelNotifications(\"foo\",\n level=\"custom\",\n new_merge_request=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing GitLab = Pulumi.GitLab;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Create Custom global level notification\n var foo = new GitLab.GlobalLevelNotifications(\"foo\", new()\n {\n Level = \"custom\",\n NewMergeRequest = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gitlab/sdk/v6/go/gitlab\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gitlab.NewGlobalLevelNotifications(ctx, \"foo\", \u0026gitlab.GlobalLevelNotificationsArgs{\n\t\t\tLevel: pulumi.String(\"custom\"),\n\t\t\tNewMergeRequest: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gitlab.GlobalLevelNotifications;\nimport com.pulumi.gitlab.GlobalLevelNotificationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var foo = new GlobalLevelNotifications(\"foo\", GlobalLevelNotificationsArgs.builder() \n .level(\"custom\")\n .newMergeRequest(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Create Custom global level notification\n foo:\n type: gitlab:GlobalLevelNotifications\n properties:\n level: custom\n newMergeRequest: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nNoteYou can import a global notification state using \"gitlab\" as the ID. The ID will always be gitlab, because the global notificatio only exists once per user\n\n```sh\n $ pulumi import gitlab:index/globalLevelNotifications:GlobalLevelNotifications example gitlab\n```\n\n ", + "properties": { + "closeIssue": { + "type": "boolean", + "description": "Enable notifications for closed issues. Can only be used when `level` is `custom`.\n" + }, + "closeMergeRequest": { + "type": "boolean", + "description": "Enable notifications for closed merge requests. Can only be used when `level` is `custom`.\n" + }, + "failedPipeline": { + "type": "boolean", + "description": "Enable notifications for failed pipelines. Can only be used when `level` is `custom`.\n" + }, + "fixedPipeline": { + "type": "boolean", + "description": "Enable notifications for fixed pipelines. Can only be used when `level` is `custom`.\n" + }, + "issueDue": { + "type": "boolean", + "description": "Enable notifications for due issues. Can only be used when `level` is `custom`.\n" + }, + "level": { + "type": "string", + "description": "The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`.\n" + }, + "mergeMergeRequest": { + "type": "boolean", + "description": "Enable notifications for merged merge requests. Can only be used when `level` is `custom`.\n" + }, + "mergeWhenPipelineSucceeds": { + "type": "boolean", + "description": "Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`.\n" + }, + "movedProject": { + "type": "boolean", + "description": "Enable notifications for moved projects. Can only be used when `level` is `custom`.\n" + }, + "newIssue": { + "type": "boolean", + "description": "Enable notifications for new issues. Can only be used when `level` is `custom`.\n" + }, + "newMergeRequest": { + "type": "boolean", + "description": "Enable notifications for new merge requests. Can only be used when `level` is `custom`.\n" + }, + "newNote": { + "type": "boolean", + "description": "Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`.\n" + }, + "pushToMergeRequest": { + "type": "boolean", + "description": "Enable notifications for push to merge request branches. Can only be used when `level` is `custom`.\n" + }, + "reassignIssue": { + "type": "boolean", + "description": "Enable notifications for issue reassignments. Can only be used when `level` is `custom`.\n" + }, + "reassignMergeRequest": { + "type": "boolean", + "description": "Enable notifications for merge request reassignments. Can only be used when `level` is `custom`.\n" + }, + "reopenIssue": { + "type": "boolean", + "description": "Enable notifications for reopened issues. Can only be used when `level` is `custom`.\n" + }, + "reopenMergeRequest": { + "type": "boolean", + "description": "Enable notifications for reopened merge requests. Can only be used when `level` is `custom`.\n" + }, + "successPipeline": { + "type": "boolean", + "description": "Enable notifications for successful pipelines. Can only be used when `level` is `custom`.\n" + } + }, + "required": [ + "closeIssue", + "closeMergeRequest", + "failedPipeline", + "fixedPipeline", + "issueDue", + "level", + "mergeMergeRequest", + "mergeWhenPipelineSucceeds", + "movedProject", + "newIssue", + "newMergeRequest", + "newNote", + "pushToMergeRequest", + "reassignIssue", + "reassignMergeRequest", + "reopenIssue", + "reopenMergeRequest", + "successPipeline" + ], + "inputProperties": { + "closeIssue": { + "type": "boolean", + "description": "Enable notifications for closed issues. Can only be used when `level` is `custom`.\n" + }, + "closeMergeRequest": { + "type": "boolean", + "description": "Enable notifications for closed merge requests. Can only be used when `level` is `custom`.\n" + }, + "failedPipeline": { + "type": "boolean", + "description": "Enable notifications for failed pipelines. Can only be used when `level` is `custom`.\n" + }, + "fixedPipeline": { + "type": "boolean", + "description": "Enable notifications for fixed pipelines. Can only be used when `level` is `custom`.\n" + }, + "issueDue": { + "type": "boolean", + "description": "Enable notifications for due issues. Can only be used when `level` is `custom`.\n" + }, + "level": { + "type": "string", + "description": "The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`.\n" + }, + "mergeMergeRequest": { + "type": "boolean", + "description": "Enable notifications for merged merge requests. Can only be used when `level` is `custom`.\n" + }, + "mergeWhenPipelineSucceeds": { + "type": "boolean", + "description": "Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`.\n" + }, + "movedProject": { + "type": "boolean", + "description": "Enable notifications for moved projects. Can only be used when `level` is `custom`.\n" + }, + "newIssue": { + "type": "boolean", + "description": "Enable notifications for new issues. Can only be used when `level` is `custom`.\n" + }, + "newMergeRequest": { + "type": "boolean", + "description": "Enable notifications for new merge requests. Can only be used when `level` is `custom`.\n" + }, + "newNote": { + "type": "boolean", + "description": "Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`.\n" + }, + "pushToMergeRequest": { + "type": "boolean", + "description": "Enable notifications for push to merge request branches. Can only be used when `level` is `custom`.\n" + }, + "reassignIssue": { + "type": "boolean", + "description": "Enable notifications for issue reassignments. Can only be used when `level` is `custom`.\n" + }, + "reassignMergeRequest": { + "type": "boolean", + "description": "Enable notifications for merge request reassignments. Can only be used when `level` is `custom`.\n" + }, + "reopenIssue": { + "type": "boolean", + "description": "Enable notifications for reopened issues. Can only be used when `level` is `custom`.\n" + }, + "reopenMergeRequest": { + "type": "boolean", + "description": "Enable notifications for reopened merge requests. Can only be used when `level` is `custom`.\n" + }, + "successPipeline": { + "type": "boolean", + "description": "Enable notifications for successful pipelines. Can only be used when `level` is `custom`.\n" + } + }, + "stateInputs": { + "description": "Input properties used for looking up and filtering GlobalLevelNotifications resources.\n", + "properties": { + "closeIssue": { + "type": "boolean", + "description": "Enable notifications for closed issues. Can only be used when `level` is `custom`.\n" + }, + "closeMergeRequest": { + "type": "boolean", + "description": "Enable notifications for closed merge requests. Can only be used when `level` is `custom`.\n" + }, + "failedPipeline": { + "type": "boolean", + "description": "Enable notifications for failed pipelines. Can only be used when `level` is `custom`.\n" + }, + "fixedPipeline": { + "type": "boolean", + "description": "Enable notifications for fixed pipelines. Can only be used when `level` is `custom`.\n" + }, + "issueDue": { + "type": "boolean", + "description": "Enable notifications for due issues. Can only be used when `level` is `custom`.\n" + }, + "level": { + "type": "string", + "description": "The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`.\n" + }, + "mergeMergeRequest": { + "type": "boolean", + "description": "Enable notifications for merged merge requests. Can only be used when `level` is `custom`.\n" + }, + "mergeWhenPipelineSucceeds": { + "type": "boolean", + "description": "Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`.\n" + }, + "movedProject": { + "type": "boolean", + "description": "Enable notifications for moved projects. Can only be used when `level` is `custom`.\n" + }, + "newIssue": { + "type": "boolean", + "description": "Enable notifications for new issues. Can only be used when `level` is `custom`.\n" + }, + "newMergeRequest": { + "type": "boolean", + "description": "Enable notifications for new merge requests. Can only be used when `level` is `custom`.\n" + }, + "newNote": { + "type": "boolean", + "description": "Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`.\n" + }, + "pushToMergeRequest": { + "type": "boolean", + "description": "Enable notifications for push to merge request branches. Can only be used when `level` is `custom`.\n" + }, + "reassignIssue": { + "type": "boolean", + "description": "Enable notifications for issue reassignments. Can only be used when `level` is `custom`.\n" + }, + "reassignMergeRequest": { + "type": "boolean", + "description": "Enable notifications for merge request reassignments. Can only be used when `level` is `custom`.\n" + }, + "reopenIssue": { + "type": "boolean", + "description": "Enable notifications for reopened issues. Can only be used when `level` is `custom`.\n" + }, + "reopenMergeRequest": { + "type": "boolean", + "description": "Enable notifications for reopened merge requests. Can only be used when `level` is `custom`.\n" + }, + "successPipeline": { + "type": "boolean", + "description": "Enable notifications for successful pipelines. Can only be used when `level` is `custom`.\n" + } + }, + "type": "object" + } + }, "gitlab:index/group:Group": { "description": "The `gitlab.Group` resource allows to manage the lifecycle of a group.\n\n\u003e On GitLab SaaS, you must use the GitLab UI to create groups without a parent group. You cannot use this provider nor the API to do this.\n\n**Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/ee/api/groups.html)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gitlab from \"@pulumi/gitlab\";\n\nconst exampleGroup = new gitlab.Group(\"exampleGroup\", {\n path: \"example\",\n description: \"An example group\",\n});\n// Create a project in the example group\nconst exampleProject = new gitlab.Project(\"exampleProject\", {\n description: \"An example project\",\n namespaceId: exampleGroup.id,\n});\n// Group with custom push rules\nconst example_two = new gitlab.Group(\"example-two\", {\n path: \"example-two\",\n description: \"An example group with push rules\",\n pushRules: {\n authorEmailRegex: \"@example\\\\.com$\",\n commitCommitterCheck: true,\n memberCheck: true,\n preventSecrets: true,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gitlab as gitlab\n\nexample_group = gitlab.Group(\"exampleGroup\",\n path=\"example\",\n description=\"An example group\")\n# Create a project in the example group\nexample_project = gitlab.Project(\"exampleProject\",\n description=\"An example project\",\n namespace_id=example_group.id)\n# Group with custom push rules\nexample_two = gitlab.Group(\"example-two\",\n path=\"example-two\",\n description=\"An example group with push rules\",\n push_rules=gitlab.GroupPushRulesArgs(\n author_email_regex=\"@example\\\\.com$\",\n commit_committer_check=True,\n member_check=True,\n prevent_secrets=True,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing GitLab = Pulumi.GitLab;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleGroup = new GitLab.Group(\"exampleGroup\", new()\n {\n Path = \"example\",\n Description = \"An example group\",\n });\n\n // Create a project in the example group\n var exampleProject = new GitLab.Project(\"exampleProject\", new()\n {\n Description = \"An example project\",\n NamespaceId = exampleGroup.Id,\n });\n\n // Group with custom push rules\n var example_two = new GitLab.Group(\"example-two\", new()\n {\n Path = \"example-two\",\n Description = \"An example group with push rules\",\n PushRules = new GitLab.Inputs.GroupPushRulesArgs\n {\n AuthorEmailRegex = \"@example\\\\.com$\",\n CommitCommitterCheck = true,\n MemberCheck = true,\n PreventSecrets = true,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gitlab/sdk/v6/go/gitlab\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleGroup, err := gitlab.NewGroup(ctx, \"exampleGroup\", \u0026gitlab.GroupArgs{\n\t\t\tPath: pulumi.String(\"example\"),\n\t\t\tDescription: pulumi.String(\"An example group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gitlab.NewProject(ctx, \"exampleProject\", \u0026gitlab.ProjectArgs{\n\t\t\tDescription: pulumi.String(\"An example project\"),\n\t\t\tNamespaceId: exampleGroup.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gitlab.NewGroup(ctx, \"example-two\", \u0026gitlab.GroupArgs{\n\t\t\tPath: pulumi.String(\"example-two\"),\n\t\t\tDescription: pulumi.String(\"An example group with push rules\"),\n\t\t\tPushRules: \u0026gitlab.GroupPushRulesArgs{\n\t\t\t\tAuthorEmailRegex: pulumi.String(\"@example\\\\.com$\"),\n\t\t\t\tCommitCommitterCheck: pulumi.Bool(true),\n\t\t\t\tMemberCheck: pulumi.Bool(true),\n\t\t\t\tPreventSecrets: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gitlab.Group;\nimport com.pulumi.gitlab.GroupArgs;\nimport com.pulumi.gitlab.Project;\nimport com.pulumi.gitlab.ProjectArgs;\nimport com.pulumi.gitlab.inputs.GroupPushRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleGroup = new Group(\"exampleGroup\", GroupArgs.builder() \n .path(\"example\")\n .description(\"An example group\")\n .build());\n\n var exampleProject = new Project(\"exampleProject\", ProjectArgs.builder() \n .description(\"An example project\")\n .namespaceId(exampleGroup.id())\n .build());\n\n var example_two = new Group(\"example-two\", GroupArgs.builder() \n .path(\"example-two\")\n .description(\"An example group with push rules\")\n .pushRules(GroupPushRulesArgs.builder()\n .authorEmailRegex(\"@example\\\\.com$\")\n .commitCommitterCheck(true)\n .memberCheck(true)\n .preventSecrets(true)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleGroup:\n type: gitlab:Group\n properties:\n path: example\n description: An example group\n # Create a project in the example group\n exampleProject:\n type: gitlab:Project\n properties:\n description: An example project\n namespaceId: ${exampleGroup.id}\n # Group with custom push rules\n example-two:\n type: gitlab:Group\n properties:\n path: example-two\n description: An example group with push rules\n pushRules:\n authorEmailRegex: '@example\\.com$'\n commitCommitterCheck: true\n memberCheck: true\n preventSecrets: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n\n\n```sh\n $ pulumi import gitlab:index/group:Group You can import a group state using `\u003cresource\u003e \u003cid\u003e`. The\n```\n\n `id` can be whatever the [details of a group][details_of_a_group] api takes for its `:id` value, so for example\n\n```sh\n $ pulumi import gitlab:index/group:Group example example\n```\n\n ", "properties": { @@ -14558,7 +14867,7 @@ }, "url": { "type": "string", - "description": "The url of the hook to invoke.\n" + "description": "The url of the hook to invoke. Forces re-creation to preserve `token`.\n" }, "wikiPageEvents": { "type": "boolean", @@ -14635,7 +14944,8 @@ }, "url": { "type": "string", - "description": "The url of the hook to invoke.\n" + "description": "The url of the hook to invoke. Forces re-creation to preserve `token`.\n", + "willReplaceOnChanges": true }, "wikiPageEvents": { "type": "boolean", @@ -14720,7 +15030,8 @@ }, "url": { "type": "string", - "description": "The url of the hook to invoke.\n" + "description": "The url of the hook to invoke. Forces re-creation to preserve `token`.\n", + "willReplaceOnChanges": true }, "wikiPageEvents": { "type": "boolean", @@ -19712,8 +20023,7 @@ "description": "The full path of the group.\n" }, "groupId": { - "type": "integer", - "description": "The ID of the group.\n" + "type": "integer" } }, "type": "object" @@ -19790,6 +20100,13 @@ "type": "string", "description": "Enable or disable shared runners for a group’s subgroups and projects. Valid values are: `enabled`, `disabled_and_overridable`, `disabled_and_unoverridable`, `disabled_with_override`.\n" }, + "sharedWithGroups": { + "type": "array", + "items": { + "$ref": "#/types/gitlab:index/getGroupSharedWithGroup:getGroupSharedWithGroup" + }, + "description": "Describes groups which have access shared to this group.\n" + }, "visibilityLevel": { "type": "string", "description": "Visibility level of the group. Possible values are `private`, `internal`, `public`.\n" @@ -19821,6 +20138,7 @@ "runnersToken", "sharedRunnersMinutesLimit", "sharedRunnersSetting", + "sharedWithGroups", "visibilityLevel", "webUrl", "wikiAccessLevel", @@ -20790,6 +21108,13 @@ "type": "string", "description": "Set the security and compliance access level. Valid values are `disabled`, `private`, `enabled`.\n" }, + "sharedWithGroups": { + "type": "array", + "items": { + "$ref": "#/types/gitlab:index/getProjectSharedWithGroup:getProjectSharedWithGroup" + }, + "description": "Describes groups which have access shared to this project.\n" + }, "snippetsAccessLevel": { "type": "string", "description": "Set the snippets access level. Valid values are `disabled`, `private`, `enabled`.\n" @@ -20889,6 +21214,7 @@ "restrictUserDefinedVariables", "runnersToken", "securityAndComplianceAccessLevel", + "sharedWithGroups", "snippetsAccessLevel", "snippetsEnabled", "squashCommitTemplate", @@ -22861,6 +23187,10 @@ "type": "boolean", "description": "Whether the user is an admin.\n" }, + "isBot": { + "type": "boolean", + "description": "Whether the user is a bot.\n" + }, "lastSignInAt": { "type": "string", "description": "Last user's sign-in date.\n" @@ -22943,6 +23273,7 @@ "externUid", "external", "isAdmin", + "isBot", "lastSignInAt", "linkedin", "location", diff --git a/provider/go.mod b/provider/go.mod index 1d8d27fd..8b56b560 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -19,13 +19,13 @@ replace ( ) require ( - cloud.google.com/go v0.110.8 // indirect - cloud.google.com/go/compute v1.23.0 // indirect + cloud.google.com/go v0.110.10 // indirect + cloud.google.com/go/compute v1.23.3 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/iam v1.1.2 // indirect - cloud.google.com/go/kms v1.15.2 // indirect + cloud.google.com/go/iam v1.1.5 // indirect + cloud.google.com/go/kms v1.15.5 // indirect cloud.google.com/go/logging v1.8.1 // indirect - cloud.google.com/go/longrunning v0.5.1 // indirect + cloud.google.com/go/longrunning v0.5.4 // indirect cloud.google.com/go/storage v1.30.1 // indirect dario.cat/mergo v1.0.0 // indirect github.com/Azure/azure-sdk-for-go v66.0.0+incompatible // indirect @@ -45,7 +45,7 @@ require ( github.com/Masterminds/semver/v3 v3.1.1 // indirect github.com/Masterminds/sprig/v3 v3.2.2 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // indirect + github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c // indirect github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect github.com/agext/levenshtein v1.2.3 // indirect github.com/apparentlymart/go-cidr v1.1.0 // indirect @@ -79,14 +79,14 @@ require ( github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/dcarbone/terraform-plugin-framework-utils/v3 v3.4.2 // indirect + github.com/dcarbone/terraform-plugin-framework-utils/v3 v3.5.0 // indirect github.com/deckarep/golang-set/v2 v2.5.0 // indirect github.com/dimchansky/utfbom v1.1.1 // indirect github.com/djherbis/times v1.5.0 // indirect github.com/edsrzf/mmap-go v1.1.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/ettle/strcase v0.1.1 // indirect - github.com/fatih/color v1.15.0 // indirect + github.com/fatih/color v1.16.0 // indirect github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect @@ -100,11 +100,11 @@ require ( github.com/golang/snappy v0.0.4 // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/google/go-querystring v1.1.0 // indirect - github.com/google/s2a-go v0.1.4 // indirect + github.com/google/s2a-go v0.1.7 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect - github.com/google/uuid v1.3.1 // indirect + github.com/google/uuid v1.4.0 // indirect github.com/google/wire v0.5.0 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.2.4 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect github.com/googleapis/gax-go/v2 v2.12.0 // indirect github.com/gorilla/mux v1.8.0 // indirect github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect @@ -112,7 +112,7 @@ require ( github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-cty v1.4.1-0.20200723130312-85980079f637 // indirect github.com/hashicorp/go-getter v1.7.1 // indirect - github.com/hashicorp/go-hclog v1.5.0 // indirect + github.com/hashicorp/go-hclog v1.6.2 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-plugin v1.6.0 // indirect @@ -152,7 +152,7 @@ require ( github.com/klauspost/compress v1.16.0 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-localereader v0.0.1 // indirect github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mitchellh/cli v1.1.5 // indirect @@ -215,7 +215,7 @@ require ( github.com/vmihailenco/msgpack v4.0.4+incompatible // indirect github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect - github.com/xanzy/go-gitlab v0.95.2 // indirect + github.com/xanzy/go-gitlab v0.96.0 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect @@ -229,19 +229,19 @@ require ( golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa // indirect golang.org/x/mod v0.14.0 // indirect golang.org/x/net v0.19.0 // indirect - golang.org/x/oauth2 v0.13.0 // indirect + golang.org/x/oauth2 v0.15.0 // indirect golang.org/x/sync v0.5.0 // indirect golang.org/x/sys v0.15.0 // indirect golang.org/x/term v0.15.0 // indirect golang.org/x/text v0.14.0 // indirect - golang.org/x/time v0.3.0 // indirect + golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.15.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/api v0.128.0 // indirect + google.golang.org/api v0.149.0 // indirect google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97 // indirect + google.golang.org/genproto v0.0.0-20231211222908-989df2bf70f3 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231212172506-995d672761c0 // indirect google.golang.org/grpc v1.60.0 // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/square/go-jose.v2 v2.6.0 // indirect diff --git a/provider/go.sum b/provider/go.sum index 2d0e5164..9f430c30 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -40,8 +40,8 @@ cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRY cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= -cloud.google.com/go v0.110.8 h1:tyNdfIxjzaWctIiLYOTalaLKZ17SI44SKFW26QbOhME= -cloud.google.com/go v0.110.8/go.mod h1:Iz8AkXJf1qmxC3Oxoep8R1T36w8B92yU29PcBhHO5fk= +cloud.google.com/go v0.110.10 h1:LXy9GEO+timppncPIAZoOj3l58LIU9k+kn48AN7IO3Y= +cloud.google.com/go v0.110.10/go.mod h1:v1OoFqYxiBkUrruItNM3eT4lLByNjxmJSV/xDKJNnic= cloud.google.com/go/accessapproval v1.4.0/go.mod h1:zybIuC3KpDOvotz59lFe5qxRZx6C75OtwbisN56xYB4= cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= cloud.google.com/go/accessapproval v1.6.0/go.mod h1:R0EiYnwV5fsRFiKZkPHr6mwyk2wxUJ30nL4j2pcFY2E= @@ -178,8 +178,8 @@ cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63 cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= cloud.google.com/go/compute v1.19.0/go.mod h1:rikpw2y+UMidAe9tISo04EHNOIf42RLYF/q8Bs93scU= cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE= -cloud.google.com/go/compute v1.23.0 h1:tP41Zoavr8ptEqaW6j+LQOnyBBhO7OkOMAGrgLopTwY= -cloud.google.com/go/compute v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= +cloud.google.com/go/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiVlk= +cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU= cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= @@ -320,8 +320,8 @@ cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGE cloud.google.com/go/iam v0.11.0/go.mod h1:9PiLDanza5D+oWFZiH1uG+RnRCfEGKoyl6yo4cgWZGY= cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= -cloud.google.com/go/iam v1.1.2 h1:gacbrBdWcoVmGLozRuStX45YKvJtzIjJdAolzUs1sm4= -cloud.google.com/go/iam v1.1.2/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU= +cloud.google.com/go/iam v1.1.5 h1:1jTsCu4bcsNsE4iiqNT5SHwrDRCfRmIaaaVFhRveTJI= +cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXEbzv8= cloud.google.com/go/iap v1.4.0/go.mod h1:RGFwRJdihTINIe4wZ2iCP0zF/qu18ZwyKxrhMhygBEc= cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= cloud.google.com/go/iap v1.6.0/go.mod h1:NSuvI9C/j7UdjGjIde7t7HBz+QTwBcapPE07+sSRcLk= @@ -341,8 +341,8 @@ cloud.google.com/go/kms v1.8.0/go.mod h1:4xFEhYFqvW+4VMELtZyxomGSYtSQKzM178ylFW4 cloud.google.com/go/kms v1.9.0/go.mod h1:qb1tPTgfF9RQP8e1wq4cLFErVuTJv7UsSC915J8dh3w= cloud.google.com/go/kms v1.10.0/go.mod h1:ng3KTUtQQU9bPX3+QGLsflZIHlkbn8amFAMY63m8d24= cloud.google.com/go/kms v1.10.1/go.mod h1:rIWk/TryCkR59GMC3YtHtXeLzd634lBbKenvyySAyYI= -cloud.google.com/go/kms v1.15.2 h1:lh6qra6oC4AyWe5fUUUBe/S27k12OHAleOOOw6KakdE= -cloud.google.com/go/kms v1.15.2/go.mod h1:3hopT4+7ooWRCjc2DxgnpESFxhIraaI2IpAVUEhbT/w= +cloud.google.com/go/kms v1.15.5 h1:pj1sRfut2eRbD9pFRjNnPNg/CzJPuQAzUujMIM1vVeM= +cloud.google.com/go/kms v1.15.5/go.mod h1:cU2H5jnp6G2TDpUGZyqTCoy1n16fbubHZjmVXSMtwDI= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= cloud.google.com/go/language v1.7.0/go.mod h1:DJ6dYN/W+SQOjF8e1hLQXMF21AkH2w9wiPzPCJa2MIE= @@ -358,8 +358,8 @@ cloud.google.com/go/logging v1.8.1/go.mod h1:TJjR+SimHwuC8MZ9cjByQulAMgni+RkXeI3 cloud.google.com/go/longrunning v0.1.1/go.mod h1:UUFxuDWkv22EuY93jjmDMFT5GPQKeFVJBIF6QlTqdsE= cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= -cloud.google.com/go/longrunning v0.5.1 h1:Fr7TXftcqTudoyRJa113hyaqlGdiBQkp0Gq7tErFDWI= -cloud.google.com/go/longrunning v0.5.1/go.mod h1:spvimkwdz6SPWKEt/XBij79E9fiTkHSQl/fRUUQJYJc= +cloud.google.com/go/longrunning v0.5.4 h1:w8xEcbZodnA2BbW6sVirkkoC+1gP8wS57EUUgGS0GVg= +cloud.google.com/go/longrunning v0.5.4/go.mod h1:zqNVncI0BOP8ST6XQD1+VcvuShMmq7+xFSzOL++V0dI= cloud.google.com/go/managedidentities v1.3.0/go.mod h1:UzlW3cBOiPrzucO5qWkNkh0w33KFtBJU281hacNvsdE= cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= cloud.google.com/go/managedidentities v1.5.0/go.mod h1:+dWcZ0JlUmpuxpIDfyP5pP5y0bLdRwOS4Lp7gMni/LA= @@ -749,8 +749,8 @@ github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMo github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo= github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= -github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 h1:kkhsdkhsCvIsutKu5zLMgWtgh9YxGCNAw8Ad8hjwfYg= -github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= +github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c h1:kMFnB0vCcX7IL/m9Y5LO+KQYv+t1CQOiFe6+SV2J7bE= +github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= @@ -1113,8 +1113,8 @@ github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4/go.mod h1:bMl4RjI github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dcarbone/terraform-plugin-framework-utils/v3 v3.4.2 h1:aiuV5us866U7GqgHIJqqD1nvbnDi1g8uGxBC3/CuV1o= -github.com/dcarbone/terraform-plugin-framework-utils/v3 v3.4.2/go.mod h1:qlLkW1km+x3GnUo2gg3jW8Y/0n2idK/nFLGREsQnONc= +github.com/dcarbone/terraform-plugin-framework-utils/v3 v3.5.0 h1:RCCvoS7bF8YV+nr39At4srZmqJ60fBHZ3wqCyOjJ/4s= +github.com/dcarbone/terraform-plugin-framework-utils/v3 v3.5.0/go.mod h1:UESRaf2PvcgrnjwpQNinDCt4+6akPL8BG0GCGs2ej/8= github.com/deckarep/golang-set/v2 v2.5.0 h1:hn6cEZtQ0h3J8kFrHR/NrzyOoTnjgW1+FmNJzQ7y/sA= github.com/deckarep/golang-set/v2 v2.5.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/denisenkom/go-mssqldb v0.12.2/go.mod h1:lnIw1mZukFRZDJYQ0Pb833QS2IaC3l5HkEfra2LJ+sk= @@ -1197,8 +1197,8 @@ github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5Kwzbycv github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= -github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= +github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= +github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= @@ -1493,8 +1493,8 @@ github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20220318212150-b2ab0324ddda/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg= github.com/google/pprof v0.0.0-20220608213341-c488b8fa1db3/go.mod h1:gSuNB+gJaOiQKLEZ+q+PK9Mq3SOzhRcw2GsGS/FhYDk= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/s2a-go v0.1.4 h1:1kZ/sQM3srePvKs3tXAvQzo66XfcReoqFpIpIccE7Oc= -github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= +github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= +github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/subcommands v1.0.1/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= @@ -1503,8 +1503,8 @@ github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= -github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= +github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/wire v0.5.0 h1:I7ELFeVBr3yfPIcc8+MWvrjk+3VjbcSzoXm3JVa+jD8= github.com/google/wire v0.5.0/go.mod h1:ngWDr9Qvq3yZA10YrxfyGELY/AFWGVpy9c1LTRi1EoU= github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= @@ -1512,8 +1512,8 @@ github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= -github.com/googleapis/enterprise-certificate-proxy v0.2.4 h1:uGy6JWR/uMIILU8wbf+OkstIrNiMjGpEIyhx8f6W7s4= -github.com/googleapis/enterprise-certificate-proxy v0.2.4/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= @@ -1593,8 +1593,9 @@ github.com/hashicorp/go-hclog v0.12.2/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39 github.com/hashicorp/go-hclog v0.14.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-hclog v0.16.2/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-hclog v1.2.2/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= -github.com/hashicorp/go-hclog v1.5.0 h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c= github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= +github.com/hashicorp/go-hclog v1.6.2 h1:NOtoftovWkDheyUM/8JW3QMiXyxJK3uHRK7wV04nD2I= +github.com/hashicorp/go-hclog v1.6.2/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.2.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= @@ -1919,8 +1920,8 @@ github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOA github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= -github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4= github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= @@ -2426,8 +2427,8 @@ github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV github.com/vultr/govultr/v2 v2.17.2/go.mod h1:ZFOKGWmgjytfyjeyAdhQlSWwTjh2ig+X49cAp50dzXI= github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI= -github.com/xanzy/go-gitlab v0.95.2 h1:4p0IirHqEp5f0baK/aQqr4TR57IsD+8e4fuyAA1yi88= -github.com/xanzy/go-gitlab v0.95.2/go.mod h1:ETg8tcj4OhrB84UEgeE8dSuV/0h4BBL1uOV/qK0vlyI= +github.com/xanzy/go-gitlab v0.96.0 h1:LGkZ+wSNMRtHIBaYE4Hq3dZVjprwHv3Y1+rhKU3WETs= +github.com/xanzy/go-gitlab v0.96.0/go.mod h1:ETg8tcj4OhrB84UEgeE8dSuV/0h4BBL1uOV/qK0vlyI= github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6eAcqrDh0= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= @@ -2610,7 +2611,6 @@ golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20211202192323-5770296d904e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220511200225-c6db032c6c88/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220517005047-85d78b3ac167/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= @@ -2821,8 +2821,8 @@ golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= -golang.org/x/oauth2 v0.13.0 h1:jDDenyj+WgFtmV3zYVoi8aE2BwtXFLWOA67ZfNWftiY= -golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0= +golang.org/x/oauth2 v0.15.0 h1:s8pnnxNVzjWyrvYdFUQq5llS1PX2zhPXmccZv99h7uQ= +golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -3057,8 +3057,9 @@ golang.org/x/time v0.0.0-20220609170525-579cf78fd858/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -3236,8 +3237,8 @@ google.golang.org/api v0.108.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/ google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= google.golang.org/api v0.111.0/go.mod h1:qtFHvU9mhgTJegR31csQ+rwxyUTHOKFqCKWp1J0fdw0= google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= -google.golang.org/api v0.128.0 h1:RjPESny5CnQRn9V6siglged+DZCgfu9l6mO9dkX9VOg= -google.golang.org/api v0.128.0/go.mod h1:Y611qgqaE92On/7g65MQgxYul3c0rEB894kniWLY750= +google.golang.org/api v0.149.0 h1:b2CqT6kG+zqJIVKRQ3ELJVLN1PwHZ6DJ3dW8yl82rgY= +google.golang.org/api v0.149.0/go.mod h1:Mwn1B7JTXrzXtnvmzQE2BD6bYZQ8DShKZDZbeN9I7qI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -3400,16 +3401,16 @@ google.golang.org/genproto v0.0.0-20230330154414-c0448cd141ea/go.mod h1:UUQDJDOl google.golang.org/genproto v0.0.0-20230331144136-dcfb400f0633/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= google.golang.org/genproto v0.0.0-20230525234025-438c736192d0/go.mod h1:9ExIQyXL5hZrHzQceCwuSYwZZ5QZBazOcprJ5rgs3lY= google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= +google.golang.org/genproto v0.0.0-20231211222908-989df2bf70f3 h1:1hfbdAfFbkmpg41000wDVqr7jUpK/Yo+LPnIxxGzmkg= +google.golang.org/genproto v0.0.0-20231211222908-989df2bf70f3/go.mod h1:5RBcpGRxr25RbDzY5w+dmaqpSEvl8Gwl1x2CICf60ic= google.golang.org/genproto/googleapis/api v0.0.0-20230525234020-1aefcd67740a/go.mod h1:ts19tUU+Z0ZShN1y3aPyq2+O3d5FUNNgT6FtOzmrNn8= google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= -google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU= -google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= +google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f h1:2yNACc1O40tTnrsbk9Cv6oxiW8pxI/pXj0wRtdlYmgY= +google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f/go.mod h1:Uy9bTZJqmfrw2rIBxgGLnamc78euZULUBrLZ9XTITKI= google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234015-3fc162c6f38a/go.mod h1:xURIpW9ES5+/GZhnV6beoEtxQrnkRGIfP5VQG2tCBLc= google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97 h1:6GQBEOdGkX6MMTLT9V+TjtIRZCw9VPD5Z+yHY9wMgS0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97/go.mod h1:v7nGkzlmW8P3n/bKmWBn2WpBjpOEx8Q6gMueudAmKfY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231212172506-995d672761c0 h1:/jFB8jK5R3Sq3i/lmeZO0cATSzFfZaJq1J2Euan3XKU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231212172506-995d672761c0/go.mod h1:FUoWkonphQm3RhTS+kOEhF8h0iDpm4tdXolVCeZ9KKA= google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= diff --git a/sdk/dotnet/ApplicationSettings.cs b/sdk/dotnet/ApplicationSettings.cs index c0d597fe..065e37a4 100644 --- a/sdk/dotnet/ApplicationSettings.cs +++ b/sdk/dotnet/ApplicationSettings.cs @@ -255,18 +255,6 @@ public partial class ApplicationSettings : global::Pulumi.CustomResource [Output("defaultSnippetVisibility")] public Output DefaultSnippetVisibility { get; private set; } = null!; - /// - /// Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - /// - [Output("delayedGroupDeletion")] - public Output DelayedGroupDeletion { get; private set; } = null!; - - /// - /// Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. - /// - [Output("delayedProjectDeletion")] - public Output DelayedProjectDeletion { get; private set; } = null!; - /// /// Enable inactive project deletion feature. Introduced in GitLab 14.10. Became operational in GitLab 15.0 (with feature flag inactive*projects*deletion). /// @@ -274,7 +262,7 @@ public partial class ApplicationSettings : global::Pulumi.CustomResource public Output DeleteInactiveProjects { get; private set; } = null!; /// - /// The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + /// The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. /// [Output("deletionAdjournedPeriod")] public Output DeletionAdjournedPeriod { get; private set; } = null!; @@ -694,7 +682,9 @@ public partial class ApplicationSettings : global::Pulumi.CustomResource public Output HomePageUrl { get; private set; } = null!; /// - /// (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + /// Enable or disable Git housekeeping. + /// If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + /// Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. /// [Output("housekeepingEnabled")] public Output HousekeepingEnabled { get; private set; } = null!; @@ -717,6 +707,12 @@ public partial class ApplicationSettings : global::Pulumi.CustomResource [Output("housekeepingIncrementalRepackPeriod")] public Output HousekeepingIncrementalRepackPeriod { get; private set; } = null!; + /// + /// Number of Git pushes after which an incremental git repack is run. + /// + [Output("housekeepingOptimizeRepositoryPeriod")] + public Output HousekeepingOptimizeRepositoryPeriod { get; private set; } = null!; + /// /// Enable HTML emails. /// @@ -1797,18 +1793,6 @@ public Input? AssetProxySecretKey [Input("defaultSnippetVisibility")] public Input? DefaultSnippetVisibility { get; set; } - /// - /// Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - /// - [Input("delayedGroupDeletion")] - public Input? DelayedGroupDeletion { get; set; } - - /// - /// Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. - /// - [Input("delayedProjectDeletion")] - public Input? DelayedProjectDeletion { get; set; } - /// /// Enable inactive project deletion feature. Introduced in GitLab 14.10. Became operational in GitLab 15.0 (with feature flag inactive*projects*deletion). /// @@ -1816,7 +1800,7 @@ public Input? AssetProxySecretKey public Input? DeleteInactiveProjects { get; set; } /// - /// The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + /// The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. /// [Input("deletionAdjournedPeriod")] public Input? DeletionAdjournedPeriod { get; set; } @@ -2348,7 +2332,9 @@ public InputList GitRateLimitUsersAllowlists public Input? HomePageUrl { get; set; } /// - /// (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + /// Enable or disable Git housekeeping. + /// If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + /// Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. /// [Input("housekeepingEnabled")] public Input? HousekeepingEnabled { get; set; } @@ -2371,6 +2357,12 @@ public InputList GitRateLimitUsersAllowlists [Input("housekeepingIncrementalRepackPeriod")] public Input? HousekeepingIncrementalRepackPeriod { get; set; } + /// + /// Number of Git pushes after which an incremental git repack is run. + /// + [Input("housekeepingOptimizeRepositoryPeriod")] + public Input? HousekeepingOptimizeRepositoryPeriod { get; set; } + /// /// Enable HTML emails. /// @@ -3485,18 +3477,6 @@ public Input? AssetProxySecretKey [Input("defaultSnippetVisibility")] public Input? DefaultSnippetVisibility { get; set; } - /// - /// Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - /// - [Input("delayedGroupDeletion")] - public Input? DelayedGroupDeletion { get; set; } - - /// - /// Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. - /// - [Input("delayedProjectDeletion")] - public Input? DelayedProjectDeletion { get; set; } - /// /// Enable inactive project deletion feature. Introduced in GitLab 14.10. Became operational in GitLab 15.0 (with feature flag inactive*projects*deletion). /// @@ -3504,7 +3484,7 @@ public Input? AssetProxySecretKey public Input? DeleteInactiveProjects { get; set; } /// - /// The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + /// The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. /// [Input("deletionAdjournedPeriod")] public Input? DeletionAdjournedPeriod { get; set; } @@ -4036,7 +4016,9 @@ public InputList GitRateLimitUsersAllowlists public Input? HomePageUrl { get; set; } /// - /// (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + /// Enable or disable Git housekeeping. + /// If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + /// Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. /// [Input("housekeepingEnabled")] public Input? HousekeepingEnabled { get; set; } @@ -4059,6 +4041,12 @@ public InputList GitRateLimitUsersAllowlists [Input("housekeepingIncrementalRepackPeriod")] public Input? HousekeepingIncrementalRepackPeriod { get; set; } + /// + /// Number of Git pushes after which an incremental git repack is run. + /// + [Input("housekeepingOptimizeRepositoryPeriod")] + public Input? HousekeepingOptimizeRepositoryPeriod { get; set; } + /// /// Enable HTML emails. /// diff --git a/sdk/dotnet/GetGroup.cs b/sdk/dotnet/GetGroup.cs index 70c5d2d4..a6177b39 100644 --- a/sdk/dotnet/GetGroup.cs +++ b/sdk/dotnet/GetGroup.cs @@ -81,9 +81,6 @@ public sealed class GetGroupArgs : global::Pulumi.InvokeArgs [Input("fullPath")] public string? FullPath { get; set; } - /// - /// The ID of the group. - /// [Input("groupId")] public int? GroupId { get; set; } @@ -101,9 +98,6 @@ public sealed class GetGroupInvokeArgs : global::Pulumi.InvokeArgs [Input("fullPath")] public Input? FullPath { get; set; } - /// - /// The ID of the group. - /// [Input("groupId")] public Input? GroupId { get; set; } @@ -186,6 +180,10 @@ public sealed class GetGroupResult /// public readonly string SharedRunnersSetting; /// + /// Describes groups which have access shared to this group. + /// + public readonly ImmutableArray SharedWithGroups; + /// /// Visibility level of the group. Possible values are `private`, `internal`, `public`. /// public readonly string VisibilityLevel; @@ -234,6 +232,8 @@ private GetGroupResult( string sharedRunnersSetting, + ImmutableArray sharedWithGroups, + string visibilityLevel, string webUrl, @@ -257,6 +257,7 @@ private GetGroupResult( RunnersToken = runnersToken; SharedRunnersMinutesLimit = sharedRunnersMinutesLimit; SharedRunnersSetting = sharedRunnersSetting; + SharedWithGroups = sharedWithGroups; VisibilityLevel = visibilityLevel; WebUrl = webUrl; WikiAccessLevel = wikiAccessLevel; diff --git a/sdk/dotnet/GetProject.cs b/sdk/dotnet/GetProject.cs index 1cc1634b..083477ff 100644 --- a/sdk/dotnet/GetProject.cs +++ b/sdk/dotnet/GetProject.cs @@ -358,6 +358,10 @@ public sealed class GetProjectResult /// public readonly string SecurityAndComplianceAccessLevel; /// + /// Describes groups which have access shared to this project. + /// + public readonly ImmutableArray SharedWithGroups; + /// /// Set the snippets access level. Valid values are `disabled`, `private`, `enabled`. /// public readonly string SnippetsAccessLevel; @@ -508,6 +512,8 @@ private GetProjectResult( string securityAndComplianceAccessLevel, + ImmutableArray sharedWithGroups, + string snippetsAccessLevel, bool snippetsEnabled, @@ -582,6 +588,7 @@ private GetProjectResult( RestrictUserDefinedVariables = restrictUserDefinedVariables; RunnersToken = runnersToken; SecurityAndComplianceAccessLevel = securityAndComplianceAccessLevel; + SharedWithGroups = sharedWithGroups; SnippetsAccessLevel = snippetsAccessLevel; SnippetsEnabled = snippetsEnabled; SquashCommitTemplate = squashCommitTemplate; diff --git a/sdk/dotnet/GetUser.cs b/sdk/dotnet/GetUser.cs index 0e714930..b8c7dbb6 100644 --- a/sdk/dotnet/GetUser.cs +++ b/sdk/dotnet/GetUser.cs @@ -156,6 +156,10 @@ public sealed class GetUserResult /// public readonly bool IsAdmin; /// + /// Whether the user is a bot. + /// + public readonly bool IsBot; + /// /// Last user's sign-in date. /// public readonly string LastSignInAt; @@ -250,6 +254,8 @@ private GetUserResult( bool isAdmin, + bool isBot, + string lastSignInAt, string linkedin, @@ -296,6 +302,7 @@ private GetUserResult( External = external; Id = id; IsAdmin = isAdmin; + IsBot = isBot; LastSignInAt = lastSignInAt; Linkedin = linkedin; Location = location; diff --git a/sdk/dotnet/GlobalLevelNotifications.cs b/sdk/dotnet/GlobalLevelNotifications.cs new file mode 100644 index 00000000..30fb7400 --- /dev/null +++ b/sdk/dotnet/GlobalLevelNotifications.cs @@ -0,0 +1,431 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.GitLab +{ + /// + /// The `gitlab.GlobalLevelNotifications` resource allows to manage global notifications. + /// + /// **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/ee/api/notification_settings.html#group--project-level-notification-settings) + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using GitLab = Pulumi.GitLab; + /// + /// return await Deployment.RunAsync(() => + /// { + /// // Create Custom global level notification + /// var foo = new GitLab.GlobalLevelNotifications("foo", new() + /// { + /// Level = "custom", + /// NewMergeRequest = true, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// NoteYou can import a global notification state using "gitlab" as the ID. The ID will always be gitlab, because the global notificatio only exists once per user + /// + /// ```sh + /// $ pulumi import gitlab:index/globalLevelNotifications:GlobalLevelNotifications example gitlab + /// ``` + /// + [GitLabResourceType("gitlab:index/globalLevelNotifications:GlobalLevelNotifications")] + public partial class GlobalLevelNotifications : global::Pulumi.CustomResource + { + /// + /// Enable notifications for closed issues. Can only be used when `level` is `custom`. + /// + [Output("closeIssue")] + public Output CloseIssue { get; private set; } = null!; + + /// + /// Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + /// + [Output("closeMergeRequest")] + public Output CloseMergeRequest { get; private set; } = null!; + + /// + /// Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + /// + [Output("failedPipeline")] + public Output FailedPipeline { get; private set; } = null!; + + /// + /// Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + /// + [Output("fixedPipeline")] + public Output FixedPipeline { get; private set; } = null!; + + /// + /// Enable notifications for due issues. Can only be used when `level` is `custom`. + /// + [Output("issueDue")] + public Output IssueDue { get; private set; } = null!; + + /// + /// The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + /// + [Output("level")] + public Output Level { get; private set; } = null!; + + /// + /// Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + /// + [Output("mergeMergeRequest")] + public Output MergeMergeRequest { get; private set; } = null!; + + /// + /// Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + /// + [Output("mergeWhenPipelineSucceeds")] + public Output MergeWhenPipelineSucceeds { get; private set; } = null!; + + /// + /// Enable notifications for moved projects. Can only be used when `level` is `custom`. + /// + [Output("movedProject")] + public Output MovedProject { get; private set; } = null!; + + /// + /// Enable notifications for new issues. Can only be used when `level` is `custom`. + /// + [Output("newIssue")] + public Output NewIssue { get; private set; } = null!; + + /// + /// Enable notifications for new merge requests. Can only be used when `level` is `custom`. + /// + [Output("newMergeRequest")] + public Output NewMergeRequest { get; private set; } = null!; + + /// + /// Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + /// + [Output("newNote")] + public Output NewNote { get; private set; } = null!; + + /// + /// Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + /// + [Output("pushToMergeRequest")] + public Output PushToMergeRequest { get; private set; } = null!; + + /// + /// Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + /// + [Output("reassignIssue")] + public Output ReassignIssue { get; private set; } = null!; + + /// + /// Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + /// + [Output("reassignMergeRequest")] + public Output ReassignMergeRequest { get; private set; } = null!; + + /// + /// Enable notifications for reopened issues. Can only be used when `level` is `custom`. + /// + [Output("reopenIssue")] + public Output ReopenIssue { get; private set; } = null!; + + /// + /// Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + /// + [Output("reopenMergeRequest")] + public Output ReopenMergeRequest { get; private set; } = null!; + + /// + /// Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + /// + [Output("successPipeline")] + public Output SuccessPipeline { get; private set; } = null!; + + + /// + /// Create a GlobalLevelNotifications resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public GlobalLevelNotifications(string name, GlobalLevelNotificationsArgs? args = null, CustomResourceOptions? options = null) + : base("gitlab:index/globalLevelNotifications:GlobalLevelNotifications", name, args ?? new GlobalLevelNotificationsArgs(), MakeResourceOptions(options, "")) + { + } + + private GlobalLevelNotifications(string name, Input id, GlobalLevelNotificationsState? state = null, CustomResourceOptions? options = null) + : base("gitlab:index/globalLevelNotifications:GlobalLevelNotifications", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing GlobalLevelNotifications resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static GlobalLevelNotifications Get(string name, Input id, GlobalLevelNotificationsState? state = null, CustomResourceOptions? options = null) + { + return new GlobalLevelNotifications(name, id, state, options); + } + } + + public sealed class GlobalLevelNotificationsArgs : global::Pulumi.ResourceArgs + { + /// + /// Enable notifications for closed issues. Can only be used when `level` is `custom`. + /// + [Input("closeIssue")] + public Input? CloseIssue { get; set; } + + /// + /// Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + /// + [Input("closeMergeRequest")] + public Input? CloseMergeRequest { get; set; } + + /// + /// Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + /// + [Input("failedPipeline")] + public Input? FailedPipeline { get; set; } + + /// + /// Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + /// + [Input("fixedPipeline")] + public Input? FixedPipeline { get; set; } + + /// + /// Enable notifications for due issues. Can only be used when `level` is `custom`. + /// + [Input("issueDue")] + public Input? IssueDue { get; set; } + + /// + /// The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + /// + [Input("level")] + public Input? Level { get; set; } + + /// + /// Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + /// + [Input("mergeMergeRequest")] + public Input? MergeMergeRequest { get; set; } + + /// + /// Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + /// + [Input("mergeWhenPipelineSucceeds")] + public Input? MergeWhenPipelineSucceeds { get; set; } + + /// + /// Enable notifications for moved projects. Can only be used when `level` is `custom`. + /// + [Input("movedProject")] + public Input? MovedProject { get; set; } + + /// + /// Enable notifications for new issues. Can only be used when `level` is `custom`. + /// + [Input("newIssue")] + public Input? NewIssue { get; set; } + + /// + /// Enable notifications for new merge requests. Can only be used when `level` is `custom`. + /// + [Input("newMergeRequest")] + public Input? NewMergeRequest { get; set; } + + /// + /// Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + /// + [Input("newNote")] + public Input? NewNote { get; set; } + + /// + /// Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + /// + [Input("pushToMergeRequest")] + public Input? PushToMergeRequest { get; set; } + + /// + /// Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + /// + [Input("reassignIssue")] + public Input? ReassignIssue { get; set; } + + /// + /// Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + /// + [Input("reassignMergeRequest")] + public Input? ReassignMergeRequest { get; set; } + + /// + /// Enable notifications for reopened issues. Can only be used when `level` is `custom`. + /// + [Input("reopenIssue")] + public Input? ReopenIssue { get; set; } + + /// + /// Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + /// + [Input("reopenMergeRequest")] + public Input? ReopenMergeRequest { get; set; } + + /// + /// Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + /// + [Input("successPipeline")] + public Input? SuccessPipeline { get; set; } + + public GlobalLevelNotificationsArgs() + { + } + public static new GlobalLevelNotificationsArgs Empty => new GlobalLevelNotificationsArgs(); + } + + public sealed class GlobalLevelNotificationsState : global::Pulumi.ResourceArgs + { + /// + /// Enable notifications for closed issues. Can only be used when `level` is `custom`. + /// + [Input("closeIssue")] + public Input? CloseIssue { get; set; } + + /// + /// Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + /// + [Input("closeMergeRequest")] + public Input? CloseMergeRequest { get; set; } + + /// + /// Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + /// + [Input("failedPipeline")] + public Input? FailedPipeline { get; set; } + + /// + /// Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + /// + [Input("fixedPipeline")] + public Input? FixedPipeline { get; set; } + + /// + /// Enable notifications for due issues. Can only be used when `level` is `custom`. + /// + [Input("issueDue")] + public Input? IssueDue { get; set; } + + /// + /// The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + /// + [Input("level")] + public Input? Level { get; set; } + + /// + /// Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + /// + [Input("mergeMergeRequest")] + public Input? MergeMergeRequest { get; set; } + + /// + /// Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + /// + [Input("mergeWhenPipelineSucceeds")] + public Input? MergeWhenPipelineSucceeds { get; set; } + + /// + /// Enable notifications for moved projects. Can only be used when `level` is `custom`. + /// + [Input("movedProject")] + public Input? MovedProject { get; set; } + + /// + /// Enable notifications for new issues. Can only be used when `level` is `custom`. + /// + [Input("newIssue")] + public Input? NewIssue { get; set; } + + /// + /// Enable notifications for new merge requests. Can only be used when `level` is `custom`. + /// + [Input("newMergeRequest")] + public Input? NewMergeRequest { get; set; } + + /// + /// Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + /// + [Input("newNote")] + public Input? NewNote { get; set; } + + /// + /// Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + /// + [Input("pushToMergeRequest")] + public Input? PushToMergeRequest { get; set; } + + /// + /// Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + /// + [Input("reassignIssue")] + public Input? ReassignIssue { get; set; } + + /// + /// Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + /// + [Input("reassignMergeRequest")] + public Input? ReassignMergeRequest { get; set; } + + /// + /// Enable notifications for reopened issues. Can only be used when `level` is `custom`. + /// + [Input("reopenIssue")] + public Input? ReopenIssue { get; set; } + + /// + /// Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + /// + [Input("reopenMergeRequest")] + public Input? ReopenMergeRequest { get; set; } + + /// + /// Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + /// + [Input("successPipeline")] + public Input? SuccessPipeline { get; set; } + + public GlobalLevelNotificationsState() + { + } + public static new GlobalLevelNotificationsState Empty => new GlobalLevelNotificationsState(); + } +} diff --git a/sdk/dotnet/Outputs/GetGroupSharedWithGroupResult.cs b/sdk/dotnet/Outputs/GetGroupSharedWithGroupResult.cs new file mode 100644 index 00000000..5eb3f84b --- /dev/null +++ b/sdk/dotnet/Outputs/GetGroupSharedWithGroupResult.cs @@ -0,0 +1,41 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.GitLab.Outputs +{ + + [OutputType] + public sealed class GetGroupSharedWithGroupResult + { + public readonly string ExpiresAt; + public readonly int GroupAccessLevel; + public readonly string GroupFullPath; + public readonly int GroupId; + public readonly string GroupName; + + [OutputConstructor] + private GetGroupSharedWithGroupResult( + string expiresAt, + + int groupAccessLevel, + + string groupFullPath, + + int groupId, + + string groupName) + { + ExpiresAt = expiresAt; + GroupAccessLevel = groupAccessLevel; + GroupFullPath = groupFullPath; + GroupId = groupId; + GroupName = groupName; + } + } +} diff --git a/sdk/dotnet/Outputs/GetProjectSharedWithGroupResult.cs b/sdk/dotnet/Outputs/GetProjectSharedWithGroupResult.cs new file mode 100644 index 00000000..c375bf99 --- /dev/null +++ b/sdk/dotnet/Outputs/GetProjectSharedWithGroupResult.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.GitLab.Outputs +{ + + [OutputType] + public sealed class GetProjectSharedWithGroupResult + { + public readonly int GroupAccessLevel; + public readonly string GroupFullPath; + public readonly int GroupId; + public readonly string GroupName; + + [OutputConstructor] + private GetProjectSharedWithGroupResult( + int groupAccessLevel, + + string groupFullPath, + + int groupId, + + string groupName) + { + GroupAccessLevel = groupAccessLevel; + GroupFullPath = groupFullPath; + GroupId = groupId; + GroupName = groupName; + } + } +} diff --git a/sdk/dotnet/Outputs/GetUsersUserResult.cs b/sdk/dotnet/Outputs/GetUsersUserResult.cs index a95f7a0f..833d29f7 100644 --- a/sdk/dotnet/Outputs/GetUsersUserResult.cs +++ b/sdk/dotnet/Outputs/GetUsersUserResult.cs @@ -25,6 +25,7 @@ public sealed class GetUsersUserResult public readonly bool External; public readonly int Id; public readonly bool IsAdmin; + public readonly bool IsBot; public readonly string LastSignInAt; public readonly string Linkedin; public readonly string Location; @@ -67,6 +68,8 @@ private GetUsersUserResult( bool isAdmin, + bool isBot, + string lastSignInAt, string linkedin, @@ -109,6 +112,7 @@ private GetUsersUserResult( External = external; Id = id; IsAdmin = isAdmin; + IsBot = isBot; LastSignInAt = lastSignInAt; Linkedin = linkedin; Location = location; diff --git a/sdk/dotnet/ProjectHook.cs b/sdk/dotnet/ProjectHook.cs index 08a6de3b..46b9054b 100644 --- a/sdk/dotnet/ProjectHook.cs +++ b/sdk/dotnet/ProjectHook.cs @@ -150,7 +150,7 @@ public partial class ProjectHook : global::Pulumi.CustomResource public Output Token { get; private set; } = null!; /// - /// The url of the hook to invoke. + /// The url of the hook to invoke. Forces re-creation to preserve `token`. /// [Output("url")] public Output Url { get; private set; } = null!; @@ -312,7 +312,7 @@ public Input? Token } /// - /// The url of the hook to invoke. + /// The url of the hook to invoke. Forces re-creation to preserve `token`. /// [Input("url", required: true)] public Input Url { get; set; } = null!; @@ -444,7 +444,7 @@ public Input? Token } /// - /// The url of the hook to invoke. + /// The url of the hook to invoke. Forces re-creation to preserve `token`. /// [Input("url")] public Input? Url { get; set; } diff --git a/sdk/go/gitlab/applicationSettings.go b/sdk/go/gitlab/applicationSettings.go index 55530f5d..4eb4263b 100644 --- a/sdk/go/gitlab/applicationSettings.go +++ b/sdk/go/gitlab/applicationSettings.go @@ -114,13 +114,9 @@ type ApplicationSettings struct { DefaultProjectsLimit pulumi.IntOutput `pulumi:"defaultProjectsLimit"` // What visibility level new snippets receive. Can take private, internal and public as a parameter. DefaultSnippetVisibility pulumi.StringOutput `pulumi:"defaultSnippetVisibility"` - // Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - DelayedGroupDeletion pulumi.BoolOutput `pulumi:"delayedGroupDeletion"` - // Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. - DelayedProjectDeletion pulumi.BoolOutput `pulumi:"delayedProjectDeletion"` // Enable inactive project deletion feature. Introduced in GitLab 14.10. Became operational in GitLab 15.0 (with feature flag inactive*projects*deletion). DeleteInactiveProjects pulumi.BoolOutput `pulumi:"deleteInactiveProjects"` - // The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + // The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. DeletionAdjournedPeriod pulumi.IntOutput `pulumi:"deletionAdjournedPeriod"` // Maximum files in a diff. DiffMaxFiles pulumi.IntOutput `pulumi:"diffMaxFiles"` @@ -260,14 +256,24 @@ type ApplicationSettings struct { HideThirdPartyOffers pulumi.BoolOutput `pulumi:"hideThirdPartyOffers"` // Redirect to this URL when not logged in. HomePageUrl pulumi.StringOutput `pulumi:"homePageUrl"` - // (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + // Enable or disable Git housekeeping. + // If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + // Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. HousekeepingEnabled pulumi.BoolOutput `pulumi:"housekeepingEnabled"` // Number of Git pushes after which an incremental git repack is run. + // + // Deprecated: housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. HousekeepingFullRepackPeriod pulumi.IntOutput `pulumi:"housekeepingFullRepackPeriod"` // Number of Git pushes after which git gc is run. + // + // Deprecated: housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. HousekeepingGcPeriod pulumi.IntOutput `pulumi:"housekeepingGcPeriod"` // Number of Git pushes after which an incremental git repack is run. + // + // Deprecated: housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. HousekeepingIncrementalRepackPeriod pulumi.IntOutput `pulumi:"housekeepingIncrementalRepackPeriod"` + // Number of Git pushes after which an incremental git repack is run. + HousekeepingOptimizeRepositoryPeriod pulumi.IntOutput `pulumi:"housekeepingOptimizeRepositoryPeriod"` // Enable HTML emails. HtmlEmailsEnabled pulumi.BoolOutput `pulumi:"htmlEmailsEnabled"` // Sources to allow project import from. Valid values are: `github`, `bitbucket`, `bitbucketServer`, `fogbugz`, `git`, `Project`, `gitea`, `manifest` @@ -693,13 +699,9 @@ type applicationSettingsState struct { DefaultProjectsLimit *int `pulumi:"defaultProjectsLimit"` // What visibility level new snippets receive. Can take private, internal and public as a parameter. DefaultSnippetVisibility *string `pulumi:"defaultSnippetVisibility"` - // Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - DelayedGroupDeletion *bool `pulumi:"delayedGroupDeletion"` - // Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. - DelayedProjectDeletion *bool `pulumi:"delayedProjectDeletion"` // Enable inactive project deletion feature. Introduced in GitLab 14.10. Became operational in GitLab 15.0 (with feature flag inactive*projects*deletion). DeleteInactiveProjects *bool `pulumi:"deleteInactiveProjects"` - // The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + // The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. DeletionAdjournedPeriod *int `pulumi:"deletionAdjournedPeriod"` // Maximum files in a diff. DiffMaxFiles *int `pulumi:"diffMaxFiles"` @@ -839,14 +841,24 @@ type applicationSettingsState struct { HideThirdPartyOffers *bool `pulumi:"hideThirdPartyOffers"` // Redirect to this URL when not logged in. HomePageUrl *string `pulumi:"homePageUrl"` - // (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + // Enable or disable Git housekeeping. + // If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + // Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. HousekeepingEnabled *bool `pulumi:"housekeepingEnabled"` // Number of Git pushes after which an incremental git repack is run. + // + // Deprecated: housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. HousekeepingFullRepackPeriod *int `pulumi:"housekeepingFullRepackPeriod"` // Number of Git pushes after which git gc is run. + // + // Deprecated: housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. HousekeepingGcPeriod *int `pulumi:"housekeepingGcPeriod"` // Number of Git pushes after which an incremental git repack is run. + // + // Deprecated: housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. HousekeepingIncrementalRepackPeriod *int `pulumi:"housekeepingIncrementalRepackPeriod"` + // Number of Git pushes after which an incremental git repack is run. + HousekeepingOptimizeRepositoryPeriod *int `pulumi:"housekeepingOptimizeRepositoryPeriod"` // Enable HTML emails. HtmlEmailsEnabled *bool `pulumi:"htmlEmailsEnabled"` // Sources to allow project import from. Valid values are: `github`, `bitbucket`, `bitbucketServer`, `fogbugz`, `git`, `Project`, `gitea`, `manifest` @@ -1180,13 +1192,9 @@ type ApplicationSettingsState struct { DefaultProjectsLimit pulumi.IntPtrInput // What visibility level new snippets receive. Can take private, internal and public as a parameter. DefaultSnippetVisibility pulumi.StringPtrInput - // Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - DelayedGroupDeletion pulumi.BoolPtrInput - // Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. - DelayedProjectDeletion pulumi.BoolPtrInput // Enable inactive project deletion feature. Introduced in GitLab 14.10. Became operational in GitLab 15.0 (with feature flag inactive*projects*deletion). DeleteInactiveProjects pulumi.BoolPtrInput - // The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + // The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. DeletionAdjournedPeriod pulumi.IntPtrInput // Maximum files in a diff. DiffMaxFiles pulumi.IntPtrInput @@ -1326,14 +1334,24 @@ type ApplicationSettingsState struct { HideThirdPartyOffers pulumi.BoolPtrInput // Redirect to this URL when not logged in. HomePageUrl pulumi.StringPtrInput - // (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + // Enable or disable Git housekeeping. + // If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + // Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. HousekeepingEnabled pulumi.BoolPtrInput // Number of Git pushes after which an incremental git repack is run. + // + // Deprecated: housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. HousekeepingFullRepackPeriod pulumi.IntPtrInput // Number of Git pushes after which git gc is run. + // + // Deprecated: housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. HousekeepingGcPeriod pulumi.IntPtrInput // Number of Git pushes after which an incremental git repack is run. + // + // Deprecated: housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. HousekeepingIncrementalRepackPeriod pulumi.IntPtrInput + // Number of Git pushes after which an incremental git repack is run. + HousekeepingOptimizeRepositoryPeriod pulumi.IntPtrInput // Enable HTML emails. HtmlEmailsEnabled pulumi.BoolPtrInput // Sources to allow project import from. Valid values are: `github`, `bitbucket`, `bitbucketServer`, `fogbugz`, `git`, `Project`, `gitea`, `manifest` @@ -1671,13 +1689,9 @@ type applicationSettingsArgs struct { DefaultProjectsLimit *int `pulumi:"defaultProjectsLimit"` // What visibility level new snippets receive. Can take private, internal and public as a parameter. DefaultSnippetVisibility *string `pulumi:"defaultSnippetVisibility"` - // Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - DelayedGroupDeletion *bool `pulumi:"delayedGroupDeletion"` - // Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. - DelayedProjectDeletion *bool `pulumi:"delayedProjectDeletion"` // Enable inactive project deletion feature. Introduced in GitLab 14.10. Became operational in GitLab 15.0 (with feature flag inactive*projects*deletion). DeleteInactiveProjects *bool `pulumi:"deleteInactiveProjects"` - // The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + // The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. DeletionAdjournedPeriod *int `pulumi:"deletionAdjournedPeriod"` // Maximum files in a diff. DiffMaxFiles *int `pulumi:"diffMaxFiles"` @@ -1817,14 +1831,24 @@ type applicationSettingsArgs struct { HideThirdPartyOffers *bool `pulumi:"hideThirdPartyOffers"` // Redirect to this URL when not logged in. HomePageUrl *string `pulumi:"homePageUrl"` - // (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + // Enable or disable Git housekeeping. + // If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + // Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. HousekeepingEnabled *bool `pulumi:"housekeepingEnabled"` // Number of Git pushes after which an incremental git repack is run. + // + // Deprecated: housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. HousekeepingFullRepackPeriod *int `pulumi:"housekeepingFullRepackPeriod"` // Number of Git pushes after which git gc is run. + // + // Deprecated: housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. HousekeepingGcPeriod *int `pulumi:"housekeepingGcPeriod"` // Number of Git pushes after which an incremental git repack is run. + // + // Deprecated: housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. HousekeepingIncrementalRepackPeriod *int `pulumi:"housekeepingIncrementalRepackPeriod"` + // Number of Git pushes after which an incremental git repack is run. + HousekeepingOptimizeRepositoryPeriod *int `pulumi:"housekeepingOptimizeRepositoryPeriod"` // Enable HTML emails. HtmlEmailsEnabled *bool `pulumi:"htmlEmailsEnabled"` // Sources to allow project import from. Valid values are: `github`, `bitbucket`, `bitbucketServer`, `fogbugz`, `git`, `Project`, `gitea`, `manifest` @@ -2159,13 +2183,9 @@ type ApplicationSettingsArgs struct { DefaultProjectsLimit pulumi.IntPtrInput // What visibility level new snippets receive. Can take private, internal and public as a parameter. DefaultSnippetVisibility pulumi.StringPtrInput - // Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - DelayedGroupDeletion pulumi.BoolPtrInput - // Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. - DelayedProjectDeletion pulumi.BoolPtrInput // Enable inactive project deletion feature. Introduced in GitLab 14.10. Became operational in GitLab 15.0 (with feature flag inactive*projects*deletion). DeleteInactiveProjects pulumi.BoolPtrInput - // The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + // The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. DeletionAdjournedPeriod pulumi.IntPtrInput // Maximum files in a diff. DiffMaxFiles pulumi.IntPtrInput @@ -2305,14 +2325,24 @@ type ApplicationSettingsArgs struct { HideThirdPartyOffers pulumi.BoolPtrInput // Redirect to this URL when not logged in. HomePageUrl pulumi.StringPtrInput - // (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + // Enable or disable Git housekeeping. + // If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + // Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. HousekeepingEnabled pulumi.BoolPtrInput // Number of Git pushes after which an incremental git repack is run. + // + // Deprecated: housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. HousekeepingFullRepackPeriod pulumi.IntPtrInput // Number of Git pushes after which git gc is run. + // + // Deprecated: housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. HousekeepingGcPeriod pulumi.IntPtrInput // Number of Git pushes after which an incremental git repack is run. + // + // Deprecated: housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. HousekeepingIncrementalRepackPeriod pulumi.IntPtrInput + // Number of Git pushes after which an incremental git repack is run. + HousekeepingOptimizeRepositoryPeriod pulumi.IntPtrInput // Enable HTML emails. HtmlEmailsEnabled pulumi.BoolPtrInput // Sources to allow project import from. Valid values are: `github`, `bitbucket`, `bitbucketServer`, `fogbugz`, `git`, `Project`, `gitea`, `manifest` @@ -2847,22 +2877,12 @@ func (o ApplicationSettingsOutput) DefaultSnippetVisibility() pulumi.StringOutpu return o.ApplyT(func(v *ApplicationSettings) pulumi.StringOutput { return v.DefaultSnippetVisibility }).(pulumi.StringOutput) } -// Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. -func (o ApplicationSettingsOutput) DelayedGroupDeletion() pulumi.BoolOutput { - return o.ApplyT(func(v *ApplicationSettings) pulumi.BoolOutput { return v.DelayedGroupDeletion }).(pulumi.BoolOutput) -} - -// Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. -func (o ApplicationSettingsOutput) DelayedProjectDeletion() pulumi.BoolOutput { - return o.ApplyT(func(v *ApplicationSettings) pulumi.BoolOutput { return v.DelayedProjectDeletion }).(pulumi.BoolOutput) -} - // Enable inactive project deletion feature. Introduced in GitLab 14.10. Became operational in GitLab 15.0 (with feature flag inactive*projects*deletion). func (o ApplicationSettingsOutput) DeleteInactiveProjects() pulumi.BoolOutput { return o.ApplyT(func(v *ApplicationSettings) pulumi.BoolOutput { return v.DeleteInactiveProjects }).(pulumi.BoolOutput) } -// The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. +// The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. func (o ApplicationSettingsOutput) DeletionAdjournedPeriod() pulumi.IntOutput { return o.ApplyT(func(v *ApplicationSettings) pulumi.IntOutput { return v.DeletionAdjournedPeriod }).(pulumi.IntOutput) } @@ -3212,26 +3232,40 @@ func (o ApplicationSettingsOutput) HomePageUrl() pulumi.StringOutput { return o.ApplyT(func(v *ApplicationSettings) pulumi.StringOutput { return v.HomePageUrl }).(pulumi.StringOutput) } -// (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. +// Enable or disable Git housekeeping. +// +// If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. +// Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. func (o ApplicationSettingsOutput) HousekeepingEnabled() pulumi.BoolOutput { return o.ApplyT(func(v *ApplicationSettings) pulumi.BoolOutput { return v.HousekeepingEnabled }).(pulumi.BoolOutput) } // Number of Git pushes after which an incremental git repack is run. +// +// Deprecated: housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. func (o ApplicationSettingsOutput) HousekeepingFullRepackPeriod() pulumi.IntOutput { return o.ApplyT(func(v *ApplicationSettings) pulumi.IntOutput { return v.HousekeepingFullRepackPeriod }).(pulumi.IntOutput) } // Number of Git pushes after which git gc is run. +// +// Deprecated: housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. func (o ApplicationSettingsOutput) HousekeepingGcPeriod() pulumi.IntOutput { return o.ApplyT(func(v *ApplicationSettings) pulumi.IntOutput { return v.HousekeepingGcPeriod }).(pulumi.IntOutput) } // Number of Git pushes after which an incremental git repack is run. +// +// Deprecated: housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. func (o ApplicationSettingsOutput) HousekeepingIncrementalRepackPeriod() pulumi.IntOutput { return o.ApplyT(func(v *ApplicationSettings) pulumi.IntOutput { return v.HousekeepingIncrementalRepackPeriod }).(pulumi.IntOutput) } +// Number of Git pushes after which an incremental git repack is run. +func (o ApplicationSettingsOutput) HousekeepingOptimizeRepositoryPeriod() pulumi.IntOutput { + return o.ApplyT(func(v *ApplicationSettings) pulumi.IntOutput { return v.HousekeepingOptimizeRepositoryPeriod }).(pulumi.IntOutput) +} + // Enable HTML emails. func (o ApplicationSettingsOutput) HtmlEmailsEnabled() pulumi.BoolOutput { return o.ApplyT(func(v *ApplicationSettings) pulumi.BoolOutput { return v.HtmlEmailsEnabled }).(pulumi.BoolOutput) diff --git a/sdk/go/gitlab/getGroup.go b/sdk/go/gitlab/getGroup.go index 3f3a038c..f20f9435 100644 --- a/sdk/go/gitlab/getGroup.go +++ b/sdk/go/gitlab/getGroup.go @@ -54,8 +54,7 @@ func LookupGroup(ctx *pulumi.Context, args *LookupGroupArgs, opts ...pulumi.Invo type LookupGroupArgs struct { // The full path of the group. FullPath *string `pulumi:"fullPath"` - // The ID of the group. - GroupId *int `pulumi:"groupId"` + GroupId *int `pulumi:"groupId"` } // A collection of values returned by getGroup. @@ -94,6 +93,8 @@ type LookupGroupResult struct { SharedRunnersMinutesLimit int `pulumi:"sharedRunnersMinutesLimit"` // Enable or disable shared runners for a group’s subgroups and projects. Valid values are: `enabled`, `disabledAndOverridable`, `disabledAndUnoverridable`, `disabledWithOverride`. SharedRunnersSetting string `pulumi:"sharedRunnersSetting"` + // Describes groups which have access shared to this group. + SharedWithGroups []GetGroupSharedWithGroup `pulumi:"sharedWithGroups"` // Visibility level of the group. Possible values are `private`, `internal`, `public`. VisibilityLevel string `pulumi:"visibilityLevel"` // Web URL of the group. @@ -119,8 +120,7 @@ func LookupGroupOutput(ctx *pulumi.Context, args LookupGroupOutputArgs, opts ... type LookupGroupOutputArgs struct { // The full path of the group. FullPath pulumi.StringPtrInput `pulumi:"fullPath"` - // The ID of the group. - GroupId pulumi.IntPtrInput `pulumi:"groupId"` + GroupId pulumi.IntPtrInput `pulumi:"groupId"` } func (LookupGroupOutputArgs) ElementType() reflect.Type { @@ -227,6 +227,11 @@ func (o LookupGroupResultOutput) SharedRunnersSetting() pulumi.StringOutput { return o.ApplyT(func(v LookupGroupResult) string { return v.SharedRunnersSetting }).(pulumi.StringOutput) } +// Describes groups which have access shared to this group. +func (o LookupGroupResultOutput) SharedWithGroups() GetGroupSharedWithGroupArrayOutput { + return o.ApplyT(func(v LookupGroupResult) []GetGroupSharedWithGroup { return v.SharedWithGroups }).(GetGroupSharedWithGroupArrayOutput) +} + // Visibility level of the group. Possible values are `private`, `internal`, `public`. func (o LookupGroupResultOutput) VisibilityLevel() pulumi.StringOutput { return o.ApplyT(func(v LookupGroupResult) string { return v.VisibilityLevel }).(pulumi.StringOutput) diff --git a/sdk/go/gitlab/getProject.go b/sdk/go/gitlab/getProject.go index 899d5503..7def2b4e 100644 --- a/sdk/go/gitlab/getProject.go +++ b/sdk/go/gitlab/getProject.go @@ -172,6 +172,8 @@ type LookupProjectResult struct { RunnersToken string `pulumi:"runnersToken"` // Set the security and compliance access level. Valid values are `disabled`, `private`, `enabled`. SecurityAndComplianceAccessLevel string `pulumi:"securityAndComplianceAccessLevel"` + // Describes groups which have access shared to this project. + SharedWithGroups []GetProjectSharedWithGroup `pulumi:"sharedWithGroups"` // Set the snippets access level. Valid values are `disabled`, `private`, `enabled`. SnippetsAccessLevel string `pulumi:"snippetsAccessLevel"` // Enable snippets for the project. @@ -510,6 +512,11 @@ func (o LookupProjectResultOutput) SecurityAndComplianceAccessLevel() pulumi.Str return o.ApplyT(func(v LookupProjectResult) string { return v.SecurityAndComplianceAccessLevel }).(pulumi.StringOutput) } +// Describes groups which have access shared to this project. +func (o LookupProjectResultOutput) SharedWithGroups() GetProjectSharedWithGroupArrayOutput { + return o.ApplyT(func(v LookupProjectResult) []GetProjectSharedWithGroup { return v.SharedWithGroups }).(GetProjectSharedWithGroupArrayOutput) +} + // Set the snippets access level. Valid values are `disabled`, `private`, `enabled`. func (o LookupProjectResultOutput) SnippetsAccessLevel() pulumi.StringOutput { return o.ApplyT(func(v LookupProjectResult) string { return v.SnippetsAccessLevel }).(pulumi.StringOutput) diff --git a/sdk/go/gitlab/getUser.go b/sdk/go/gitlab/getUser.go index fa249a15..1f624440 100644 --- a/sdk/go/gitlab/getUser.go +++ b/sdk/go/gitlab/getUser.go @@ -67,6 +67,8 @@ type LookupUserResult struct { Id string `pulumi:"id"` // Whether the user is an admin. IsAdmin bool `pulumi:"isAdmin"` + // Whether the user is a bot. + IsBot bool `pulumi:"isBot"` // Last user's sign-in date. LastSignInAt string `pulumi:"lastSignInAt"` // LinkedIn profile of the user. @@ -207,6 +209,11 @@ func (o LookupUserResultOutput) IsAdmin() pulumi.BoolOutput { return o.ApplyT(func(v LookupUserResult) bool { return v.IsAdmin }).(pulumi.BoolOutput) } +// Whether the user is a bot. +func (o LookupUserResultOutput) IsBot() pulumi.BoolOutput { + return o.ApplyT(func(v LookupUserResult) bool { return v.IsBot }).(pulumi.BoolOutput) +} + // Last user's sign-in date. func (o LookupUserResultOutput) LastSignInAt() pulumi.StringOutput { return o.ApplyT(func(v LookupUserResult) string { return v.LastSignInAt }).(pulumi.StringOutput) diff --git a/sdk/go/gitlab/globalLevelNotifications.go b/sdk/go/gitlab/globalLevelNotifications.go new file mode 100644 index 00000000..6710eda5 --- /dev/null +++ b/sdk/go/gitlab/globalLevelNotifications.go @@ -0,0 +1,509 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package gitlab + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-gitlab/sdk/v6/go/gitlab/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// The `GlobalLevelNotifications` resource allows to manage global notifications. +// +// **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/ee/api/notification_settings.html#group--project-level-notification-settings) +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gitlab/sdk/v6/go/gitlab" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := gitlab.NewGlobalLevelNotifications(ctx, "foo", &gitlab.GlobalLevelNotificationsArgs{ +// Level: pulumi.String("custom"), +// NewMergeRequest: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// NoteYou can import a global notification state using "gitlab" as the ID. The ID will always be gitlab, because the global notificatio only exists once per user +// +// ```sh +// +// $ pulumi import gitlab:index/globalLevelNotifications:GlobalLevelNotifications example gitlab +// +// ``` +type GlobalLevelNotifications struct { + pulumi.CustomResourceState + + // Enable notifications for closed issues. Can only be used when `level` is `custom`. + CloseIssue pulumi.BoolOutput `pulumi:"closeIssue"` + // Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + CloseMergeRequest pulumi.BoolOutput `pulumi:"closeMergeRequest"` + // Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + FailedPipeline pulumi.BoolOutput `pulumi:"failedPipeline"` + // Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + FixedPipeline pulumi.BoolOutput `pulumi:"fixedPipeline"` + // Enable notifications for due issues. Can only be used when `level` is `custom`. + IssueDue pulumi.BoolOutput `pulumi:"issueDue"` + // The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + Level pulumi.StringOutput `pulumi:"level"` + // Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + MergeMergeRequest pulumi.BoolOutput `pulumi:"mergeMergeRequest"` + // Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + MergeWhenPipelineSucceeds pulumi.BoolOutput `pulumi:"mergeWhenPipelineSucceeds"` + // Enable notifications for moved projects. Can only be used when `level` is `custom`. + MovedProject pulumi.BoolOutput `pulumi:"movedProject"` + // Enable notifications for new issues. Can only be used when `level` is `custom`. + NewIssue pulumi.BoolOutput `pulumi:"newIssue"` + // Enable notifications for new merge requests. Can only be used when `level` is `custom`. + NewMergeRequest pulumi.BoolOutput `pulumi:"newMergeRequest"` + // Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + NewNote pulumi.BoolOutput `pulumi:"newNote"` + // Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + PushToMergeRequest pulumi.BoolOutput `pulumi:"pushToMergeRequest"` + // Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + ReassignIssue pulumi.BoolOutput `pulumi:"reassignIssue"` + // Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + ReassignMergeRequest pulumi.BoolOutput `pulumi:"reassignMergeRequest"` + // Enable notifications for reopened issues. Can only be used when `level` is `custom`. + ReopenIssue pulumi.BoolOutput `pulumi:"reopenIssue"` + // Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + ReopenMergeRequest pulumi.BoolOutput `pulumi:"reopenMergeRequest"` + // Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + SuccessPipeline pulumi.BoolOutput `pulumi:"successPipeline"` +} + +// NewGlobalLevelNotifications registers a new resource with the given unique name, arguments, and options. +func NewGlobalLevelNotifications(ctx *pulumi.Context, + name string, args *GlobalLevelNotificationsArgs, opts ...pulumi.ResourceOption) (*GlobalLevelNotifications, error) { + if args == nil { + args = &GlobalLevelNotificationsArgs{} + } + + opts = internal.PkgResourceDefaultOpts(opts) + var resource GlobalLevelNotifications + err := ctx.RegisterResource("gitlab:index/globalLevelNotifications:GlobalLevelNotifications", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetGlobalLevelNotifications gets an existing GlobalLevelNotifications resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetGlobalLevelNotifications(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *GlobalLevelNotificationsState, opts ...pulumi.ResourceOption) (*GlobalLevelNotifications, error) { + var resource GlobalLevelNotifications + err := ctx.ReadResource("gitlab:index/globalLevelNotifications:GlobalLevelNotifications", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering GlobalLevelNotifications resources. +type globalLevelNotificationsState struct { + // Enable notifications for closed issues. Can only be used when `level` is `custom`. + CloseIssue *bool `pulumi:"closeIssue"` + // Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + CloseMergeRequest *bool `pulumi:"closeMergeRequest"` + // Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + FailedPipeline *bool `pulumi:"failedPipeline"` + // Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + FixedPipeline *bool `pulumi:"fixedPipeline"` + // Enable notifications for due issues. Can only be used when `level` is `custom`. + IssueDue *bool `pulumi:"issueDue"` + // The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + Level *string `pulumi:"level"` + // Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + MergeMergeRequest *bool `pulumi:"mergeMergeRequest"` + // Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + MergeWhenPipelineSucceeds *bool `pulumi:"mergeWhenPipelineSucceeds"` + // Enable notifications for moved projects. Can only be used when `level` is `custom`. + MovedProject *bool `pulumi:"movedProject"` + // Enable notifications for new issues. Can only be used when `level` is `custom`. + NewIssue *bool `pulumi:"newIssue"` + // Enable notifications for new merge requests. Can only be used when `level` is `custom`. + NewMergeRequest *bool `pulumi:"newMergeRequest"` + // Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + NewNote *bool `pulumi:"newNote"` + // Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + PushToMergeRequest *bool `pulumi:"pushToMergeRequest"` + // Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + ReassignIssue *bool `pulumi:"reassignIssue"` + // Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + ReassignMergeRequest *bool `pulumi:"reassignMergeRequest"` + // Enable notifications for reopened issues. Can only be used when `level` is `custom`. + ReopenIssue *bool `pulumi:"reopenIssue"` + // Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + ReopenMergeRequest *bool `pulumi:"reopenMergeRequest"` + // Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + SuccessPipeline *bool `pulumi:"successPipeline"` +} + +type GlobalLevelNotificationsState struct { + // Enable notifications for closed issues. Can only be used when `level` is `custom`. + CloseIssue pulumi.BoolPtrInput + // Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + CloseMergeRequest pulumi.BoolPtrInput + // Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + FailedPipeline pulumi.BoolPtrInput + // Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + FixedPipeline pulumi.BoolPtrInput + // Enable notifications for due issues. Can only be used when `level` is `custom`. + IssueDue pulumi.BoolPtrInput + // The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + Level pulumi.StringPtrInput + // Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + MergeMergeRequest pulumi.BoolPtrInput + // Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + MergeWhenPipelineSucceeds pulumi.BoolPtrInput + // Enable notifications for moved projects. Can only be used when `level` is `custom`. + MovedProject pulumi.BoolPtrInput + // Enable notifications for new issues. Can only be used when `level` is `custom`. + NewIssue pulumi.BoolPtrInput + // Enable notifications for new merge requests. Can only be used when `level` is `custom`. + NewMergeRequest pulumi.BoolPtrInput + // Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + NewNote pulumi.BoolPtrInput + // Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + PushToMergeRequest pulumi.BoolPtrInput + // Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + ReassignIssue pulumi.BoolPtrInput + // Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + ReassignMergeRequest pulumi.BoolPtrInput + // Enable notifications for reopened issues. Can only be used when `level` is `custom`. + ReopenIssue pulumi.BoolPtrInput + // Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + ReopenMergeRequest pulumi.BoolPtrInput + // Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + SuccessPipeline pulumi.BoolPtrInput +} + +func (GlobalLevelNotificationsState) ElementType() reflect.Type { + return reflect.TypeOf((*globalLevelNotificationsState)(nil)).Elem() +} + +type globalLevelNotificationsArgs struct { + // Enable notifications for closed issues. Can only be used when `level` is `custom`. + CloseIssue *bool `pulumi:"closeIssue"` + // Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + CloseMergeRequest *bool `pulumi:"closeMergeRequest"` + // Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + FailedPipeline *bool `pulumi:"failedPipeline"` + // Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + FixedPipeline *bool `pulumi:"fixedPipeline"` + // Enable notifications for due issues. Can only be used when `level` is `custom`. + IssueDue *bool `pulumi:"issueDue"` + // The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + Level *string `pulumi:"level"` + // Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + MergeMergeRequest *bool `pulumi:"mergeMergeRequest"` + // Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + MergeWhenPipelineSucceeds *bool `pulumi:"mergeWhenPipelineSucceeds"` + // Enable notifications for moved projects. Can only be used when `level` is `custom`. + MovedProject *bool `pulumi:"movedProject"` + // Enable notifications for new issues. Can only be used when `level` is `custom`. + NewIssue *bool `pulumi:"newIssue"` + // Enable notifications for new merge requests. Can only be used when `level` is `custom`. + NewMergeRequest *bool `pulumi:"newMergeRequest"` + // Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + NewNote *bool `pulumi:"newNote"` + // Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + PushToMergeRequest *bool `pulumi:"pushToMergeRequest"` + // Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + ReassignIssue *bool `pulumi:"reassignIssue"` + // Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + ReassignMergeRequest *bool `pulumi:"reassignMergeRequest"` + // Enable notifications for reopened issues. Can only be used when `level` is `custom`. + ReopenIssue *bool `pulumi:"reopenIssue"` + // Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + ReopenMergeRequest *bool `pulumi:"reopenMergeRequest"` + // Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + SuccessPipeline *bool `pulumi:"successPipeline"` +} + +// The set of arguments for constructing a GlobalLevelNotifications resource. +type GlobalLevelNotificationsArgs struct { + // Enable notifications for closed issues. Can only be used when `level` is `custom`. + CloseIssue pulumi.BoolPtrInput + // Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + CloseMergeRequest pulumi.BoolPtrInput + // Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + FailedPipeline pulumi.BoolPtrInput + // Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + FixedPipeline pulumi.BoolPtrInput + // Enable notifications for due issues. Can only be used when `level` is `custom`. + IssueDue pulumi.BoolPtrInput + // The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + Level pulumi.StringPtrInput + // Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + MergeMergeRequest pulumi.BoolPtrInput + // Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + MergeWhenPipelineSucceeds pulumi.BoolPtrInput + // Enable notifications for moved projects. Can only be used when `level` is `custom`. + MovedProject pulumi.BoolPtrInput + // Enable notifications for new issues. Can only be used when `level` is `custom`. + NewIssue pulumi.BoolPtrInput + // Enable notifications for new merge requests. Can only be used when `level` is `custom`. + NewMergeRequest pulumi.BoolPtrInput + // Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + NewNote pulumi.BoolPtrInput + // Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + PushToMergeRequest pulumi.BoolPtrInput + // Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + ReassignIssue pulumi.BoolPtrInput + // Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + ReassignMergeRequest pulumi.BoolPtrInput + // Enable notifications for reopened issues. Can only be used when `level` is `custom`. + ReopenIssue pulumi.BoolPtrInput + // Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + ReopenMergeRequest pulumi.BoolPtrInput + // Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + SuccessPipeline pulumi.BoolPtrInput +} + +func (GlobalLevelNotificationsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*globalLevelNotificationsArgs)(nil)).Elem() +} + +type GlobalLevelNotificationsInput interface { + pulumi.Input + + ToGlobalLevelNotificationsOutput() GlobalLevelNotificationsOutput + ToGlobalLevelNotificationsOutputWithContext(ctx context.Context) GlobalLevelNotificationsOutput +} + +func (*GlobalLevelNotifications) ElementType() reflect.Type { + return reflect.TypeOf((**GlobalLevelNotifications)(nil)).Elem() +} + +func (i *GlobalLevelNotifications) ToGlobalLevelNotificationsOutput() GlobalLevelNotificationsOutput { + return i.ToGlobalLevelNotificationsOutputWithContext(context.Background()) +} + +func (i *GlobalLevelNotifications) ToGlobalLevelNotificationsOutputWithContext(ctx context.Context) GlobalLevelNotificationsOutput { + return pulumi.ToOutputWithContext(ctx, i).(GlobalLevelNotificationsOutput) +} + +// GlobalLevelNotificationsArrayInput is an input type that accepts GlobalLevelNotificationsArray and GlobalLevelNotificationsArrayOutput values. +// You can construct a concrete instance of `GlobalLevelNotificationsArrayInput` via: +// +// GlobalLevelNotificationsArray{ GlobalLevelNotificationsArgs{...} } +type GlobalLevelNotificationsArrayInput interface { + pulumi.Input + + ToGlobalLevelNotificationsArrayOutput() GlobalLevelNotificationsArrayOutput + ToGlobalLevelNotificationsArrayOutputWithContext(context.Context) GlobalLevelNotificationsArrayOutput +} + +type GlobalLevelNotificationsArray []GlobalLevelNotificationsInput + +func (GlobalLevelNotificationsArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*GlobalLevelNotifications)(nil)).Elem() +} + +func (i GlobalLevelNotificationsArray) ToGlobalLevelNotificationsArrayOutput() GlobalLevelNotificationsArrayOutput { + return i.ToGlobalLevelNotificationsArrayOutputWithContext(context.Background()) +} + +func (i GlobalLevelNotificationsArray) ToGlobalLevelNotificationsArrayOutputWithContext(ctx context.Context) GlobalLevelNotificationsArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GlobalLevelNotificationsArrayOutput) +} + +// GlobalLevelNotificationsMapInput is an input type that accepts GlobalLevelNotificationsMap and GlobalLevelNotificationsMapOutput values. +// You can construct a concrete instance of `GlobalLevelNotificationsMapInput` via: +// +// GlobalLevelNotificationsMap{ "key": GlobalLevelNotificationsArgs{...} } +type GlobalLevelNotificationsMapInput interface { + pulumi.Input + + ToGlobalLevelNotificationsMapOutput() GlobalLevelNotificationsMapOutput + ToGlobalLevelNotificationsMapOutputWithContext(context.Context) GlobalLevelNotificationsMapOutput +} + +type GlobalLevelNotificationsMap map[string]GlobalLevelNotificationsInput + +func (GlobalLevelNotificationsMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*GlobalLevelNotifications)(nil)).Elem() +} + +func (i GlobalLevelNotificationsMap) ToGlobalLevelNotificationsMapOutput() GlobalLevelNotificationsMapOutput { + return i.ToGlobalLevelNotificationsMapOutputWithContext(context.Background()) +} + +func (i GlobalLevelNotificationsMap) ToGlobalLevelNotificationsMapOutputWithContext(ctx context.Context) GlobalLevelNotificationsMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(GlobalLevelNotificationsMapOutput) +} + +type GlobalLevelNotificationsOutput struct{ *pulumi.OutputState } + +func (GlobalLevelNotificationsOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GlobalLevelNotifications)(nil)).Elem() +} + +func (o GlobalLevelNotificationsOutput) ToGlobalLevelNotificationsOutput() GlobalLevelNotificationsOutput { + return o +} + +func (o GlobalLevelNotificationsOutput) ToGlobalLevelNotificationsOutputWithContext(ctx context.Context) GlobalLevelNotificationsOutput { + return o +} + +// Enable notifications for closed issues. Can only be used when `level` is `custom`. +func (o GlobalLevelNotificationsOutput) CloseIssue() pulumi.BoolOutput { + return o.ApplyT(func(v *GlobalLevelNotifications) pulumi.BoolOutput { return v.CloseIssue }).(pulumi.BoolOutput) +} + +// Enable notifications for closed merge requests. Can only be used when `level` is `custom`. +func (o GlobalLevelNotificationsOutput) CloseMergeRequest() pulumi.BoolOutput { + return o.ApplyT(func(v *GlobalLevelNotifications) pulumi.BoolOutput { return v.CloseMergeRequest }).(pulumi.BoolOutput) +} + +// Enable notifications for failed pipelines. Can only be used when `level` is `custom`. +func (o GlobalLevelNotificationsOutput) FailedPipeline() pulumi.BoolOutput { + return o.ApplyT(func(v *GlobalLevelNotifications) pulumi.BoolOutput { return v.FailedPipeline }).(pulumi.BoolOutput) +} + +// Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. +func (o GlobalLevelNotificationsOutput) FixedPipeline() pulumi.BoolOutput { + return o.ApplyT(func(v *GlobalLevelNotifications) pulumi.BoolOutput { return v.FixedPipeline }).(pulumi.BoolOutput) +} + +// Enable notifications for due issues. Can only be used when `level` is `custom`. +func (o GlobalLevelNotificationsOutput) IssueDue() pulumi.BoolOutput { + return o.ApplyT(func(v *GlobalLevelNotifications) pulumi.BoolOutput { return v.IssueDue }).(pulumi.BoolOutput) +} + +// The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. +func (o GlobalLevelNotificationsOutput) Level() pulumi.StringOutput { + return o.ApplyT(func(v *GlobalLevelNotifications) pulumi.StringOutput { return v.Level }).(pulumi.StringOutput) +} + +// Enable notifications for merged merge requests. Can only be used when `level` is `custom`. +func (o GlobalLevelNotificationsOutput) MergeMergeRequest() pulumi.BoolOutput { + return o.ApplyT(func(v *GlobalLevelNotifications) pulumi.BoolOutput { return v.MergeMergeRequest }).(pulumi.BoolOutput) +} + +// Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. +func (o GlobalLevelNotificationsOutput) MergeWhenPipelineSucceeds() pulumi.BoolOutput { + return o.ApplyT(func(v *GlobalLevelNotifications) pulumi.BoolOutput { return v.MergeWhenPipelineSucceeds }).(pulumi.BoolOutput) +} + +// Enable notifications for moved projects. Can only be used when `level` is `custom`. +func (o GlobalLevelNotificationsOutput) MovedProject() pulumi.BoolOutput { + return o.ApplyT(func(v *GlobalLevelNotifications) pulumi.BoolOutput { return v.MovedProject }).(pulumi.BoolOutput) +} + +// Enable notifications for new issues. Can only be used when `level` is `custom`. +func (o GlobalLevelNotificationsOutput) NewIssue() pulumi.BoolOutput { + return o.ApplyT(func(v *GlobalLevelNotifications) pulumi.BoolOutput { return v.NewIssue }).(pulumi.BoolOutput) +} + +// Enable notifications for new merge requests. Can only be used when `level` is `custom`. +func (o GlobalLevelNotificationsOutput) NewMergeRequest() pulumi.BoolOutput { + return o.ApplyT(func(v *GlobalLevelNotifications) pulumi.BoolOutput { return v.NewMergeRequest }).(pulumi.BoolOutput) +} + +// Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. +func (o GlobalLevelNotificationsOutput) NewNote() pulumi.BoolOutput { + return o.ApplyT(func(v *GlobalLevelNotifications) pulumi.BoolOutput { return v.NewNote }).(pulumi.BoolOutput) +} + +// Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. +func (o GlobalLevelNotificationsOutput) PushToMergeRequest() pulumi.BoolOutput { + return o.ApplyT(func(v *GlobalLevelNotifications) pulumi.BoolOutput { return v.PushToMergeRequest }).(pulumi.BoolOutput) +} + +// Enable notifications for issue reassignments. Can only be used when `level` is `custom`. +func (o GlobalLevelNotificationsOutput) ReassignIssue() pulumi.BoolOutput { + return o.ApplyT(func(v *GlobalLevelNotifications) pulumi.BoolOutput { return v.ReassignIssue }).(pulumi.BoolOutput) +} + +// Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. +func (o GlobalLevelNotificationsOutput) ReassignMergeRequest() pulumi.BoolOutput { + return o.ApplyT(func(v *GlobalLevelNotifications) pulumi.BoolOutput { return v.ReassignMergeRequest }).(pulumi.BoolOutput) +} + +// Enable notifications for reopened issues. Can only be used when `level` is `custom`. +func (o GlobalLevelNotificationsOutput) ReopenIssue() pulumi.BoolOutput { + return o.ApplyT(func(v *GlobalLevelNotifications) pulumi.BoolOutput { return v.ReopenIssue }).(pulumi.BoolOutput) +} + +// Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. +func (o GlobalLevelNotificationsOutput) ReopenMergeRequest() pulumi.BoolOutput { + return o.ApplyT(func(v *GlobalLevelNotifications) pulumi.BoolOutput { return v.ReopenMergeRequest }).(pulumi.BoolOutput) +} + +// Enable notifications for successful pipelines. Can only be used when `level` is `custom`. +func (o GlobalLevelNotificationsOutput) SuccessPipeline() pulumi.BoolOutput { + return o.ApplyT(func(v *GlobalLevelNotifications) pulumi.BoolOutput { return v.SuccessPipeline }).(pulumi.BoolOutput) +} + +type GlobalLevelNotificationsArrayOutput struct{ *pulumi.OutputState } + +func (GlobalLevelNotificationsArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*GlobalLevelNotifications)(nil)).Elem() +} + +func (o GlobalLevelNotificationsArrayOutput) ToGlobalLevelNotificationsArrayOutput() GlobalLevelNotificationsArrayOutput { + return o +} + +func (o GlobalLevelNotificationsArrayOutput) ToGlobalLevelNotificationsArrayOutputWithContext(ctx context.Context) GlobalLevelNotificationsArrayOutput { + return o +} + +func (o GlobalLevelNotificationsArrayOutput) Index(i pulumi.IntInput) GlobalLevelNotificationsOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *GlobalLevelNotifications { + return vs[0].([]*GlobalLevelNotifications)[vs[1].(int)] + }).(GlobalLevelNotificationsOutput) +} + +type GlobalLevelNotificationsMapOutput struct{ *pulumi.OutputState } + +func (GlobalLevelNotificationsMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*GlobalLevelNotifications)(nil)).Elem() +} + +func (o GlobalLevelNotificationsMapOutput) ToGlobalLevelNotificationsMapOutput() GlobalLevelNotificationsMapOutput { + return o +} + +func (o GlobalLevelNotificationsMapOutput) ToGlobalLevelNotificationsMapOutputWithContext(ctx context.Context) GlobalLevelNotificationsMapOutput { + return o +} + +func (o GlobalLevelNotificationsMapOutput) MapIndex(k pulumi.StringInput) GlobalLevelNotificationsOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *GlobalLevelNotifications { + return vs[0].(map[string]*GlobalLevelNotifications)[vs[1].(string)] + }).(GlobalLevelNotificationsOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*GlobalLevelNotificationsInput)(nil)).Elem(), &GlobalLevelNotifications{}) + pulumi.RegisterInputType(reflect.TypeOf((*GlobalLevelNotificationsArrayInput)(nil)).Elem(), GlobalLevelNotificationsArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GlobalLevelNotificationsMapInput)(nil)).Elem(), GlobalLevelNotificationsMap{}) + pulumi.RegisterOutputType(GlobalLevelNotificationsOutput{}) + pulumi.RegisterOutputType(GlobalLevelNotificationsArrayOutput{}) + pulumi.RegisterOutputType(GlobalLevelNotificationsMapOutput{}) +} diff --git a/sdk/go/gitlab/init.go b/sdk/go/gitlab/init.go index a951906f..83cdfeac 100644 --- a/sdk/go/gitlab/init.go +++ b/sdk/go/gitlab/init.go @@ -41,6 +41,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &DeployKeyEnable{} case "gitlab:index/deployToken:DeployToken": r = &DeployToken{} + case "gitlab:index/globalLevelNotifications:GlobalLevelNotifications": + r = &GlobalLevelNotifications{} case "gitlab:index/group:Group": r = &Group{} case "gitlab:index/groupAccessToken:GroupAccessToken": @@ -274,6 +276,11 @@ func init() { "index/deployToken", &module{version}, ) + pulumi.RegisterResourceModule( + "gitlab", + "index/globalLevelNotifications", + &module{version}, + ) pulumi.RegisterResourceModule( "gitlab", "index/group", diff --git a/sdk/go/gitlab/projectHook.go b/sdk/go/gitlab/projectHook.go index ea25e720..3b1ecdcd 100644 --- a/sdk/go/gitlab/projectHook.go +++ b/sdk/go/gitlab/projectHook.go @@ -92,7 +92,7 @@ type ProjectHook struct { TagPushEvents pulumi.BoolPtrOutput `pulumi:"tagPushEvents"` // A token to present when invoking the hook. The token is not available for imported resources. Token pulumi.StringPtrOutput `pulumi:"token"` - // The url of the hook to invoke. + // The url of the hook to invoke. Forces re-creation to preserve `token`. Url pulumi.StringOutput `pulumi:"url"` // Invoke the hook for wiki page events. WikiPageEvents pulumi.BoolPtrOutput `pulumi:"wikiPageEvents"` @@ -175,7 +175,7 @@ type projectHookState struct { TagPushEvents *bool `pulumi:"tagPushEvents"` // A token to present when invoking the hook. The token is not available for imported resources. Token *string `pulumi:"token"` - // The url of the hook to invoke. + // The url of the hook to invoke. Forces re-creation to preserve `token`. Url *string `pulumi:"url"` // Invoke the hook for wiki page events. WikiPageEvents *bool `pulumi:"wikiPageEvents"` @@ -216,7 +216,7 @@ type ProjectHookState struct { TagPushEvents pulumi.BoolPtrInput // A token to present when invoking the hook. The token is not available for imported resources. Token pulumi.StringPtrInput - // The url of the hook to invoke. + // The url of the hook to invoke. Forces re-creation to preserve `token`. Url pulumi.StringPtrInput // Invoke the hook for wiki page events. WikiPageEvents pulumi.BoolPtrInput @@ -257,7 +257,7 @@ type projectHookArgs struct { TagPushEvents *bool `pulumi:"tagPushEvents"` // A token to present when invoking the hook. The token is not available for imported resources. Token *string `pulumi:"token"` - // The url of the hook to invoke. + // The url of the hook to invoke. Forces re-creation to preserve `token`. Url string `pulumi:"url"` // Invoke the hook for wiki page events. WikiPageEvents *bool `pulumi:"wikiPageEvents"` @@ -295,7 +295,7 @@ type ProjectHookArgs struct { TagPushEvents pulumi.BoolPtrInput // A token to present when invoking the hook. The token is not available for imported resources. Token pulumi.StringPtrInput - // The url of the hook to invoke. + // The url of the hook to invoke. Forces re-creation to preserve `token`. Url pulumi.StringInput // Invoke the hook for wiki page events. WikiPageEvents pulumi.BoolPtrInput @@ -473,7 +473,7 @@ func (o ProjectHookOutput) Token() pulumi.StringPtrOutput { return o.ApplyT(func(v *ProjectHook) pulumi.StringPtrOutput { return v.Token }).(pulumi.StringPtrOutput) } -// The url of the hook to invoke. +// The url of the hook to invoke. Forces re-creation to preserve `token`. func (o ProjectHookOutput) Url() pulumi.StringOutput { return o.ApplyT(func(v *ProjectHook) pulumi.StringOutput { return v.Url }).(pulumi.StringOutput) } diff --git a/sdk/go/gitlab/pulumiTypes.go b/sdk/go/gitlab/pulumiTypes.go index 24df75c4..76c81ca3 100644 --- a/sdk/go/gitlab/pulumiTypes.go +++ b/sdk/go/gitlab/pulumiTypes.go @@ -3487,6 +3487,124 @@ func (o GetGroupMembershipMemberArrayOutput) Index(i pulumi.IntInput) GetGroupMe }).(GetGroupMembershipMemberOutput) } +type GetGroupSharedWithGroup struct { + ExpiresAt string `pulumi:"expiresAt"` + GroupAccessLevel int `pulumi:"groupAccessLevel"` + GroupFullPath string `pulumi:"groupFullPath"` + GroupId int `pulumi:"groupId"` + GroupName string `pulumi:"groupName"` +} + +// GetGroupSharedWithGroupInput is an input type that accepts GetGroupSharedWithGroupArgs and GetGroupSharedWithGroupOutput values. +// You can construct a concrete instance of `GetGroupSharedWithGroupInput` via: +// +// GetGroupSharedWithGroupArgs{...} +type GetGroupSharedWithGroupInput interface { + pulumi.Input + + ToGetGroupSharedWithGroupOutput() GetGroupSharedWithGroupOutput + ToGetGroupSharedWithGroupOutputWithContext(context.Context) GetGroupSharedWithGroupOutput +} + +type GetGroupSharedWithGroupArgs struct { + ExpiresAt pulumi.StringInput `pulumi:"expiresAt"` + GroupAccessLevel pulumi.IntInput `pulumi:"groupAccessLevel"` + GroupFullPath pulumi.StringInput `pulumi:"groupFullPath"` + GroupId pulumi.IntInput `pulumi:"groupId"` + GroupName pulumi.StringInput `pulumi:"groupName"` +} + +func (GetGroupSharedWithGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetGroupSharedWithGroup)(nil)).Elem() +} + +func (i GetGroupSharedWithGroupArgs) ToGetGroupSharedWithGroupOutput() GetGroupSharedWithGroupOutput { + return i.ToGetGroupSharedWithGroupOutputWithContext(context.Background()) +} + +func (i GetGroupSharedWithGroupArgs) ToGetGroupSharedWithGroupOutputWithContext(ctx context.Context) GetGroupSharedWithGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetGroupSharedWithGroupOutput) +} + +// GetGroupSharedWithGroupArrayInput is an input type that accepts GetGroupSharedWithGroupArray and GetGroupSharedWithGroupArrayOutput values. +// You can construct a concrete instance of `GetGroupSharedWithGroupArrayInput` via: +// +// GetGroupSharedWithGroupArray{ GetGroupSharedWithGroupArgs{...} } +type GetGroupSharedWithGroupArrayInput interface { + pulumi.Input + + ToGetGroupSharedWithGroupArrayOutput() GetGroupSharedWithGroupArrayOutput + ToGetGroupSharedWithGroupArrayOutputWithContext(context.Context) GetGroupSharedWithGroupArrayOutput +} + +type GetGroupSharedWithGroupArray []GetGroupSharedWithGroupInput + +func (GetGroupSharedWithGroupArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetGroupSharedWithGroup)(nil)).Elem() +} + +func (i GetGroupSharedWithGroupArray) ToGetGroupSharedWithGroupArrayOutput() GetGroupSharedWithGroupArrayOutput { + return i.ToGetGroupSharedWithGroupArrayOutputWithContext(context.Background()) +} + +func (i GetGroupSharedWithGroupArray) ToGetGroupSharedWithGroupArrayOutputWithContext(ctx context.Context) GetGroupSharedWithGroupArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetGroupSharedWithGroupArrayOutput) +} + +type GetGroupSharedWithGroupOutput struct{ *pulumi.OutputState } + +func (GetGroupSharedWithGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetGroupSharedWithGroup)(nil)).Elem() +} + +func (o GetGroupSharedWithGroupOutput) ToGetGroupSharedWithGroupOutput() GetGroupSharedWithGroupOutput { + return o +} + +func (o GetGroupSharedWithGroupOutput) ToGetGroupSharedWithGroupOutputWithContext(ctx context.Context) GetGroupSharedWithGroupOutput { + return o +} + +func (o GetGroupSharedWithGroupOutput) ExpiresAt() pulumi.StringOutput { + return o.ApplyT(func(v GetGroupSharedWithGroup) string { return v.ExpiresAt }).(pulumi.StringOutput) +} + +func (o GetGroupSharedWithGroupOutput) GroupAccessLevel() pulumi.IntOutput { + return o.ApplyT(func(v GetGroupSharedWithGroup) int { return v.GroupAccessLevel }).(pulumi.IntOutput) +} + +func (o GetGroupSharedWithGroupOutput) GroupFullPath() pulumi.StringOutput { + return o.ApplyT(func(v GetGroupSharedWithGroup) string { return v.GroupFullPath }).(pulumi.StringOutput) +} + +func (o GetGroupSharedWithGroupOutput) GroupId() pulumi.IntOutput { + return o.ApplyT(func(v GetGroupSharedWithGroup) int { return v.GroupId }).(pulumi.IntOutput) +} + +func (o GetGroupSharedWithGroupOutput) GroupName() pulumi.StringOutput { + return o.ApplyT(func(v GetGroupSharedWithGroup) string { return v.GroupName }).(pulumi.StringOutput) +} + +type GetGroupSharedWithGroupArrayOutput struct{ *pulumi.OutputState } + +func (GetGroupSharedWithGroupArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetGroupSharedWithGroup)(nil)).Elem() +} + +func (o GetGroupSharedWithGroupArrayOutput) ToGetGroupSharedWithGroupArrayOutput() GetGroupSharedWithGroupArrayOutput { + return o +} + +func (o GetGroupSharedWithGroupArrayOutput) ToGetGroupSharedWithGroupArrayOutputWithContext(ctx context.Context) GetGroupSharedWithGroupArrayOutput { + return o +} + +func (o GetGroupSharedWithGroupArrayOutput) Index(i pulumi.IntInput) GetGroupSharedWithGroupOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetGroupSharedWithGroup { + return vs[0].([]GetGroupSharedWithGroup)[vs[1].(int)] + }).(GetGroupSharedWithGroupOutput) +} + type GetGroupSubgroupsSubgroup struct { AutoDevopsEnabled bool `pulumi:"autoDevopsEnabled"` AvatarUrl string `pulumi:"avatarUrl"` @@ -6770,6 +6888,118 @@ func (o GetProjectPushRuleArrayOutput) Index(i pulumi.IntInput) GetProjectPushRu }).(GetProjectPushRuleOutput) } +type GetProjectSharedWithGroup struct { + GroupAccessLevel int `pulumi:"groupAccessLevel"` + GroupFullPath string `pulumi:"groupFullPath"` + GroupId int `pulumi:"groupId"` + GroupName string `pulumi:"groupName"` +} + +// GetProjectSharedWithGroupInput is an input type that accepts GetProjectSharedWithGroupArgs and GetProjectSharedWithGroupOutput values. +// You can construct a concrete instance of `GetProjectSharedWithGroupInput` via: +// +// GetProjectSharedWithGroupArgs{...} +type GetProjectSharedWithGroupInput interface { + pulumi.Input + + ToGetProjectSharedWithGroupOutput() GetProjectSharedWithGroupOutput + ToGetProjectSharedWithGroupOutputWithContext(context.Context) GetProjectSharedWithGroupOutput +} + +type GetProjectSharedWithGroupArgs struct { + GroupAccessLevel pulumi.IntInput `pulumi:"groupAccessLevel"` + GroupFullPath pulumi.StringInput `pulumi:"groupFullPath"` + GroupId pulumi.IntInput `pulumi:"groupId"` + GroupName pulumi.StringInput `pulumi:"groupName"` +} + +func (GetProjectSharedWithGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetProjectSharedWithGroup)(nil)).Elem() +} + +func (i GetProjectSharedWithGroupArgs) ToGetProjectSharedWithGroupOutput() GetProjectSharedWithGroupOutput { + return i.ToGetProjectSharedWithGroupOutputWithContext(context.Background()) +} + +func (i GetProjectSharedWithGroupArgs) ToGetProjectSharedWithGroupOutputWithContext(ctx context.Context) GetProjectSharedWithGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetProjectSharedWithGroupOutput) +} + +// GetProjectSharedWithGroupArrayInput is an input type that accepts GetProjectSharedWithGroupArray and GetProjectSharedWithGroupArrayOutput values. +// You can construct a concrete instance of `GetProjectSharedWithGroupArrayInput` via: +// +// GetProjectSharedWithGroupArray{ GetProjectSharedWithGroupArgs{...} } +type GetProjectSharedWithGroupArrayInput interface { + pulumi.Input + + ToGetProjectSharedWithGroupArrayOutput() GetProjectSharedWithGroupArrayOutput + ToGetProjectSharedWithGroupArrayOutputWithContext(context.Context) GetProjectSharedWithGroupArrayOutput +} + +type GetProjectSharedWithGroupArray []GetProjectSharedWithGroupInput + +func (GetProjectSharedWithGroupArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetProjectSharedWithGroup)(nil)).Elem() +} + +func (i GetProjectSharedWithGroupArray) ToGetProjectSharedWithGroupArrayOutput() GetProjectSharedWithGroupArrayOutput { + return i.ToGetProjectSharedWithGroupArrayOutputWithContext(context.Background()) +} + +func (i GetProjectSharedWithGroupArray) ToGetProjectSharedWithGroupArrayOutputWithContext(ctx context.Context) GetProjectSharedWithGroupArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetProjectSharedWithGroupArrayOutput) +} + +type GetProjectSharedWithGroupOutput struct{ *pulumi.OutputState } + +func (GetProjectSharedWithGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetProjectSharedWithGroup)(nil)).Elem() +} + +func (o GetProjectSharedWithGroupOutput) ToGetProjectSharedWithGroupOutput() GetProjectSharedWithGroupOutput { + return o +} + +func (o GetProjectSharedWithGroupOutput) ToGetProjectSharedWithGroupOutputWithContext(ctx context.Context) GetProjectSharedWithGroupOutput { + return o +} + +func (o GetProjectSharedWithGroupOutput) GroupAccessLevel() pulumi.IntOutput { + return o.ApplyT(func(v GetProjectSharedWithGroup) int { return v.GroupAccessLevel }).(pulumi.IntOutput) +} + +func (o GetProjectSharedWithGroupOutput) GroupFullPath() pulumi.StringOutput { + return o.ApplyT(func(v GetProjectSharedWithGroup) string { return v.GroupFullPath }).(pulumi.StringOutput) +} + +func (o GetProjectSharedWithGroupOutput) GroupId() pulumi.IntOutput { + return o.ApplyT(func(v GetProjectSharedWithGroup) int { return v.GroupId }).(pulumi.IntOutput) +} + +func (o GetProjectSharedWithGroupOutput) GroupName() pulumi.StringOutput { + return o.ApplyT(func(v GetProjectSharedWithGroup) string { return v.GroupName }).(pulumi.StringOutput) +} + +type GetProjectSharedWithGroupArrayOutput struct{ *pulumi.OutputState } + +func (GetProjectSharedWithGroupArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetProjectSharedWithGroup)(nil)).Elem() +} + +func (o GetProjectSharedWithGroupArrayOutput) ToGetProjectSharedWithGroupArrayOutput() GetProjectSharedWithGroupArrayOutput { + return o +} + +func (o GetProjectSharedWithGroupArrayOutput) ToGetProjectSharedWithGroupArrayOutputWithContext(ctx context.Context) GetProjectSharedWithGroupArrayOutput { + return o +} + +func (o GetProjectSharedWithGroupArrayOutput) Index(i pulumi.IntInput) GetProjectSharedWithGroupOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetProjectSharedWithGroup { + return vs[0].([]GetProjectSharedWithGroup)[vs[1].(int)] + }).(GetProjectSharedWithGroupOutput) +} + type GetProjectTagCommit struct { AuthorEmail string `pulumi:"authorEmail"` AuthorName string `pulumi:"authorName"` @@ -9318,6 +9548,7 @@ type GetUsersUser struct { External bool `pulumi:"external"` Id int `pulumi:"id"` IsAdmin bool `pulumi:"isAdmin"` + IsBot bool `pulumi:"isBot"` LastSignInAt string `pulumi:"lastSignInAt"` Linkedin string `pulumi:"linkedin"` Location string `pulumi:"location"` @@ -9359,6 +9590,7 @@ type GetUsersUserArgs struct { External pulumi.BoolInput `pulumi:"external"` Id pulumi.IntInput `pulumi:"id"` IsAdmin pulumi.BoolInput `pulumi:"isAdmin"` + IsBot pulumi.BoolInput `pulumi:"isBot"` LastSignInAt pulumi.StringInput `pulumi:"lastSignInAt"` Linkedin pulumi.StringInput `pulumi:"linkedin"` Location pulumi.StringInput `pulumi:"location"` @@ -9475,6 +9707,10 @@ func (o GetUsersUserOutput) IsAdmin() pulumi.BoolOutput { return o.ApplyT(func(v GetUsersUser) bool { return v.IsAdmin }).(pulumi.BoolOutput) } +func (o GetUsersUserOutput) IsBot() pulumi.BoolOutput { + return o.ApplyT(func(v GetUsersUser) bool { return v.IsBot }).(pulumi.BoolOutput) +} + func (o GetUsersUserOutput) LastSignInAt() pulumi.StringOutput { return o.ApplyT(func(v GetUsersUser) string { return v.LastSignInAt }).(pulumi.StringOutput) } @@ -9600,6 +9836,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetGroupHooksHookArrayInput)(nil)).Elem(), GetGroupHooksHookArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetGroupMembershipMemberInput)(nil)).Elem(), GetGroupMembershipMemberArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetGroupMembershipMemberArrayInput)(nil)).Elem(), GetGroupMembershipMemberArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetGroupSharedWithGroupInput)(nil)).Elem(), GetGroupSharedWithGroupArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetGroupSharedWithGroupArrayInput)(nil)).Elem(), GetGroupSharedWithGroupArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetGroupSubgroupsSubgroupInput)(nil)).Elem(), GetGroupSubgroupsSubgroupArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetGroupSubgroupsSubgroupArrayInput)(nil)).Elem(), GetGroupSubgroupsSubgroupArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetGroupVariablesVariableInput)(nil)).Elem(), GetGroupVariablesVariableArgs{}) @@ -9643,6 +9881,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetProjectProtectedBranchesProtectedBranchPushAccessLevelArrayInput)(nil)).Elem(), GetProjectProtectedBranchesProtectedBranchPushAccessLevelArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetProjectPushRuleInput)(nil)).Elem(), GetProjectPushRuleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetProjectPushRuleArrayInput)(nil)).Elem(), GetProjectPushRuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetProjectSharedWithGroupInput)(nil)).Elem(), GetProjectSharedWithGroupArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetProjectSharedWithGroupArrayInput)(nil)).Elem(), GetProjectSharedWithGroupArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetProjectTagCommitInput)(nil)).Elem(), GetProjectTagCommitArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetProjectTagCommitArrayInput)(nil)).Elem(), GetProjectTagCommitArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetProjectTagReleaseInput)(nil)).Elem(), GetProjectTagReleaseArgs{}) @@ -9721,6 +9961,8 @@ func init() { pulumi.RegisterOutputType(GetGroupHooksHookArrayOutput{}) pulumi.RegisterOutputType(GetGroupMembershipMemberOutput{}) pulumi.RegisterOutputType(GetGroupMembershipMemberArrayOutput{}) + pulumi.RegisterOutputType(GetGroupSharedWithGroupOutput{}) + pulumi.RegisterOutputType(GetGroupSharedWithGroupArrayOutput{}) pulumi.RegisterOutputType(GetGroupSubgroupsSubgroupOutput{}) pulumi.RegisterOutputType(GetGroupSubgroupsSubgroupArrayOutput{}) pulumi.RegisterOutputType(GetGroupVariablesVariableOutput{}) @@ -9764,6 +10006,8 @@ func init() { pulumi.RegisterOutputType(GetProjectProtectedBranchesProtectedBranchPushAccessLevelArrayOutput{}) pulumi.RegisterOutputType(GetProjectPushRuleOutput{}) pulumi.RegisterOutputType(GetProjectPushRuleArrayOutput{}) + pulumi.RegisterOutputType(GetProjectSharedWithGroupOutput{}) + pulumi.RegisterOutputType(GetProjectSharedWithGroupArrayOutput{}) pulumi.RegisterOutputType(GetProjectTagCommitOutput{}) pulumi.RegisterOutputType(GetProjectTagCommitArrayOutput{}) pulumi.RegisterOutputType(GetProjectTagReleaseOutput{}) diff --git a/sdk/java/src/main/java/com/pulumi/gitlab/ApplicationSettings.java b/sdk/java/src/main/java/com/pulumi/gitlab/ApplicationSettings.java index d14a1aaa..0a688d55 100644 --- a/sdk/java/src/main/java/com/pulumi/gitlab/ApplicationSettings.java +++ b/sdk/java/src/main/java/com/pulumi/gitlab/ApplicationSettings.java @@ -571,34 +571,6 @@ public Output defaultProjectsLimit() { public Output defaultSnippetVisibility() { return this.defaultSnippetVisibility; } - /** - * Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - * - */ - @Export(name="delayedGroupDeletion", refs={Boolean.class}, tree="[0]") - private Output delayedGroupDeletion; - - /** - * @return Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - * - */ - public Output delayedGroupDeletion() { - return this.delayedGroupDeletion; - } - /** - * Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. - * - */ - @Export(name="delayedProjectDeletion", refs={Boolean.class}, tree="[0]") - private Output delayedProjectDeletion; - - /** - * @return Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. - * - */ - public Output delayedProjectDeletion() { - return this.delayedProjectDeletion; - } /** * Enable inactive project deletion feature. Introduced in GitLab 14.10. Became operational in GitLab 15.0 (with feature flag inactive*projects*deletion). * @@ -614,14 +586,14 @@ public Output deleteInactiveProjects() { return this.deleteInactiveProjects; } /** - * The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + * The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. * */ @Export(name="deletionAdjournedPeriod", refs={Integer.class}, tree="[0]") private Output deletionAdjournedPeriod; /** - * @return The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + * @return The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. * */ public Output deletionAdjournedPeriod() { @@ -1594,14 +1566,18 @@ public Output homePageUrl() { return this.homePageUrl; } /** - * (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + * Enable or disable Git housekeeping. + * If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + * Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. * */ @Export(name="housekeepingEnabled", refs={Boolean.class}, tree="[0]") private Output housekeepingEnabled; /** - * @return (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + * @return Enable or disable Git housekeeping. + * If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + * Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. * */ public Output housekeepingEnabled() { @@ -1610,7 +1586,11 @@ public Output housekeepingEnabled() { /** * Number of Git pushes after which an incremental git repack is run. * + * @deprecated + * housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. */ @Export(name="housekeepingFullRepackPeriod", refs={Integer.class}, tree="[0]") private Output housekeepingFullRepackPeriod; @@ -1624,7 +1604,11 @@ public Output housekeepingFullRepackPeriod() { /** * Number of Git pushes after which git gc is run. * + * @deprecated + * housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. */ @Export(name="housekeepingGcPeriod", refs={Integer.class}, tree="[0]") private Output housekeepingGcPeriod; @@ -1638,7 +1622,11 @@ public Output housekeepingGcPeriod() { /** * Number of Git pushes after which an incremental git repack is run. * + * @deprecated + * housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. */ @Export(name="housekeepingIncrementalRepackPeriod", refs={Integer.class}, tree="[0]") private Output housekeepingIncrementalRepackPeriod; @@ -1649,6 +1637,20 @@ public Output housekeepingGcPeriod() { public Output housekeepingIncrementalRepackPeriod() { return this.housekeepingIncrementalRepackPeriod; } + /** + * Number of Git pushes after which an incremental git repack is run. + * + */ + @Export(name="housekeepingOptimizeRepositoryPeriod", refs={Integer.class}, tree="[0]") + private Output housekeepingOptimizeRepositoryPeriod; + + /** + * @return Number of Git pushes after which an incremental git repack is run. + * + */ + public Output housekeepingOptimizeRepositoryPeriod() { + return this.housekeepingOptimizeRepositoryPeriod; + } /** * Enable HTML emails. * diff --git a/sdk/java/src/main/java/com/pulumi/gitlab/ApplicationSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/gitlab/ApplicationSettingsArgs.java index 36077428..63be359e 100644 --- a/sdk/java/src/main/java/com/pulumi/gitlab/ApplicationSettingsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gitlab/ApplicationSettingsArgs.java @@ -575,36 +575,6 @@ public Optional> defaultSnippetVisibility() { return Optional.ofNullable(this.defaultSnippetVisibility); } - /** - * Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - * - */ - @Import(name="delayedGroupDeletion") - private @Nullable Output delayedGroupDeletion; - - /** - * @return Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - * - */ - public Optional> delayedGroupDeletion() { - return Optional.ofNullable(this.delayedGroupDeletion); - } - - /** - * Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. - * - */ - @Import(name="delayedProjectDeletion") - private @Nullable Output delayedProjectDeletion; - - /** - * @return Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. - * - */ - public Optional> delayedProjectDeletion() { - return Optional.ofNullable(this.delayedProjectDeletion); - } - /** * Enable inactive project deletion feature. Introduced in GitLab 14.10. Became operational in GitLab 15.0 (with feature flag inactive*projects*deletion). * @@ -621,14 +591,14 @@ public Optional> deleteInactiveProjects() { } /** - * The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + * The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. * */ @Import(name="deletionAdjournedPeriod") private @Nullable Output deletionAdjournedPeriod; /** - * @return The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + * @return The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. * */ public Optional> deletionAdjournedPeriod() { @@ -1671,14 +1641,18 @@ public Optional> homePageUrl() { } /** - * (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + * Enable or disable Git housekeeping. + * If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + * Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. * */ @Import(name="housekeepingEnabled") private @Nullable Output housekeepingEnabled; /** - * @return (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + * @return Enable or disable Git housekeeping. + * If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + * Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. * */ public Optional> housekeepingEnabled() { @@ -1688,14 +1662,22 @@ public Optional> housekeepingEnabled() { /** * Number of Git pushes after which an incremental git repack is run. * + * @deprecated + * housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. */ @Import(name="housekeepingFullRepackPeriod") private @Nullable Output housekeepingFullRepackPeriod; /** * @return Number of Git pushes after which an incremental git repack is run. * + * @deprecated + * housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. */ public Optional> housekeepingFullRepackPeriod() { return Optional.ofNullable(this.housekeepingFullRepackPeriod); } @@ -1703,14 +1685,22 @@ public Optional> housekeepingFullRepackPeriod() { /** * Number of Git pushes after which git gc is run. * + * @deprecated + * housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. */ @Import(name="housekeepingGcPeriod") private @Nullable Output housekeepingGcPeriod; /** * @return Number of Git pushes after which git gc is run. * + * @deprecated + * housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. */ public Optional> housekeepingGcPeriod() { return Optional.ofNullable(this.housekeepingGcPeriod); } @@ -1718,18 +1708,41 @@ public Optional> housekeepingGcPeriod() { /** * Number of Git pushes after which an incremental git repack is run. * + * @deprecated + * housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. */ @Import(name="housekeepingIncrementalRepackPeriod") private @Nullable Output housekeepingIncrementalRepackPeriod; /** * @return Number of Git pushes after which an incremental git repack is run. * + * @deprecated + * housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. */ public Optional> housekeepingIncrementalRepackPeriod() { return Optional.ofNullable(this.housekeepingIncrementalRepackPeriod); } + /** + * Number of Git pushes after which an incremental git repack is run. + * + */ + @Import(name="housekeepingOptimizeRepositoryPeriod") + private @Nullable Output housekeepingOptimizeRepositoryPeriod; + + /** + * @return Number of Git pushes after which an incremental git repack is run. + * + */ + public Optional> housekeepingOptimizeRepositoryPeriod() { + return Optional.ofNullable(this.housekeepingOptimizeRepositoryPeriod); + } + /** * Enable HTML emails. * @@ -3690,8 +3703,6 @@ private ApplicationSettingsArgs(ApplicationSettingsArgs $) { this.defaultProjectVisibility = $.defaultProjectVisibility; this.defaultProjectsLimit = $.defaultProjectsLimit; this.defaultSnippetVisibility = $.defaultSnippetVisibility; - this.delayedGroupDeletion = $.delayedGroupDeletion; - this.delayedProjectDeletion = $.delayedProjectDeletion; this.deleteInactiveProjects = $.deleteInactiveProjects; this.deletionAdjournedPeriod = $.deletionAdjournedPeriod; this.diffMaxFiles = $.diffMaxFiles; @@ -3767,6 +3778,7 @@ private ApplicationSettingsArgs(ApplicationSettingsArgs $) { this.housekeepingFullRepackPeriod = $.housekeepingFullRepackPeriod; this.housekeepingGcPeriod = $.housekeepingGcPeriod; this.housekeepingIncrementalRepackPeriod = $.housekeepingIncrementalRepackPeriod; + this.housekeepingOptimizeRepositoryPeriod = $.housekeepingOptimizeRepositoryPeriod; this.htmlEmailsEnabled = $.htmlEmailsEnabled; this.importSources = $.importSources; this.inProductMarketingEmailsEnabled = $.inProductMarketingEmailsEnabled; @@ -4702,48 +4714,6 @@ public Builder defaultSnippetVisibility(String defaultSnippetVisibility) { return defaultSnippetVisibility(Output.of(defaultSnippetVisibility)); } - /** - * @param delayedGroupDeletion Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - * - * @return builder - * - */ - public Builder delayedGroupDeletion(@Nullable Output delayedGroupDeletion) { - $.delayedGroupDeletion = delayedGroupDeletion; - return this; - } - - /** - * @param delayedGroupDeletion Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - * - * @return builder - * - */ - public Builder delayedGroupDeletion(Boolean delayedGroupDeletion) { - return delayedGroupDeletion(Output.of(delayedGroupDeletion)); - } - - /** - * @param delayedProjectDeletion Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. - * - * @return builder - * - */ - public Builder delayedProjectDeletion(@Nullable Output delayedProjectDeletion) { - $.delayedProjectDeletion = delayedProjectDeletion; - return this; - } - - /** - * @param delayedProjectDeletion Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. - * - * @return builder - * - */ - public Builder delayedProjectDeletion(Boolean delayedProjectDeletion) { - return delayedProjectDeletion(Output.of(delayedProjectDeletion)); - } - /** * @param deleteInactiveProjects Enable inactive project deletion feature. Introduced in GitLab 14.10. Became operational in GitLab 15.0 (with feature flag inactive*projects*deletion). * @@ -4766,7 +4736,7 @@ public Builder deleteInactiveProjects(Boolean deleteInactiveProjects) { } /** - * @param deletionAdjournedPeriod The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + * @param deletionAdjournedPeriod The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. * * @return builder * @@ -4777,7 +4747,7 @@ public Builder deletionAdjournedPeriod(@Nullable Output deletionAdjourn } /** - * @param deletionAdjournedPeriod The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + * @param deletionAdjournedPeriod The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. * * @return builder * @@ -6306,7 +6276,9 @@ public Builder homePageUrl(String homePageUrl) { } /** - * @param housekeepingEnabled (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + * @param housekeepingEnabled Enable or disable Git housekeeping. + * If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + * Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. * * @return builder * @@ -6317,7 +6289,9 @@ public Builder housekeepingEnabled(@Nullable Output housekeepingEnabled } /** - * @param housekeepingEnabled (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + * @param housekeepingEnabled Enable or disable Git housekeeping. + * If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + * Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. * * @return builder * @@ -6331,7 +6305,11 @@ public Builder housekeepingEnabled(Boolean housekeepingEnabled) { * * @return builder * + * @deprecated + * housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. */ public Builder housekeepingFullRepackPeriod(@Nullable Output housekeepingFullRepackPeriod) { $.housekeepingFullRepackPeriod = housekeepingFullRepackPeriod; return this; @@ -6342,7 +6320,11 @@ public Builder housekeepingFullRepackPeriod(@Nullable Output housekeepi * * @return builder * + * @deprecated + * housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. */ public Builder housekeepingFullRepackPeriod(Integer housekeepingFullRepackPeriod) { return housekeepingFullRepackPeriod(Output.of(housekeepingFullRepackPeriod)); } @@ -6352,7 +6334,11 @@ public Builder housekeepingFullRepackPeriod(Integer housekeepingFullRepackPeriod * * @return builder * + * @deprecated + * housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. */ public Builder housekeepingGcPeriod(@Nullable Output housekeepingGcPeriod) { $.housekeepingGcPeriod = housekeepingGcPeriod; return this; @@ -6363,7 +6349,11 @@ public Builder housekeepingGcPeriod(@Nullable Output housekeepingGcPeri * * @return builder * + * @deprecated + * housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. */ public Builder housekeepingGcPeriod(Integer housekeepingGcPeriod) { return housekeepingGcPeriod(Output.of(housekeepingGcPeriod)); } @@ -6373,7 +6363,11 @@ public Builder housekeepingGcPeriod(Integer housekeepingGcPeriod) { * * @return builder * + * @deprecated + * housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. */ public Builder housekeepingIncrementalRepackPeriod(@Nullable Output housekeepingIncrementalRepackPeriod) { $.housekeepingIncrementalRepackPeriod = housekeepingIncrementalRepackPeriod; return this; @@ -6384,11 +6378,36 @@ public Builder housekeepingIncrementalRepackPeriod(@Nullable Output hou * * @return builder * + * @deprecated + * housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. */ public Builder housekeepingIncrementalRepackPeriod(Integer housekeepingIncrementalRepackPeriod) { return housekeepingIncrementalRepackPeriod(Output.of(housekeepingIncrementalRepackPeriod)); } + /** + * @param housekeepingOptimizeRepositoryPeriod Number of Git pushes after which an incremental git repack is run. + * + * @return builder + * + */ + public Builder housekeepingOptimizeRepositoryPeriod(@Nullable Output housekeepingOptimizeRepositoryPeriod) { + $.housekeepingOptimizeRepositoryPeriod = housekeepingOptimizeRepositoryPeriod; + return this; + } + + /** + * @param housekeepingOptimizeRepositoryPeriod Number of Git pushes after which an incremental git repack is run. + * + * @return builder + * + */ + public Builder housekeepingOptimizeRepositoryPeriod(Integer housekeepingOptimizeRepositoryPeriod) { + return housekeepingOptimizeRepositoryPeriod(Output.of(housekeepingOptimizeRepositoryPeriod)); + } + /** * @param htmlEmailsEnabled Enable HTML emails. * diff --git a/sdk/java/src/main/java/com/pulumi/gitlab/GlobalLevelNotifications.java b/sdk/java/src/main/java/com/pulumi/gitlab/GlobalLevelNotifications.java new file mode 100644 index 00000000..b2d62413 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gitlab/GlobalLevelNotifications.java @@ -0,0 +1,365 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gitlab; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.gitlab.GlobalLevelNotificationsArgs; +import com.pulumi.gitlab.Utilities; +import com.pulumi.gitlab.inputs.GlobalLevelNotificationsState; +import java.lang.Boolean; +import java.lang.String; +import javax.annotation.Nullable; + +/** + * The `gitlab.GlobalLevelNotifications` resource allows to manage global notifications. + * + * **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/ee/api/notification_settings.html#group--project-level-notification-settings) + * + * ## Example Usage + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.gitlab.GlobalLevelNotifications; + * import com.pulumi.gitlab.GlobalLevelNotificationsArgs; + * import java.util.List; + * import java.util.ArrayList; + * import java.util.Map; + * import java.io.File; + * import java.nio.file.Files; + * import java.nio.file.Paths; + * + * public class App { + * public static void main(String[] args) { + * Pulumi.run(App::stack); + * } + * + * public static void stack(Context ctx) { + * var foo = new GlobalLevelNotifications("foo", GlobalLevelNotificationsArgs.builder() + * .level("custom") + * .newMergeRequest(true) + * .build()); + * + * } + * } + * ``` + * + * ## Import + * + * NoteYou can import a global notification state using "gitlab" as the ID. The ID will always be gitlab, because the global notificatio only exists once per user + * + * ```sh + * $ pulumi import gitlab:index/globalLevelNotifications:GlobalLevelNotifications example gitlab + * ``` + * + */ +@ResourceType(type="gitlab:index/globalLevelNotifications:GlobalLevelNotifications") +public class GlobalLevelNotifications extends com.pulumi.resources.CustomResource { + /** + * Enable notifications for closed issues. Can only be used when `level` is `custom`. + * + */ + @Export(name="closeIssue", refs={Boolean.class}, tree="[0]") + private Output closeIssue; + + /** + * @return Enable notifications for closed issues. Can only be used when `level` is `custom`. + * + */ + public Output closeIssue() { + return this.closeIssue; + } + /** + * Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + * + */ + @Export(name="closeMergeRequest", refs={Boolean.class}, tree="[0]") + private Output closeMergeRequest; + + /** + * @return Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + * + */ + public Output closeMergeRequest() { + return this.closeMergeRequest; + } + /** + * Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + * + */ + @Export(name="failedPipeline", refs={Boolean.class}, tree="[0]") + private Output failedPipeline; + + /** + * @return Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + * + */ + public Output failedPipeline() { + return this.failedPipeline; + } + /** + * Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + * + */ + @Export(name="fixedPipeline", refs={Boolean.class}, tree="[0]") + private Output fixedPipeline; + + /** + * @return Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + * + */ + public Output fixedPipeline() { + return this.fixedPipeline; + } + /** + * Enable notifications for due issues. Can only be used when `level` is `custom`. + * + */ + @Export(name="issueDue", refs={Boolean.class}, tree="[0]") + private Output issueDue; + + /** + * @return Enable notifications for due issues. Can only be used when `level` is `custom`. + * + */ + public Output issueDue() { + return this.issueDue; + } + /** + * The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + * + */ + @Export(name="level", refs={String.class}, tree="[0]") + private Output level; + + /** + * @return The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + * + */ + public Output level() { + return this.level; + } + /** + * Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + * + */ + @Export(name="mergeMergeRequest", refs={Boolean.class}, tree="[0]") + private Output mergeMergeRequest; + + /** + * @return Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + * + */ + public Output mergeMergeRequest() { + return this.mergeMergeRequest; + } + /** + * Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + * + */ + @Export(name="mergeWhenPipelineSucceeds", refs={Boolean.class}, tree="[0]") + private Output mergeWhenPipelineSucceeds; + + /** + * @return Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + * + */ + public Output mergeWhenPipelineSucceeds() { + return this.mergeWhenPipelineSucceeds; + } + /** + * Enable notifications for moved projects. Can only be used when `level` is `custom`. + * + */ + @Export(name="movedProject", refs={Boolean.class}, tree="[0]") + private Output movedProject; + + /** + * @return Enable notifications for moved projects. Can only be used when `level` is `custom`. + * + */ + public Output movedProject() { + return this.movedProject; + } + /** + * Enable notifications for new issues. Can only be used when `level` is `custom`. + * + */ + @Export(name="newIssue", refs={Boolean.class}, tree="[0]") + private Output newIssue; + + /** + * @return Enable notifications for new issues. Can only be used when `level` is `custom`. + * + */ + public Output newIssue() { + return this.newIssue; + } + /** + * Enable notifications for new merge requests. Can only be used when `level` is `custom`. + * + */ + @Export(name="newMergeRequest", refs={Boolean.class}, tree="[0]") + private Output newMergeRequest; + + /** + * @return Enable notifications for new merge requests. Can only be used when `level` is `custom`. + * + */ + public Output newMergeRequest() { + return this.newMergeRequest; + } + /** + * Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + * + */ + @Export(name="newNote", refs={Boolean.class}, tree="[0]") + private Output newNote; + + /** + * @return Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + * + */ + public Output newNote() { + return this.newNote; + } + /** + * Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + * + */ + @Export(name="pushToMergeRequest", refs={Boolean.class}, tree="[0]") + private Output pushToMergeRequest; + + /** + * @return Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + * + */ + public Output pushToMergeRequest() { + return this.pushToMergeRequest; + } + /** + * Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + * + */ + @Export(name="reassignIssue", refs={Boolean.class}, tree="[0]") + private Output reassignIssue; + + /** + * @return Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + * + */ + public Output reassignIssue() { + return this.reassignIssue; + } + /** + * Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + * + */ + @Export(name="reassignMergeRequest", refs={Boolean.class}, tree="[0]") + private Output reassignMergeRequest; + + /** + * @return Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + * + */ + public Output reassignMergeRequest() { + return this.reassignMergeRequest; + } + /** + * Enable notifications for reopened issues. Can only be used when `level` is `custom`. + * + */ + @Export(name="reopenIssue", refs={Boolean.class}, tree="[0]") + private Output reopenIssue; + + /** + * @return Enable notifications for reopened issues. Can only be used when `level` is `custom`. + * + */ + public Output reopenIssue() { + return this.reopenIssue; + } + /** + * Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + * + */ + @Export(name="reopenMergeRequest", refs={Boolean.class}, tree="[0]") + private Output reopenMergeRequest; + + /** + * @return Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + * + */ + public Output reopenMergeRequest() { + return this.reopenMergeRequest; + } + /** + * Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + * + */ + @Export(name="successPipeline", refs={Boolean.class}, tree="[0]") + private Output successPipeline; + + /** + * @return Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + * + */ + public Output successPipeline() { + return this.successPipeline; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public GlobalLevelNotifications(String name) { + this(name, GlobalLevelNotificationsArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public GlobalLevelNotifications(String name, @Nullable GlobalLevelNotificationsArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public GlobalLevelNotifications(String name, @Nullable GlobalLevelNotificationsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gitlab:index/globalLevelNotifications:GlobalLevelNotifications", name, args == null ? GlobalLevelNotificationsArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private GlobalLevelNotifications(String name, Output id, @Nullable GlobalLevelNotificationsState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gitlab:index/globalLevelNotifications:GlobalLevelNotifications", name, state, makeResourceOptions(options, id)); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static GlobalLevelNotifications get(String name, Output id, @Nullable GlobalLevelNotificationsState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new GlobalLevelNotifications(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gitlab/GlobalLevelNotificationsArgs.java b/sdk/java/src/main/java/com/pulumi/gitlab/GlobalLevelNotificationsArgs.java new file mode 100644 index 00000000..f425447a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gitlab/GlobalLevelNotificationsArgs.java @@ -0,0 +1,713 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gitlab; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GlobalLevelNotificationsArgs extends com.pulumi.resources.ResourceArgs { + + public static final GlobalLevelNotificationsArgs Empty = new GlobalLevelNotificationsArgs(); + + /** + * Enable notifications for closed issues. Can only be used when `level` is `custom`. + * + */ + @Import(name="closeIssue") + private @Nullable Output closeIssue; + + /** + * @return Enable notifications for closed issues. Can only be used when `level` is `custom`. + * + */ + public Optional> closeIssue() { + return Optional.ofNullable(this.closeIssue); + } + + /** + * Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + * + */ + @Import(name="closeMergeRequest") + private @Nullable Output closeMergeRequest; + + /** + * @return Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + * + */ + public Optional> closeMergeRequest() { + return Optional.ofNullable(this.closeMergeRequest); + } + + /** + * Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + * + */ + @Import(name="failedPipeline") + private @Nullable Output failedPipeline; + + /** + * @return Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + * + */ + public Optional> failedPipeline() { + return Optional.ofNullable(this.failedPipeline); + } + + /** + * Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + * + */ + @Import(name="fixedPipeline") + private @Nullable Output fixedPipeline; + + /** + * @return Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + * + */ + public Optional> fixedPipeline() { + return Optional.ofNullable(this.fixedPipeline); + } + + /** + * Enable notifications for due issues. Can only be used when `level` is `custom`. + * + */ + @Import(name="issueDue") + private @Nullable Output issueDue; + + /** + * @return Enable notifications for due issues. Can only be used when `level` is `custom`. + * + */ + public Optional> issueDue() { + return Optional.ofNullable(this.issueDue); + } + + /** + * The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + * + */ + @Import(name="level") + private @Nullable Output level; + + /** + * @return The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + * + */ + public Optional> level() { + return Optional.ofNullable(this.level); + } + + /** + * Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + * + */ + @Import(name="mergeMergeRequest") + private @Nullable Output mergeMergeRequest; + + /** + * @return Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + * + */ + public Optional> mergeMergeRequest() { + return Optional.ofNullable(this.mergeMergeRequest); + } + + /** + * Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + * + */ + @Import(name="mergeWhenPipelineSucceeds") + private @Nullable Output mergeWhenPipelineSucceeds; + + /** + * @return Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + * + */ + public Optional> mergeWhenPipelineSucceeds() { + return Optional.ofNullable(this.mergeWhenPipelineSucceeds); + } + + /** + * Enable notifications for moved projects. Can only be used when `level` is `custom`. + * + */ + @Import(name="movedProject") + private @Nullable Output movedProject; + + /** + * @return Enable notifications for moved projects. Can only be used when `level` is `custom`. + * + */ + public Optional> movedProject() { + return Optional.ofNullable(this.movedProject); + } + + /** + * Enable notifications for new issues. Can only be used when `level` is `custom`. + * + */ + @Import(name="newIssue") + private @Nullable Output newIssue; + + /** + * @return Enable notifications for new issues. Can only be used when `level` is `custom`. + * + */ + public Optional> newIssue() { + return Optional.ofNullable(this.newIssue); + } + + /** + * Enable notifications for new merge requests. Can only be used when `level` is `custom`. + * + */ + @Import(name="newMergeRequest") + private @Nullable Output newMergeRequest; + + /** + * @return Enable notifications for new merge requests. Can only be used when `level` is `custom`. + * + */ + public Optional> newMergeRequest() { + return Optional.ofNullable(this.newMergeRequest); + } + + /** + * Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + * + */ + @Import(name="newNote") + private @Nullable Output newNote; + + /** + * @return Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + * + */ + public Optional> newNote() { + return Optional.ofNullable(this.newNote); + } + + /** + * Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + * + */ + @Import(name="pushToMergeRequest") + private @Nullable Output pushToMergeRequest; + + /** + * @return Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + * + */ + public Optional> pushToMergeRequest() { + return Optional.ofNullable(this.pushToMergeRequest); + } + + /** + * Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + * + */ + @Import(name="reassignIssue") + private @Nullable Output reassignIssue; + + /** + * @return Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + * + */ + public Optional> reassignIssue() { + return Optional.ofNullable(this.reassignIssue); + } + + /** + * Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + * + */ + @Import(name="reassignMergeRequest") + private @Nullable Output reassignMergeRequest; + + /** + * @return Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + * + */ + public Optional> reassignMergeRequest() { + return Optional.ofNullable(this.reassignMergeRequest); + } + + /** + * Enable notifications for reopened issues. Can only be used when `level` is `custom`. + * + */ + @Import(name="reopenIssue") + private @Nullable Output reopenIssue; + + /** + * @return Enable notifications for reopened issues. Can only be used when `level` is `custom`. + * + */ + public Optional> reopenIssue() { + return Optional.ofNullable(this.reopenIssue); + } + + /** + * Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + * + */ + @Import(name="reopenMergeRequest") + private @Nullable Output reopenMergeRequest; + + /** + * @return Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + * + */ + public Optional> reopenMergeRequest() { + return Optional.ofNullable(this.reopenMergeRequest); + } + + /** + * Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + * + */ + @Import(name="successPipeline") + private @Nullable Output successPipeline; + + /** + * @return Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + * + */ + public Optional> successPipeline() { + return Optional.ofNullable(this.successPipeline); + } + + private GlobalLevelNotificationsArgs() {} + + private GlobalLevelNotificationsArgs(GlobalLevelNotificationsArgs $) { + this.closeIssue = $.closeIssue; + this.closeMergeRequest = $.closeMergeRequest; + this.failedPipeline = $.failedPipeline; + this.fixedPipeline = $.fixedPipeline; + this.issueDue = $.issueDue; + this.level = $.level; + this.mergeMergeRequest = $.mergeMergeRequest; + this.mergeWhenPipelineSucceeds = $.mergeWhenPipelineSucceeds; + this.movedProject = $.movedProject; + this.newIssue = $.newIssue; + this.newMergeRequest = $.newMergeRequest; + this.newNote = $.newNote; + this.pushToMergeRequest = $.pushToMergeRequest; + this.reassignIssue = $.reassignIssue; + this.reassignMergeRequest = $.reassignMergeRequest; + this.reopenIssue = $.reopenIssue; + this.reopenMergeRequest = $.reopenMergeRequest; + this.successPipeline = $.successPipeline; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GlobalLevelNotificationsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GlobalLevelNotificationsArgs $; + + public Builder() { + $ = new GlobalLevelNotificationsArgs(); + } + + public Builder(GlobalLevelNotificationsArgs defaults) { + $ = new GlobalLevelNotificationsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param closeIssue Enable notifications for closed issues. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder closeIssue(@Nullable Output closeIssue) { + $.closeIssue = closeIssue; + return this; + } + + /** + * @param closeIssue Enable notifications for closed issues. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder closeIssue(Boolean closeIssue) { + return closeIssue(Output.of(closeIssue)); + } + + /** + * @param closeMergeRequest Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder closeMergeRequest(@Nullable Output closeMergeRequest) { + $.closeMergeRequest = closeMergeRequest; + return this; + } + + /** + * @param closeMergeRequest Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder closeMergeRequest(Boolean closeMergeRequest) { + return closeMergeRequest(Output.of(closeMergeRequest)); + } + + /** + * @param failedPipeline Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder failedPipeline(@Nullable Output failedPipeline) { + $.failedPipeline = failedPipeline; + return this; + } + + /** + * @param failedPipeline Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder failedPipeline(Boolean failedPipeline) { + return failedPipeline(Output.of(failedPipeline)); + } + + /** + * @param fixedPipeline Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder fixedPipeline(@Nullable Output fixedPipeline) { + $.fixedPipeline = fixedPipeline; + return this; + } + + /** + * @param fixedPipeline Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder fixedPipeline(Boolean fixedPipeline) { + return fixedPipeline(Output.of(fixedPipeline)); + } + + /** + * @param issueDue Enable notifications for due issues. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder issueDue(@Nullable Output issueDue) { + $.issueDue = issueDue; + return this; + } + + /** + * @param issueDue Enable notifications for due issues. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder issueDue(Boolean issueDue) { + return issueDue(Output.of(issueDue)); + } + + /** + * @param level The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + * + * @return builder + * + */ + public Builder level(@Nullable Output level) { + $.level = level; + return this; + } + + /** + * @param level The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + * + * @return builder + * + */ + public Builder level(String level) { + return level(Output.of(level)); + } + + /** + * @param mergeMergeRequest Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder mergeMergeRequest(@Nullable Output mergeMergeRequest) { + $.mergeMergeRequest = mergeMergeRequest; + return this; + } + + /** + * @param mergeMergeRequest Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder mergeMergeRequest(Boolean mergeMergeRequest) { + return mergeMergeRequest(Output.of(mergeMergeRequest)); + } + + /** + * @param mergeWhenPipelineSucceeds Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder mergeWhenPipelineSucceeds(@Nullable Output mergeWhenPipelineSucceeds) { + $.mergeWhenPipelineSucceeds = mergeWhenPipelineSucceeds; + return this; + } + + /** + * @param mergeWhenPipelineSucceeds Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder mergeWhenPipelineSucceeds(Boolean mergeWhenPipelineSucceeds) { + return mergeWhenPipelineSucceeds(Output.of(mergeWhenPipelineSucceeds)); + } + + /** + * @param movedProject Enable notifications for moved projects. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder movedProject(@Nullable Output movedProject) { + $.movedProject = movedProject; + return this; + } + + /** + * @param movedProject Enable notifications for moved projects. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder movedProject(Boolean movedProject) { + return movedProject(Output.of(movedProject)); + } + + /** + * @param newIssue Enable notifications for new issues. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder newIssue(@Nullable Output newIssue) { + $.newIssue = newIssue; + return this; + } + + /** + * @param newIssue Enable notifications for new issues. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder newIssue(Boolean newIssue) { + return newIssue(Output.of(newIssue)); + } + + /** + * @param newMergeRequest Enable notifications for new merge requests. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder newMergeRequest(@Nullable Output newMergeRequest) { + $.newMergeRequest = newMergeRequest; + return this; + } + + /** + * @param newMergeRequest Enable notifications for new merge requests. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder newMergeRequest(Boolean newMergeRequest) { + return newMergeRequest(Output.of(newMergeRequest)); + } + + /** + * @param newNote Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder newNote(@Nullable Output newNote) { + $.newNote = newNote; + return this; + } + + /** + * @param newNote Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder newNote(Boolean newNote) { + return newNote(Output.of(newNote)); + } + + /** + * @param pushToMergeRequest Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder pushToMergeRequest(@Nullable Output pushToMergeRequest) { + $.pushToMergeRequest = pushToMergeRequest; + return this; + } + + /** + * @param pushToMergeRequest Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder pushToMergeRequest(Boolean pushToMergeRequest) { + return pushToMergeRequest(Output.of(pushToMergeRequest)); + } + + /** + * @param reassignIssue Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder reassignIssue(@Nullable Output reassignIssue) { + $.reassignIssue = reassignIssue; + return this; + } + + /** + * @param reassignIssue Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder reassignIssue(Boolean reassignIssue) { + return reassignIssue(Output.of(reassignIssue)); + } + + /** + * @param reassignMergeRequest Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder reassignMergeRequest(@Nullable Output reassignMergeRequest) { + $.reassignMergeRequest = reassignMergeRequest; + return this; + } + + /** + * @param reassignMergeRequest Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder reassignMergeRequest(Boolean reassignMergeRequest) { + return reassignMergeRequest(Output.of(reassignMergeRequest)); + } + + /** + * @param reopenIssue Enable notifications for reopened issues. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder reopenIssue(@Nullable Output reopenIssue) { + $.reopenIssue = reopenIssue; + return this; + } + + /** + * @param reopenIssue Enable notifications for reopened issues. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder reopenIssue(Boolean reopenIssue) { + return reopenIssue(Output.of(reopenIssue)); + } + + /** + * @param reopenMergeRequest Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder reopenMergeRequest(@Nullable Output reopenMergeRequest) { + $.reopenMergeRequest = reopenMergeRequest; + return this; + } + + /** + * @param reopenMergeRequest Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder reopenMergeRequest(Boolean reopenMergeRequest) { + return reopenMergeRequest(Output.of(reopenMergeRequest)); + } + + /** + * @param successPipeline Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder successPipeline(@Nullable Output successPipeline) { + $.successPipeline = successPipeline; + return this; + } + + /** + * @param successPipeline Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder successPipeline(Boolean successPipeline) { + return successPipeline(Output.of(successPipeline)); + } + + public GlobalLevelNotificationsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gitlab/ProjectHook.java b/sdk/java/src/main/java/com/pulumi/gitlab/ProjectHook.java index 5af0a453..82755b47 100644 --- a/sdk/java/src/main/java/com/pulumi/gitlab/ProjectHook.java +++ b/sdk/java/src/main/java/com/pulumi/gitlab/ProjectHook.java @@ -306,14 +306,14 @@ public Output> token() { return Codegen.optional(this.token); } /** - * The url of the hook to invoke. + * The url of the hook to invoke. Forces re-creation to preserve `token`. * */ @Export(name="url", refs={String.class}, tree="[0]") private Output url; /** - * @return The url of the hook to invoke. + * @return The url of the hook to invoke. Forces re-creation to preserve `token`. * */ public Output url() { diff --git a/sdk/java/src/main/java/com/pulumi/gitlab/ProjectHookArgs.java b/sdk/java/src/main/java/com/pulumi/gitlab/ProjectHookArgs.java index 75913b8e..de916525 100644 --- a/sdk/java/src/main/java/com/pulumi/gitlab/ProjectHookArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gitlab/ProjectHookArgs.java @@ -243,14 +243,14 @@ public Optional> token() { } /** - * The url of the hook to invoke. + * The url of the hook to invoke. Forces re-creation to preserve `token`. * */ @Import(name="url", required=true) private Output url; /** - * @return The url of the hook to invoke. + * @return The url of the hook to invoke. Forces re-creation to preserve `token`. * */ public Output url() { @@ -628,7 +628,7 @@ public Builder token(String token) { } /** - * @param url The url of the hook to invoke. + * @param url The url of the hook to invoke. Forces re-creation to preserve `token`. * * @return builder * @@ -639,7 +639,7 @@ public Builder url(Output url) { } /** - * @param url The url of the hook to invoke. + * @param url The url of the hook to invoke. Forces re-creation to preserve `token`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gitlab/inputs/ApplicationSettingsState.java b/sdk/java/src/main/java/com/pulumi/gitlab/inputs/ApplicationSettingsState.java index 03fba99f..74e83250 100644 --- a/sdk/java/src/main/java/com/pulumi/gitlab/inputs/ApplicationSettingsState.java +++ b/sdk/java/src/main/java/com/pulumi/gitlab/inputs/ApplicationSettingsState.java @@ -575,36 +575,6 @@ public Optional> defaultSnippetVisibility() { return Optional.ofNullable(this.defaultSnippetVisibility); } - /** - * Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - * - */ - @Import(name="delayedGroupDeletion") - private @Nullable Output delayedGroupDeletion; - - /** - * @return Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - * - */ - public Optional> delayedGroupDeletion() { - return Optional.ofNullable(this.delayedGroupDeletion); - } - - /** - * Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. - * - */ - @Import(name="delayedProjectDeletion") - private @Nullable Output delayedProjectDeletion; - - /** - * @return Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. - * - */ - public Optional> delayedProjectDeletion() { - return Optional.ofNullable(this.delayedProjectDeletion); - } - /** * Enable inactive project deletion feature. Introduced in GitLab 14.10. Became operational in GitLab 15.0 (with feature flag inactive*projects*deletion). * @@ -621,14 +591,14 @@ public Optional> deleteInactiveProjects() { } /** - * The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + * The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. * */ @Import(name="deletionAdjournedPeriod") private @Nullable Output deletionAdjournedPeriod; /** - * @return The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + * @return The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. * */ public Optional> deletionAdjournedPeriod() { @@ -1671,14 +1641,18 @@ public Optional> homePageUrl() { } /** - * (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + * Enable or disable Git housekeeping. + * If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + * Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. * */ @Import(name="housekeepingEnabled") private @Nullable Output housekeepingEnabled; /** - * @return (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + * @return Enable or disable Git housekeeping. + * If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + * Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. * */ public Optional> housekeepingEnabled() { @@ -1688,14 +1662,22 @@ public Optional> housekeepingEnabled() { /** * Number of Git pushes after which an incremental git repack is run. * + * @deprecated + * housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. */ @Import(name="housekeepingFullRepackPeriod") private @Nullable Output housekeepingFullRepackPeriod; /** * @return Number of Git pushes after which an incremental git repack is run. * + * @deprecated + * housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. */ public Optional> housekeepingFullRepackPeriod() { return Optional.ofNullable(this.housekeepingFullRepackPeriod); } @@ -1703,14 +1685,22 @@ public Optional> housekeepingFullRepackPeriod() { /** * Number of Git pushes after which git gc is run. * + * @deprecated + * housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. */ @Import(name="housekeepingGcPeriod") private @Nullable Output housekeepingGcPeriod; /** * @return Number of Git pushes after which git gc is run. * + * @deprecated + * housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. */ public Optional> housekeepingGcPeriod() { return Optional.ofNullable(this.housekeepingGcPeriod); } @@ -1718,18 +1708,41 @@ public Optional> housekeepingGcPeriod() { /** * Number of Git pushes after which an incremental git repack is run. * + * @deprecated + * housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. */ @Import(name="housekeepingIncrementalRepackPeriod") private @Nullable Output housekeepingIncrementalRepackPeriod; /** * @return Number of Git pushes after which an incremental git repack is run. * + * @deprecated + * housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. */ public Optional> housekeepingIncrementalRepackPeriod() { return Optional.ofNullable(this.housekeepingIncrementalRepackPeriod); } + /** + * Number of Git pushes after which an incremental git repack is run. + * + */ + @Import(name="housekeepingOptimizeRepositoryPeriod") + private @Nullable Output housekeepingOptimizeRepositoryPeriod; + + /** + * @return Number of Git pushes after which an incremental git repack is run. + * + */ + public Optional> housekeepingOptimizeRepositoryPeriod() { + return Optional.ofNullable(this.housekeepingOptimizeRepositoryPeriod); + } + /** * Enable HTML emails. * @@ -3690,8 +3703,6 @@ private ApplicationSettingsState(ApplicationSettingsState $) { this.defaultProjectVisibility = $.defaultProjectVisibility; this.defaultProjectsLimit = $.defaultProjectsLimit; this.defaultSnippetVisibility = $.defaultSnippetVisibility; - this.delayedGroupDeletion = $.delayedGroupDeletion; - this.delayedProjectDeletion = $.delayedProjectDeletion; this.deleteInactiveProjects = $.deleteInactiveProjects; this.deletionAdjournedPeriod = $.deletionAdjournedPeriod; this.diffMaxFiles = $.diffMaxFiles; @@ -3767,6 +3778,7 @@ private ApplicationSettingsState(ApplicationSettingsState $) { this.housekeepingFullRepackPeriod = $.housekeepingFullRepackPeriod; this.housekeepingGcPeriod = $.housekeepingGcPeriod; this.housekeepingIncrementalRepackPeriod = $.housekeepingIncrementalRepackPeriod; + this.housekeepingOptimizeRepositoryPeriod = $.housekeepingOptimizeRepositoryPeriod; this.htmlEmailsEnabled = $.htmlEmailsEnabled; this.importSources = $.importSources; this.inProductMarketingEmailsEnabled = $.inProductMarketingEmailsEnabled; @@ -4702,48 +4714,6 @@ public Builder defaultSnippetVisibility(String defaultSnippetVisibility) { return defaultSnippetVisibility(Output.of(defaultSnippetVisibility)); } - /** - * @param delayedGroupDeletion Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - * - * @return builder - * - */ - public Builder delayedGroupDeletion(@Nullable Output delayedGroupDeletion) { - $.delayedGroupDeletion = delayedGroupDeletion; - return this; - } - - /** - * @param delayedGroupDeletion Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - * - * @return builder - * - */ - public Builder delayedGroupDeletion(Boolean delayedGroupDeletion) { - return delayedGroupDeletion(Output.of(delayedGroupDeletion)); - } - - /** - * @param delayedProjectDeletion Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. - * - * @return builder - * - */ - public Builder delayedProjectDeletion(@Nullable Output delayedProjectDeletion) { - $.delayedProjectDeletion = delayedProjectDeletion; - return this; - } - - /** - * @param delayedProjectDeletion Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. - * - * @return builder - * - */ - public Builder delayedProjectDeletion(Boolean delayedProjectDeletion) { - return delayedProjectDeletion(Output.of(delayedProjectDeletion)); - } - /** * @param deleteInactiveProjects Enable inactive project deletion feature. Introduced in GitLab 14.10. Became operational in GitLab 15.0 (with feature flag inactive*projects*deletion). * @@ -4766,7 +4736,7 @@ public Builder deleteInactiveProjects(Boolean deleteInactiveProjects) { } /** - * @param deletionAdjournedPeriod The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + * @param deletionAdjournedPeriod The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. * * @return builder * @@ -4777,7 +4747,7 @@ public Builder deletionAdjournedPeriod(@Nullable Output deletionAdjourn } /** - * @param deletionAdjournedPeriod The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + * @param deletionAdjournedPeriod The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. * * @return builder * @@ -6306,7 +6276,9 @@ public Builder homePageUrl(String homePageUrl) { } /** - * @param housekeepingEnabled (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + * @param housekeepingEnabled Enable or disable Git housekeeping. + * If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + * Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. * * @return builder * @@ -6317,7 +6289,9 @@ public Builder housekeepingEnabled(@Nullable Output housekeepingEnabled } /** - * @param housekeepingEnabled (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + * @param housekeepingEnabled Enable or disable Git housekeeping. + * If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + * Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. * * @return builder * @@ -6331,7 +6305,11 @@ public Builder housekeepingEnabled(Boolean housekeepingEnabled) { * * @return builder * + * @deprecated + * housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. */ public Builder housekeepingFullRepackPeriod(@Nullable Output housekeepingFullRepackPeriod) { $.housekeepingFullRepackPeriod = housekeepingFullRepackPeriod; return this; @@ -6342,7 +6320,11 @@ public Builder housekeepingFullRepackPeriod(@Nullable Output housekeepi * * @return builder * + * @deprecated + * housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. */ public Builder housekeepingFullRepackPeriod(Integer housekeepingFullRepackPeriod) { return housekeepingFullRepackPeriod(Output.of(housekeepingFullRepackPeriod)); } @@ -6352,7 +6334,11 @@ public Builder housekeepingFullRepackPeriod(Integer housekeepingFullRepackPeriod * * @return builder * + * @deprecated + * housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. */ public Builder housekeepingGcPeriod(@Nullable Output housekeepingGcPeriod) { $.housekeepingGcPeriod = housekeepingGcPeriod; return this; @@ -6363,7 +6349,11 @@ public Builder housekeepingGcPeriod(@Nullable Output housekeepingGcPeri * * @return builder * + * @deprecated + * housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. */ public Builder housekeepingGcPeriod(Integer housekeepingGcPeriod) { return housekeepingGcPeriod(Output.of(housekeepingGcPeriod)); } @@ -6373,7 +6363,11 @@ public Builder housekeepingGcPeriod(Integer housekeepingGcPeriod) { * * @return builder * + * @deprecated + * housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. */ public Builder housekeepingIncrementalRepackPeriod(@Nullable Output housekeepingIncrementalRepackPeriod) { $.housekeepingIncrementalRepackPeriod = housekeepingIncrementalRepackPeriod; return this; @@ -6384,11 +6378,36 @@ public Builder housekeepingIncrementalRepackPeriod(@Nullable Output hou * * @return builder * + * @deprecated + * housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. + * */ + @Deprecated /* housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. */ public Builder housekeepingIncrementalRepackPeriod(Integer housekeepingIncrementalRepackPeriod) { return housekeepingIncrementalRepackPeriod(Output.of(housekeepingIncrementalRepackPeriod)); } + /** + * @param housekeepingOptimizeRepositoryPeriod Number of Git pushes after which an incremental git repack is run. + * + * @return builder + * + */ + public Builder housekeepingOptimizeRepositoryPeriod(@Nullable Output housekeepingOptimizeRepositoryPeriod) { + $.housekeepingOptimizeRepositoryPeriod = housekeepingOptimizeRepositoryPeriod; + return this; + } + + /** + * @param housekeepingOptimizeRepositoryPeriod Number of Git pushes after which an incremental git repack is run. + * + * @return builder + * + */ + public Builder housekeepingOptimizeRepositoryPeriod(Integer housekeepingOptimizeRepositoryPeriod) { + return housekeepingOptimizeRepositoryPeriod(Output.of(housekeepingOptimizeRepositoryPeriod)); + } + /** * @param htmlEmailsEnabled Enable HTML emails. * diff --git a/sdk/java/src/main/java/com/pulumi/gitlab/inputs/GetGroupArgs.java b/sdk/java/src/main/java/com/pulumi/gitlab/inputs/GetGroupArgs.java index 04b873e8..858adae5 100644 --- a/sdk/java/src/main/java/com/pulumi/gitlab/inputs/GetGroupArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gitlab/inputs/GetGroupArgs.java @@ -31,17 +31,9 @@ public Optional> fullPath() { return Optional.ofNullable(this.fullPath); } - /** - * The ID of the group. - * - */ @Import(name="groupId") private @Nullable Output groupId; - /** - * @return The ID of the group. - * - */ public Optional> groupId() { return Optional.ofNullable(this.groupId); } @@ -92,23 +84,11 @@ public Builder fullPath(String fullPath) { return fullPath(Output.of(fullPath)); } - /** - * @param groupId The ID of the group. - * - * @return builder - * - */ public Builder groupId(@Nullable Output groupId) { $.groupId = groupId; return this; } - /** - * @param groupId The ID of the group. - * - * @return builder - * - */ public Builder groupId(Integer groupId) { return groupId(Output.of(groupId)); } diff --git a/sdk/java/src/main/java/com/pulumi/gitlab/inputs/GetGroupPlainArgs.java b/sdk/java/src/main/java/com/pulumi/gitlab/inputs/GetGroupPlainArgs.java index d1adb91f..f6b2d0eb 100644 --- a/sdk/java/src/main/java/com/pulumi/gitlab/inputs/GetGroupPlainArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gitlab/inputs/GetGroupPlainArgs.java @@ -30,17 +30,9 @@ public Optional fullPath() { return Optional.ofNullable(this.fullPath); } - /** - * The ID of the group. - * - */ @Import(name="groupId") private @Nullable Integer groupId; - /** - * @return The ID of the group. - * - */ public Optional groupId() { return Optional.ofNullable(this.groupId); } @@ -81,12 +73,6 @@ public Builder fullPath(@Nullable String fullPath) { return this; } - /** - * @param groupId The ID of the group. - * - * @return builder - * - */ public Builder groupId(@Nullable Integer groupId) { $.groupId = groupId; return this; diff --git a/sdk/java/src/main/java/com/pulumi/gitlab/inputs/GlobalLevelNotificationsState.java b/sdk/java/src/main/java/com/pulumi/gitlab/inputs/GlobalLevelNotificationsState.java new file mode 100644 index 00000000..cf58ee5a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gitlab/inputs/GlobalLevelNotificationsState.java @@ -0,0 +1,713 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gitlab.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GlobalLevelNotificationsState extends com.pulumi.resources.ResourceArgs { + + public static final GlobalLevelNotificationsState Empty = new GlobalLevelNotificationsState(); + + /** + * Enable notifications for closed issues. Can only be used when `level` is `custom`. + * + */ + @Import(name="closeIssue") + private @Nullable Output closeIssue; + + /** + * @return Enable notifications for closed issues. Can only be used when `level` is `custom`. + * + */ + public Optional> closeIssue() { + return Optional.ofNullable(this.closeIssue); + } + + /** + * Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + * + */ + @Import(name="closeMergeRequest") + private @Nullable Output closeMergeRequest; + + /** + * @return Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + * + */ + public Optional> closeMergeRequest() { + return Optional.ofNullable(this.closeMergeRequest); + } + + /** + * Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + * + */ + @Import(name="failedPipeline") + private @Nullable Output failedPipeline; + + /** + * @return Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + * + */ + public Optional> failedPipeline() { + return Optional.ofNullable(this.failedPipeline); + } + + /** + * Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + * + */ + @Import(name="fixedPipeline") + private @Nullable Output fixedPipeline; + + /** + * @return Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + * + */ + public Optional> fixedPipeline() { + return Optional.ofNullable(this.fixedPipeline); + } + + /** + * Enable notifications for due issues. Can only be used when `level` is `custom`. + * + */ + @Import(name="issueDue") + private @Nullable Output issueDue; + + /** + * @return Enable notifications for due issues. Can only be used when `level` is `custom`. + * + */ + public Optional> issueDue() { + return Optional.ofNullable(this.issueDue); + } + + /** + * The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + * + */ + @Import(name="level") + private @Nullable Output level; + + /** + * @return The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + * + */ + public Optional> level() { + return Optional.ofNullable(this.level); + } + + /** + * Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + * + */ + @Import(name="mergeMergeRequest") + private @Nullable Output mergeMergeRequest; + + /** + * @return Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + * + */ + public Optional> mergeMergeRequest() { + return Optional.ofNullable(this.mergeMergeRequest); + } + + /** + * Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + * + */ + @Import(name="mergeWhenPipelineSucceeds") + private @Nullable Output mergeWhenPipelineSucceeds; + + /** + * @return Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + * + */ + public Optional> mergeWhenPipelineSucceeds() { + return Optional.ofNullable(this.mergeWhenPipelineSucceeds); + } + + /** + * Enable notifications for moved projects. Can only be used when `level` is `custom`. + * + */ + @Import(name="movedProject") + private @Nullable Output movedProject; + + /** + * @return Enable notifications for moved projects. Can only be used when `level` is `custom`. + * + */ + public Optional> movedProject() { + return Optional.ofNullable(this.movedProject); + } + + /** + * Enable notifications for new issues. Can only be used when `level` is `custom`. + * + */ + @Import(name="newIssue") + private @Nullable Output newIssue; + + /** + * @return Enable notifications for new issues. Can only be used when `level` is `custom`. + * + */ + public Optional> newIssue() { + return Optional.ofNullable(this.newIssue); + } + + /** + * Enable notifications for new merge requests. Can only be used when `level` is `custom`. + * + */ + @Import(name="newMergeRequest") + private @Nullable Output newMergeRequest; + + /** + * @return Enable notifications for new merge requests. Can only be used when `level` is `custom`. + * + */ + public Optional> newMergeRequest() { + return Optional.ofNullable(this.newMergeRequest); + } + + /** + * Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + * + */ + @Import(name="newNote") + private @Nullable Output newNote; + + /** + * @return Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + * + */ + public Optional> newNote() { + return Optional.ofNullable(this.newNote); + } + + /** + * Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + * + */ + @Import(name="pushToMergeRequest") + private @Nullable Output pushToMergeRequest; + + /** + * @return Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + * + */ + public Optional> pushToMergeRequest() { + return Optional.ofNullable(this.pushToMergeRequest); + } + + /** + * Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + * + */ + @Import(name="reassignIssue") + private @Nullable Output reassignIssue; + + /** + * @return Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + * + */ + public Optional> reassignIssue() { + return Optional.ofNullable(this.reassignIssue); + } + + /** + * Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + * + */ + @Import(name="reassignMergeRequest") + private @Nullable Output reassignMergeRequest; + + /** + * @return Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + * + */ + public Optional> reassignMergeRequest() { + return Optional.ofNullable(this.reassignMergeRequest); + } + + /** + * Enable notifications for reopened issues. Can only be used when `level` is `custom`. + * + */ + @Import(name="reopenIssue") + private @Nullable Output reopenIssue; + + /** + * @return Enable notifications for reopened issues. Can only be used when `level` is `custom`. + * + */ + public Optional> reopenIssue() { + return Optional.ofNullable(this.reopenIssue); + } + + /** + * Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + * + */ + @Import(name="reopenMergeRequest") + private @Nullable Output reopenMergeRequest; + + /** + * @return Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + * + */ + public Optional> reopenMergeRequest() { + return Optional.ofNullable(this.reopenMergeRequest); + } + + /** + * Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + * + */ + @Import(name="successPipeline") + private @Nullable Output successPipeline; + + /** + * @return Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + * + */ + public Optional> successPipeline() { + return Optional.ofNullable(this.successPipeline); + } + + private GlobalLevelNotificationsState() {} + + private GlobalLevelNotificationsState(GlobalLevelNotificationsState $) { + this.closeIssue = $.closeIssue; + this.closeMergeRequest = $.closeMergeRequest; + this.failedPipeline = $.failedPipeline; + this.fixedPipeline = $.fixedPipeline; + this.issueDue = $.issueDue; + this.level = $.level; + this.mergeMergeRequest = $.mergeMergeRequest; + this.mergeWhenPipelineSucceeds = $.mergeWhenPipelineSucceeds; + this.movedProject = $.movedProject; + this.newIssue = $.newIssue; + this.newMergeRequest = $.newMergeRequest; + this.newNote = $.newNote; + this.pushToMergeRequest = $.pushToMergeRequest; + this.reassignIssue = $.reassignIssue; + this.reassignMergeRequest = $.reassignMergeRequest; + this.reopenIssue = $.reopenIssue; + this.reopenMergeRequest = $.reopenMergeRequest; + this.successPipeline = $.successPipeline; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GlobalLevelNotificationsState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GlobalLevelNotificationsState $; + + public Builder() { + $ = new GlobalLevelNotificationsState(); + } + + public Builder(GlobalLevelNotificationsState defaults) { + $ = new GlobalLevelNotificationsState(Objects.requireNonNull(defaults)); + } + + /** + * @param closeIssue Enable notifications for closed issues. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder closeIssue(@Nullable Output closeIssue) { + $.closeIssue = closeIssue; + return this; + } + + /** + * @param closeIssue Enable notifications for closed issues. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder closeIssue(Boolean closeIssue) { + return closeIssue(Output.of(closeIssue)); + } + + /** + * @param closeMergeRequest Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder closeMergeRequest(@Nullable Output closeMergeRequest) { + $.closeMergeRequest = closeMergeRequest; + return this; + } + + /** + * @param closeMergeRequest Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder closeMergeRequest(Boolean closeMergeRequest) { + return closeMergeRequest(Output.of(closeMergeRequest)); + } + + /** + * @param failedPipeline Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder failedPipeline(@Nullable Output failedPipeline) { + $.failedPipeline = failedPipeline; + return this; + } + + /** + * @param failedPipeline Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder failedPipeline(Boolean failedPipeline) { + return failedPipeline(Output.of(failedPipeline)); + } + + /** + * @param fixedPipeline Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder fixedPipeline(@Nullable Output fixedPipeline) { + $.fixedPipeline = fixedPipeline; + return this; + } + + /** + * @param fixedPipeline Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder fixedPipeline(Boolean fixedPipeline) { + return fixedPipeline(Output.of(fixedPipeline)); + } + + /** + * @param issueDue Enable notifications for due issues. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder issueDue(@Nullable Output issueDue) { + $.issueDue = issueDue; + return this; + } + + /** + * @param issueDue Enable notifications for due issues. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder issueDue(Boolean issueDue) { + return issueDue(Output.of(issueDue)); + } + + /** + * @param level The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + * + * @return builder + * + */ + public Builder level(@Nullable Output level) { + $.level = level; + return this; + } + + /** + * @param level The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + * + * @return builder + * + */ + public Builder level(String level) { + return level(Output.of(level)); + } + + /** + * @param mergeMergeRequest Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder mergeMergeRequest(@Nullable Output mergeMergeRequest) { + $.mergeMergeRequest = mergeMergeRequest; + return this; + } + + /** + * @param mergeMergeRequest Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder mergeMergeRequest(Boolean mergeMergeRequest) { + return mergeMergeRequest(Output.of(mergeMergeRequest)); + } + + /** + * @param mergeWhenPipelineSucceeds Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder mergeWhenPipelineSucceeds(@Nullable Output mergeWhenPipelineSucceeds) { + $.mergeWhenPipelineSucceeds = mergeWhenPipelineSucceeds; + return this; + } + + /** + * @param mergeWhenPipelineSucceeds Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder mergeWhenPipelineSucceeds(Boolean mergeWhenPipelineSucceeds) { + return mergeWhenPipelineSucceeds(Output.of(mergeWhenPipelineSucceeds)); + } + + /** + * @param movedProject Enable notifications for moved projects. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder movedProject(@Nullable Output movedProject) { + $.movedProject = movedProject; + return this; + } + + /** + * @param movedProject Enable notifications for moved projects. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder movedProject(Boolean movedProject) { + return movedProject(Output.of(movedProject)); + } + + /** + * @param newIssue Enable notifications for new issues. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder newIssue(@Nullable Output newIssue) { + $.newIssue = newIssue; + return this; + } + + /** + * @param newIssue Enable notifications for new issues. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder newIssue(Boolean newIssue) { + return newIssue(Output.of(newIssue)); + } + + /** + * @param newMergeRequest Enable notifications for new merge requests. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder newMergeRequest(@Nullable Output newMergeRequest) { + $.newMergeRequest = newMergeRequest; + return this; + } + + /** + * @param newMergeRequest Enable notifications for new merge requests. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder newMergeRequest(Boolean newMergeRequest) { + return newMergeRequest(Output.of(newMergeRequest)); + } + + /** + * @param newNote Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder newNote(@Nullable Output newNote) { + $.newNote = newNote; + return this; + } + + /** + * @param newNote Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder newNote(Boolean newNote) { + return newNote(Output.of(newNote)); + } + + /** + * @param pushToMergeRequest Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder pushToMergeRequest(@Nullable Output pushToMergeRequest) { + $.pushToMergeRequest = pushToMergeRequest; + return this; + } + + /** + * @param pushToMergeRequest Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder pushToMergeRequest(Boolean pushToMergeRequest) { + return pushToMergeRequest(Output.of(pushToMergeRequest)); + } + + /** + * @param reassignIssue Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder reassignIssue(@Nullable Output reassignIssue) { + $.reassignIssue = reassignIssue; + return this; + } + + /** + * @param reassignIssue Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder reassignIssue(Boolean reassignIssue) { + return reassignIssue(Output.of(reassignIssue)); + } + + /** + * @param reassignMergeRequest Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder reassignMergeRequest(@Nullable Output reassignMergeRequest) { + $.reassignMergeRequest = reassignMergeRequest; + return this; + } + + /** + * @param reassignMergeRequest Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder reassignMergeRequest(Boolean reassignMergeRequest) { + return reassignMergeRequest(Output.of(reassignMergeRequest)); + } + + /** + * @param reopenIssue Enable notifications for reopened issues. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder reopenIssue(@Nullable Output reopenIssue) { + $.reopenIssue = reopenIssue; + return this; + } + + /** + * @param reopenIssue Enable notifications for reopened issues. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder reopenIssue(Boolean reopenIssue) { + return reopenIssue(Output.of(reopenIssue)); + } + + /** + * @param reopenMergeRequest Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder reopenMergeRequest(@Nullable Output reopenMergeRequest) { + $.reopenMergeRequest = reopenMergeRequest; + return this; + } + + /** + * @param reopenMergeRequest Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder reopenMergeRequest(Boolean reopenMergeRequest) { + return reopenMergeRequest(Output.of(reopenMergeRequest)); + } + + /** + * @param successPipeline Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder successPipeline(@Nullable Output successPipeline) { + $.successPipeline = successPipeline; + return this; + } + + /** + * @param successPipeline Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + * + * @return builder + * + */ + public Builder successPipeline(Boolean successPipeline) { + return successPipeline(Output.of(successPipeline)); + } + + public GlobalLevelNotificationsState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gitlab/inputs/ProjectHookState.java b/sdk/java/src/main/java/com/pulumi/gitlab/inputs/ProjectHookState.java index ab9a7d3c..76d35bd4 100644 --- a/sdk/java/src/main/java/com/pulumi/gitlab/inputs/ProjectHookState.java +++ b/sdk/java/src/main/java/com/pulumi/gitlab/inputs/ProjectHookState.java @@ -273,14 +273,14 @@ public Optional> token() { } /** - * The url of the hook to invoke. + * The url of the hook to invoke. Forces re-creation to preserve `token`. * */ @Import(name="url") private @Nullable Output url; /** - * @return The url of the hook to invoke. + * @return The url of the hook to invoke. Forces re-creation to preserve `token`. * */ public Optional> url() { @@ -702,7 +702,7 @@ public Builder token(String token) { } /** - * @param url The url of the hook to invoke. + * @param url The url of the hook to invoke. Forces re-creation to preserve `token`. * * @return builder * @@ -713,7 +713,7 @@ public Builder url(@Nullable Output url) { } /** - * @param url The url of the hook to invoke. + * @param url The url of the hook to invoke. Forces re-creation to preserve `token`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gitlab/outputs/GetGroupResult.java b/sdk/java/src/main/java/com/pulumi/gitlab/outputs/GetGroupResult.java index 1fe7ac27..4040c47a 100644 --- a/sdk/java/src/main/java/com/pulumi/gitlab/outputs/GetGroupResult.java +++ b/sdk/java/src/main/java/com/pulumi/gitlab/outputs/GetGroupResult.java @@ -5,9 +5,11 @@ import com.pulumi.core.annotations.CustomType; import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gitlab.outputs.GetGroupSharedWithGroup; import java.lang.Boolean; import java.lang.Integer; import java.lang.String; +import java.util.List; import java.util.Objects; @CustomType @@ -97,6 +99,11 @@ public final class GetGroupResult { * */ private String sharedRunnersSetting; + /** + * @return Describes groups which have access shared to this group. + * + */ + private List sharedWithGroups; /** * @return Visibility level of the group. Possible values are `private`, `internal`, `public`. * @@ -233,6 +240,13 @@ public Integer sharedRunnersMinutesLimit() { public String sharedRunnersSetting() { return this.sharedRunnersSetting; } + /** + * @return Describes groups which have access shared to this group. + * + */ + public List sharedWithGroups() { + return this.sharedWithGroups; + } /** * @return Visibility level of the group. Possible values are `private`, `internal`, `public`. * @@ -281,6 +295,7 @@ public static final class Builder { private String runnersToken; private Integer sharedRunnersMinutesLimit; private String sharedRunnersSetting; + private List sharedWithGroups; private String visibilityLevel; private String webUrl; private String wikiAccessLevel; @@ -304,6 +319,7 @@ public Builder(GetGroupResult defaults) { this.runnersToken = defaults.runnersToken; this.sharedRunnersMinutesLimit = defaults.sharedRunnersMinutesLimit; this.sharedRunnersSetting = defaults.sharedRunnersSetting; + this.sharedWithGroups = defaults.sharedWithGroups; this.visibilityLevel = defaults.visibilityLevel; this.webUrl = defaults.webUrl; this.wikiAccessLevel = defaults.wikiAccessLevel; @@ -446,6 +462,17 @@ public Builder sharedRunnersSetting(String sharedRunnersSetting) { return this; } @CustomType.Setter + public Builder sharedWithGroups(List sharedWithGroups) { + if (sharedWithGroups == null) { + throw new MissingRequiredPropertyException("GetGroupResult", "sharedWithGroups"); + } + this.sharedWithGroups = sharedWithGroups; + return this; + } + public Builder sharedWithGroups(GetGroupSharedWithGroup... sharedWithGroups) { + return sharedWithGroups(List.of(sharedWithGroups)); + } + @CustomType.Setter public Builder visibilityLevel(String visibilityLevel) { if (visibilityLevel == null) { throw new MissingRequiredPropertyException("GetGroupResult", "visibilityLevel"); @@ -488,6 +515,7 @@ public GetGroupResult build() { _resultValue.runnersToken = runnersToken; _resultValue.sharedRunnersMinutesLimit = sharedRunnersMinutesLimit; _resultValue.sharedRunnersSetting = sharedRunnersSetting; + _resultValue.sharedWithGroups = sharedWithGroups; _resultValue.visibilityLevel = visibilityLevel; _resultValue.webUrl = webUrl; _resultValue.wikiAccessLevel = wikiAccessLevel; diff --git a/sdk/java/src/main/java/com/pulumi/gitlab/outputs/GetGroupSharedWithGroup.java b/sdk/java/src/main/java/com/pulumi/gitlab/outputs/GetGroupSharedWithGroup.java new file mode 100644 index 00000000..c92f4f26 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gitlab/outputs/GetGroupSharedWithGroup.java @@ -0,0 +1,111 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gitlab.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetGroupSharedWithGroup { + private String expiresAt; + private Integer groupAccessLevel; + private String groupFullPath; + private Integer groupId; + private String groupName; + + private GetGroupSharedWithGroup() {} + public String expiresAt() { + return this.expiresAt; + } + public Integer groupAccessLevel() { + return this.groupAccessLevel; + } + public String groupFullPath() { + return this.groupFullPath; + } + public Integer groupId() { + return this.groupId; + } + public String groupName() { + return this.groupName; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetGroupSharedWithGroup defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String expiresAt; + private Integer groupAccessLevel; + private String groupFullPath; + private Integer groupId; + private String groupName; + public Builder() {} + public Builder(GetGroupSharedWithGroup defaults) { + Objects.requireNonNull(defaults); + this.expiresAt = defaults.expiresAt; + this.groupAccessLevel = defaults.groupAccessLevel; + this.groupFullPath = defaults.groupFullPath; + this.groupId = defaults.groupId; + this.groupName = defaults.groupName; + } + + @CustomType.Setter + public Builder expiresAt(String expiresAt) { + if (expiresAt == null) { + throw new MissingRequiredPropertyException("GetGroupSharedWithGroup", "expiresAt"); + } + this.expiresAt = expiresAt; + return this; + } + @CustomType.Setter + public Builder groupAccessLevel(Integer groupAccessLevel) { + if (groupAccessLevel == null) { + throw new MissingRequiredPropertyException("GetGroupSharedWithGroup", "groupAccessLevel"); + } + this.groupAccessLevel = groupAccessLevel; + return this; + } + @CustomType.Setter + public Builder groupFullPath(String groupFullPath) { + if (groupFullPath == null) { + throw new MissingRequiredPropertyException("GetGroupSharedWithGroup", "groupFullPath"); + } + this.groupFullPath = groupFullPath; + return this; + } + @CustomType.Setter + public Builder groupId(Integer groupId) { + if (groupId == null) { + throw new MissingRequiredPropertyException("GetGroupSharedWithGroup", "groupId"); + } + this.groupId = groupId; + return this; + } + @CustomType.Setter + public Builder groupName(String groupName) { + if (groupName == null) { + throw new MissingRequiredPropertyException("GetGroupSharedWithGroup", "groupName"); + } + this.groupName = groupName; + return this; + } + public GetGroupSharedWithGroup build() { + final var _resultValue = new GetGroupSharedWithGroup(); + _resultValue.expiresAt = expiresAt; + _resultValue.groupAccessLevel = groupAccessLevel; + _resultValue.groupFullPath = groupFullPath; + _resultValue.groupId = groupId; + _resultValue.groupName = groupName; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gitlab/outputs/GetProjectResult.java b/sdk/java/src/main/java/com/pulumi/gitlab/outputs/GetProjectResult.java index fb10398e..1b220bd7 100644 --- a/sdk/java/src/main/java/com/pulumi/gitlab/outputs/GetProjectResult.java +++ b/sdk/java/src/main/java/com/pulumi/gitlab/outputs/GetProjectResult.java @@ -7,6 +7,7 @@ import com.pulumi.exceptions.MissingRequiredPropertyException; import com.pulumi.gitlab.outputs.GetProjectContainerExpirationPolicy; import com.pulumi.gitlab.outputs.GetProjectPushRule; +import com.pulumi.gitlab.outputs.GetProjectSharedWithGroup; import java.lang.Boolean; import java.lang.Integer; import java.lang.String; @@ -287,6 +288,11 @@ public final class GetProjectResult { * */ private String securityAndComplianceAccessLevel; + /** + * @return Describes groups which have access shared to this project. + * + */ + private List sharedWithGroups; /** * @return Set the snippets access level. Valid values are `disabled`, `private`, `enabled`. * @@ -717,6 +723,13 @@ public String runnersToken() { public String securityAndComplianceAccessLevel() { return this.securityAndComplianceAccessLevel; } + /** + * @return Describes groups which have access shared to this project. + * + */ + public List sharedWithGroups() { + return this.sharedWithGroups; + } /** * @return Set the snippets access level. Valid values are `disabled`, `private`, `enabled`. * @@ -851,6 +864,7 @@ public static final class Builder { private Boolean restrictUserDefinedVariables; private String runnersToken; private String securityAndComplianceAccessLevel; + private List sharedWithGroups; private String snippetsAccessLevel; private Boolean snippetsEnabled; private String squashCommitTemplate; @@ -918,6 +932,7 @@ public Builder(GetProjectResult defaults) { this.restrictUserDefinedVariables = defaults.restrictUserDefinedVariables; this.runnersToken = defaults.runnersToken; this.securityAndComplianceAccessLevel = defaults.securityAndComplianceAccessLevel; + this.sharedWithGroups = defaults.sharedWithGroups; this.snippetsAccessLevel = defaults.snippetsAccessLevel; this.snippetsEnabled = defaults.snippetsEnabled; this.squashCommitTemplate = defaults.squashCommitTemplate; @@ -1367,6 +1382,17 @@ public Builder securityAndComplianceAccessLevel(String securityAndComplianceAcce return this; } @CustomType.Setter + public Builder sharedWithGroups(List sharedWithGroups) { + if (sharedWithGroups == null) { + throw new MissingRequiredPropertyException("GetProjectResult", "sharedWithGroups"); + } + this.sharedWithGroups = sharedWithGroups; + return this; + } + public Builder sharedWithGroups(GetProjectSharedWithGroup... sharedWithGroups) { + return sharedWithGroups(List.of(sharedWithGroups)); + } + @CustomType.Setter public Builder snippetsAccessLevel(String snippetsAccessLevel) { if (snippetsAccessLevel == null) { throw new MissingRequiredPropertyException("GetProjectResult", "snippetsAccessLevel"); @@ -1505,6 +1531,7 @@ public GetProjectResult build() { _resultValue.restrictUserDefinedVariables = restrictUserDefinedVariables; _resultValue.runnersToken = runnersToken; _resultValue.securityAndComplianceAccessLevel = securityAndComplianceAccessLevel; + _resultValue.sharedWithGroups = sharedWithGroups; _resultValue.snippetsAccessLevel = snippetsAccessLevel; _resultValue.snippetsEnabled = snippetsEnabled; _resultValue.squashCommitTemplate = squashCommitTemplate; diff --git a/sdk/java/src/main/java/com/pulumi/gitlab/outputs/GetProjectSharedWithGroup.java b/sdk/java/src/main/java/com/pulumi/gitlab/outputs/GetProjectSharedWithGroup.java new file mode 100644 index 00000000..209c4b31 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gitlab/outputs/GetProjectSharedWithGroup.java @@ -0,0 +1,96 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gitlab.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetProjectSharedWithGroup { + private Integer groupAccessLevel; + private String groupFullPath; + private Integer groupId; + private String groupName; + + private GetProjectSharedWithGroup() {} + public Integer groupAccessLevel() { + return this.groupAccessLevel; + } + public String groupFullPath() { + return this.groupFullPath; + } + public Integer groupId() { + return this.groupId; + } + public String groupName() { + return this.groupName; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetProjectSharedWithGroup defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Integer groupAccessLevel; + private String groupFullPath; + private Integer groupId; + private String groupName; + public Builder() {} + public Builder(GetProjectSharedWithGroup defaults) { + Objects.requireNonNull(defaults); + this.groupAccessLevel = defaults.groupAccessLevel; + this.groupFullPath = defaults.groupFullPath; + this.groupId = defaults.groupId; + this.groupName = defaults.groupName; + } + + @CustomType.Setter + public Builder groupAccessLevel(Integer groupAccessLevel) { + if (groupAccessLevel == null) { + throw new MissingRequiredPropertyException("GetProjectSharedWithGroup", "groupAccessLevel"); + } + this.groupAccessLevel = groupAccessLevel; + return this; + } + @CustomType.Setter + public Builder groupFullPath(String groupFullPath) { + if (groupFullPath == null) { + throw new MissingRequiredPropertyException("GetProjectSharedWithGroup", "groupFullPath"); + } + this.groupFullPath = groupFullPath; + return this; + } + @CustomType.Setter + public Builder groupId(Integer groupId) { + if (groupId == null) { + throw new MissingRequiredPropertyException("GetProjectSharedWithGroup", "groupId"); + } + this.groupId = groupId; + return this; + } + @CustomType.Setter + public Builder groupName(String groupName) { + if (groupName == null) { + throw new MissingRequiredPropertyException("GetProjectSharedWithGroup", "groupName"); + } + this.groupName = groupName; + return this; + } + public GetProjectSharedWithGroup build() { + final var _resultValue = new GetProjectSharedWithGroup(); + _resultValue.groupAccessLevel = groupAccessLevel; + _resultValue.groupFullPath = groupFullPath; + _resultValue.groupId = groupId; + _resultValue.groupName = groupName; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gitlab/outputs/GetUserResult.java b/sdk/java/src/main/java/com/pulumi/gitlab/outputs/GetUserResult.java index b9ecf06c..f1d57e21 100644 --- a/sdk/java/src/main/java/com/pulumi/gitlab/outputs/GetUserResult.java +++ b/sdk/java/src/main/java/com/pulumi/gitlab/outputs/GetUserResult.java @@ -72,6 +72,11 @@ public final class GetUserResult { * */ private Boolean isAdmin; + /** + * @return Whether the user is a bot. + * + */ + private Boolean isBot; /** * @return Last user's sign-in date. * @@ -243,6 +248,13 @@ public String id() { public Boolean isAdmin() { return this.isAdmin; } + /** + * @return Whether the user is a bot. + * + */ + public Boolean isBot() { + return this.isBot; + } /** * @return Last user's sign-in date. * @@ -384,6 +396,7 @@ public static final class Builder { private Boolean external; private String id; private Boolean isAdmin; + private Boolean isBot; private String lastSignInAt; private String linkedin; private String location; @@ -416,6 +429,7 @@ public Builder(GetUserResult defaults) { this.external = defaults.external; this.id = defaults.id; this.isAdmin = defaults.isAdmin; + this.isBot = defaults.isBot; this.lastSignInAt = defaults.lastSignInAt; this.linkedin = defaults.linkedin; this.location = defaults.location; @@ -532,6 +546,14 @@ public Builder isAdmin(Boolean isAdmin) { return this; } @CustomType.Setter + public Builder isBot(Boolean isBot) { + if (isBot == null) { + throw new MissingRequiredPropertyException("GetUserResult", "isBot"); + } + this.isBot = isBot; + return this; + } + @CustomType.Setter public Builder lastSignInAt(String lastSignInAt) { if (lastSignInAt == null) { throw new MissingRequiredPropertyException("GetUserResult", "lastSignInAt"); @@ -681,6 +703,7 @@ public GetUserResult build() { _resultValue.external = external; _resultValue.id = id; _resultValue.isAdmin = isAdmin; + _resultValue.isBot = isBot; _resultValue.lastSignInAt = lastSignInAt; _resultValue.linkedin = linkedin; _resultValue.location = location; diff --git a/sdk/java/src/main/java/com/pulumi/gitlab/outputs/GetUsersUser.java b/sdk/java/src/main/java/com/pulumi/gitlab/outputs/GetUsersUser.java index 7a52984e..c77594ef 100644 --- a/sdk/java/src/main/java/com/pulumi/gitlab/outputs/GetUsersUser.java +++ b/sdk/java/src/main/java/com/pulumi/gitlab/outputs/GetUsersUser.java @@ -24,6 +24,7 @@ public final class GetUsersUser { private Boolean external; private Integer id; private Boolean isAdmin; + private Boolean isBot; private String lastSignInAt; private String linkedin; private String location; @@ -77,6 +78,9 @@ public Integer id() { public Boolean isAdmin() { return this.isAdmin; } + public Boolean isBot() { + return this.isBot; + } public String lastSignInAt() { return this.lastSignInAt; } @@ -144,6 +148,7 @@ public static final class Builder { private Boolean external; private Integer id; private Boolean isAdmin; + private Boolean isBot; private String lastSignInAt; private String linkedin; private String location; @@ -174,6 +179,7 @@ public Builder(GetUsersUser defaults) { this.external = defaults.external; this.id = defaults.id; this.isAdmin = defaults.isAdmin; + this.isBot = defaults.isBot; this.lastSignInAt = defaults.lastSignInAt; this.linkedin = defaults.linkedin; this.location = defaults.location; @@ -288,6 +294,14 @@ public Builder isAdmin(Boolean isAdmin) { return this; } @CustomType.Setter + public Builder isBot(Boolean isBot) { + if (isBot == null) { + throw new MissingRequiredPropertyException("GetUsersUser", "isBot"); + } + this.isBot = isBot; + return this; + } + @CustomType.Setter public Builder lastSignInAt(String lastSignInAt) { if (lastSignInAt == null) { throw new MissingRequiredPropertyException("GetUsersUser", "lastSignInAt"); @@ -421,6 +435,7 @@ public GetUsersUser build() { _resultValue.external = external; _resultValue.id = id; _resultValue.isAdmin = isAdmin; + _resultValue.isBot = isBot; _resultValue.lastSignInAt = lastSignInAt; _resultValue.linkedin = linkedin; _resultValue.location = location; diff --git a/sdk/nodejs/applicationSettings.ts b/sdk/nodejs/applicationSettings.ts index 1372ed30..b0ebca0f 100644 --- a/sdk/nodejs/applicationSettings.ts +++ b/sdk/nodejs/applicationSettings.ts @@ -194,20 +194,12 @@ export class ApplicationSettings extends pulumi.CustomResource { * What visibility level new snippets receive. Can take private, internal and public as a parameter. */ public readonly defaultSnippetVisibility!: pulumi.Output; - /** - * Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - */ - public readonly delayedGroupDeletion!: pulumi.Output; - /** - * Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. - */ - public readonly delayedProjectDeletion!: pulumi.Output; /** * Enable inactive project deletion feature. Introduced in GitLab 14.10. Became operational in GitLab 15.0 (with feature flag inactive*projects*deletion). */ public readonly deleteInactiveProjects!: pulumi.Output; /** - * The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + * The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. */ public readonly deletionAdjournedPeriod!: pulumi.Output; /** @@ -487,21 +479,33 @@ export class ApplicationSettings extends pulumi.CustomResource { */ public readonly homePageUrl!: pulumi.Output; /** - * (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + * Enable or disable Git housekeeping. + * If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + * Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. */ public readonly housekeepingEnabled!: pulumi.Output; /** * Number of Git pushes after which an incremental git repack is run. + * + * @deprecated housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. */ public readonly housekeepingFullRepackPeriod!: pulumi.Output; /** * Number of Git pushes after which git gc is run. + * + * @deprecated housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. */ public readonly housekeepingGcPeriod!: pulumi.Output; /** * Number of Git pushes after which an incremental git repack is run. + * + * @deprecated housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. */ public readonly housekeepingIncrementalRepackPeriod!: pulumi.Output; + /** + * Number of Git pushes after which an incremental git repack is run. + */ + public readonly housekeepingOptimizeRepositoryPeriod!: pulumi.Output; /** * Enable HTML emails. */ @@ -1065,8 +1069,6 @@ export class ApplicationSettings extends pulumi.CustomResource { resourceInputs["defaultProjectVisibility"] = state ? state.defaultProjectVisibility : undefined; resourceInputs["defaultProjectsLimit"] = state ? state.defaultProjectsLimit : undefined; resourceInputs["defaultSnippetVisibility"] = state ? state.defaultSnippetVisibility : undefined; - resourceInputs["delayedGroupDeletion"] = state ? state.delayedGroupDeletion : undefined; - resourceInputs["delayedProjectDeletion"] = state ? state.delayedProjectDeletion : undefined; resourceInputs["deleteInactiveProjects"] = state ? state.deleteInactiveProjects : undefined; resourceInputs["deletionAdjournedPeriod"] = state ? state.deletionAdjournedPeriod : undefined; resourceInputs["diffMaxFiles"] = state ? state.diffMaxFiles : undefined; @@ -1142,6 +1144,7 @@ export class ApplicationSettings extends pulumi.CustomResource { resourceInputs["housekeepingFullRepackPeriod"] = state ? state.housekeepingFullRepackPeriod : undefined; resourceInputs["housekeepingGcPeriod"] = state ? state.housekeepingGcPeriod : undefined; resourceInputs["housekeepingIncrementalRepackPeriod"] = state ? state.housekeepingIncrementalRepackPeriod : undefined; + resourceInputs["housekeepingOptimizeRepositoryPeriod"] = state ? state.housekeepingOptimizeRepositoryPeriod : undefined; resourceInputs["htmlEmailsEnabled"] = state ? state.htmlEmailsEnabled : undefined; resourceInputs["importSources"] = state ? state.importSources : undefined; resourceInputs["inProductMarketingEmailsEnabled"] = state ? state.inProductMarketingEmailsEnabled : undefined; @@ -1309,8 +1312,6 @@ export class ApplicationSettings extends pulumi.CustomResource { resourceInputs["defaultProjectVisibility"] = args ? args.defaultProjectVisibility : undefined; resourceInputs["defaultProjectsLimit"] = args ? args.defaultProjectsLimit : undefined; resourceInputs["defaultSnippetVisibility"] = args ? args.defaultSnippetVisibility : undefined; - resourceInputs["delayedGroupDeletion"] = args ? args.delayedGroupDeletion : undefined; - resourceInputs["delayedProjectDeletion"] = args ? args.delayedProjectDeletion : undefined; resourceInputs["deleteInactiveProjects"] = args ? args.deleteInactiveProjects : undefined; resourceInputs["deletionAdjournedPeriod"] = args ? args.deletionAdjournedPeriod : undefined; resourceInputs["diffMaxFiles"] = args ? args.diffMaxFiles : undefined; @@ -1386,6 +1387,7 @@ export class ApplicationSettings extends pulumi.CustomResource { resourceInputs["housekeepingFullRepackPeriod"] = args ? args.housekeepingFullRepackPeriod : undefined; resourceInputs["housekeepingGcPeriod"] = args ? args.housekeepingGcPeriod : undefined; resourceInputs["housekeepingIncrementalRepackPeriod"] = args ? args.housekeepingIncrementalRepackPeriod : undefined; + resourceInputs["housekeepingOptimizeRepositoryPeriod"] = args ? args.housekeepingOptimizeRepositoryPeriod : undefined; resourceInputs["htmlEmailsEnabled"] = args ? args.htmlEmailsEnabled : undefined; resourceInputs["importSources"] = args ? args.importSources : undefined; resourceInputs["inProductMarketingEmailsEnabled"] = args ? args.inProductMarketingEmailsEnabled : undefined; @@ -1674,20 +1676,12 @@ export interface ApplicationSettingsState { * What visibility level new snippets receive. Can take private, internal and public as a parameter. */ defaultSnippetVisibility?: pulumi.Input; - /** - * Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - */ - delayedGroupDeletion?: pulumi.Input; - /** - * Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. - */ - delayedProjectDeletion?: pulumi.Input; /** * Enable inactive project deletion feature. Introduced in GitLab 14.10. Became operational in GitLab 15.0 (with feature flag inactive*projects*deletion). */ deleteInactiveProjects?: pulumi.Input; /** - * The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + * The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. */ deletionAdjournedPeriod?: pulumi.Input; /** @@ -1967,21 +1961,33 @@ export interface ApplicationSettingsState { */ homePageUrl?: pulumi.Input; /** - * (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + * Enable or disable Git housekeeping. + * If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + * Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. */ housekeepingEnabled?: pulumi.Input; /** * Number of Git pushes after which an incremental git repack is run. + * + * @deprecated housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. */ housekeepingFullRepackPeriod?: pulumi.Input; /** * Number of Git pushes after which git gc is run. + * + * @deprecated housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. */ housekeepingGcPeriod?: pulumi.Input; /** * Number of Git pushes after which an incremental git repack is run. + * + * @deprecated housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. */ housekeepingIncrementalRepackPeriod?: pulumi.Input; + /** + * Number of Git pushes after which an incremental git repack is run. + */ + housekeepingOptimizeRepositoryPeriod?: pulumi.Input; /** * Enable HTML emails. */ @@ -2648,20 +2654,12 @@ export interface ApplicationSettingsArgs { * What visibility level new snippets receive. Can take private, internal and public as a parameter. */ defaultSnippetVisibility?: pulumi.Input; - /** - * Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - */ - delayedGroupDeletion?: pulumi.Input; - /** - * Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. - */ - delayedProjectDeletion?: pulumi.Input; /** * Enable inactive project deletion feature. Introduced in GitLab 14.10. Became operational in GitLab 15.0 (with feature flag inactive*projects*deletion). */ deleteInactiveProjects?: pulumi.Input; /** - * The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + * The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. */ deletionAdjournedPeriod?: pulumi.Input; /** @@ -2941,21 +2939,33 @@ export interface ApplicationSettingsArgs { */ homePageUrl?: pulumi.Input; /** - * (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + * Enable or disable Git housekeeping. + * If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + * Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. */ housekeepingEnabled?: pulumi.Input; /** * Number of Git pushes after which an incremental git repack is run. + * + * @deprecated housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. */ housekeepingFullRepackPeriod?: pulumi.Input; /** * Number of Git pushes after which git gc is run. + * + * @deprecated housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead. */ housekeepingGcPeriod?: pulumi.Input; /** * Number of Git pushes after which an incremental git repack is run. + * + * @deprecated housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead. */ housekeepingIncrementalRepackPeriod?: pulumi.Input; + /** + * Number of Git pushes after which an incremental git repack is run. + */ + housekeepingOptimizeRepositoryPeriod?: pulumi.Input; /** * Enable HTML emails. */ diff --git a/sdk/nodejs/getGroup.ts b/sdk/nodejs/getGroup.ts index 424701e9..b393f7f2 100644 --- a/sdk/nodejs/getGroup.ts +++ b/sdk/nodejs/getGroup.ts @@ -2,6 +2,8 @@ // *** Do not edit by hand unless you're certain you know what you are doing! *** import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; import * as utilities from "./utilities"; /** @@ -38,9 +40,6 @@ export interface GetGroupArgs { * The full path of the group. */ fullPath?: string; - /** - * The ID of the group. - */ groupId?: number; } @@ -116,6 +115,10 @@ export interface GetGroupResult { * Enable or disable shared runners for a group’s subgroups and projects. Valid values are: `enabled`, `disabledAndOverridable`, `disabledAndUnoverridable`, `disabledWithOverride`. */ readonly sharedRunnersSetting: string; + /** + * Describes groups which have access shared to this group. + */ + readonly sharedWithGroups: outputs.GetGroupSharedWithGroup[]; /** * Visibility level of the group. Possible values are `private`, `internal`, `public`. */ @@ -157,8 +160,5 @@ export interface GetGroupOutputArgs { * The full path of the group. */ fullPath?: pulumi.Input; - /** - * The ID of the group. - */ groupId?: pulumi.Input; } diff --git a/sdk/nodejs/getProject.ts b/sdk/nodejs/getProject.ts index 6815e8ae..a3720f8a 100644 --- a/sdk/nodejs/getProject.ts +++ b/sdk/nodejs/getProject.ts @@ -276,6 +276,10 @@ export interface GetProjectResult { * Set the security and compliance access level. Valid values are `disabled`, `private`, `enabled`. */ readonly securityAndComplianceAccessLevel: string; + /** + * Describes groups which have access shared to this project. + */ + readonly sharedWithGroups: outputs.GetProjectSharedWithGroup[]; /** * Set the snippets access level. Valid values are `disabled`, `private`, `enabled`. */ diff --git a/sdk/nodejs/getUser.ts b/sdk/nodejs/getUser.ts index 4f242970..f6d55e38 100644 --- a/sdk/nodejs/getUser.ts +++ b/sdk/nodejs/getUser.ts @@ -100,6 +100,10 @@ export interface GetUserResult { * Whether the user is an admin. */ readonly isAdmin: boolean; + /** + * Whether the user is a bot. + */ + readonly isBot: boolean; /** * Last user's sign-in date. */ diff --git a/sdk/nodejs/globalLevelNotifications.ts b/sdk/nodejs/globalLevelNotifications.ts new file mode 100644 index 00000000..33a8a850 --- /dev/null +++ b/sdk/nodejs/globalLevelNotifications.ts @@ -0,0 +1,345 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * The `gitlab.GlobalLevelNotifications` resource allows to manage global notifications. + * + * **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/ee/api/notification_settings.html#group--project-level-notification-settings) + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gitlab from "@pulumi/gitlab"; + * + * // Create Custom global level notification + * const foo = new gitlab.GlobalLevelNotifications("foo", { + * level: "custom", + * newMergeRequest: true, + * }); + * ``` + * + * ## Import + * + * NoteYou can import a global notification state using "gitlab" as the ID. The ID will always be gitlab, because the global notificatio only exists once per user + * + * ```sh + * $ pulumi import gitlab:index/globalLevelNotifications:GlobalLevelNotifications example gitlab + * ``` + */ +export class GlobalLevelNotifications extends pulumi.CustomResource { + /** + * Get an existing GlobalLevelNotifications resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: GlobalLevelNotificationsState, opts?: pulumi.CustomResourceOptions): GlobalLevelNotifications { + return new GlobalLevelNotifications(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'gitlab:index/globalLevelNotifications:GlobalLevelNotifications'; + + /** + * Returns true if the given object is an instance of GlobalLevelNotifications. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is GlobalLevelNotifications { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === GlobalLevelNotifications.__pulumiType; + } + + /** + * Enable notifications for closed issues. Can only be used when `level` is `custom`. + */ + public readonly closeIssue!: pulumi.Output; + /** + * Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + */ + public readonly closeMergeRequest!: pulumi.Output; + /** + * Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + */ + public readonly failedPipeline!: pulumi.Output; + /** + * Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + */ + public readonly fixedPipeline!: pulumi.Output; + /** + * Enable notifications for due issues. Can only be used when `level` is `custom`. + */ + public readonly issueDue!: pulumi.Output; + /** + * The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + */ + public readonly level!: pulumi.Output; + /** + * Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + */ + public readonly mergeMergeRequest!: pulumi.Output; + /** + * Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + */ + public readonly mergeWhenPipelineSucceeds!: pulumi.Output; + /** + * Enable notifications for moved projects. Can only be used when `level` is `custom`. + */ + public readonly movedProject!: pulumi.Output; + /** + * Enable notifications for new issues. Can only be used when `level` is `custom`. + */ + public readonly newIssue!: pulumi.Output; + /** + * Enable notifications for new merge requests. Can only be used when `level` is `custom`. + */ + public readonly newMergeRequest!: pulumi.Output; + /** + * Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + */ + public readonly newNote!: pulumi.Output; + /** + * Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + */ + public readonly pushToMergeRequest!: pulumi.Output; + /** + * Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + */ + public readonly reassignIssue!: pulumi.Output; + /** + * Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + */ + public readonly reassignMergeRequest!: pulumi.Output; + /** + * Enable notifications for reopened issues. Can only be used when `level` is `custom`. + */ + public readonly reopenIssue!: pulumi.Output; + /** + * Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + */ + public readonly reopenMergeRequest!: pulumi.Output; + /** + * Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + */ + public readonly successPipeline!: pulumi.Output; + + /** + * Create a GlobalLevelNotifications resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: GlobalLevelNotificationsArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: GlobalLevelNotificationsArgs | GlobalLevelNotificationsState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as GlobalLevelNotificationsState | undefined; + resourceInputs["closeIssue"] = state ? state.closeIssue : undefined; + resourceInputs["closeMergeRequest"] = state ? state.closeMergeRequest : undefined; + resourceInputs["failedPipeline"] = state ? state.failedPipeline : undefined; + resourceInputs["fixedPipeline"] = state ? state.fixedPipeline : undefined; + resourceInputs["issueDue"] = state ? state.issueDue : undefined; + resourceInputs["level"] = state ? state.level : undefined; + resourceInputs["mergeMergeRequest"] = state ? state.mergeMergeRequest : undefined; + resourceInputs["mergeWhenPipelineSucceeds"] = state ? state.mergeWhenPipelineSucceeds : undefined; + resourceInputs["movedProject"] = state ? state.movedProject : undefined; + resourceInputs["newIssue"] = state ? state.newIssue : undefined; + resourceInputs["newMergeRequest"] = state ? state.newMergeRequest : undefined; + resourceInputs["newNote"] = state ? state.newNote : undefined; + resourceInputs["pushToMergeRequest"] = state ? state.pushToMergeRequest : undefined; + resourceInputs["reassignIssue"] = state ? state.reassignIssue : undefined; + resourceInputs["reassignMergeRequest"] = state ? state.reassignMergeRequest : undefined; + resourceInputs["reopenIssue"] = state ? state.reopenIssue : undefined; + resourceInputs["reopenMergeRequest"] = state ? state.reopenMergeRequest : undefined; + resourceInputs["successPipeline"] = state ? state.successPipeline : undefined; + } else { + const args = argsOrState as GlobalLevelNotificationsArgs | undefined; + resourceInputs["closeIssue"] = args ? args.closeIssue : undefined; + resourceInputs["closeMergeRequest"] = args ? args.closeMergeRequest : undefined; + resourceInputs["failedPipeline"] = args ? args.failedPipeline : undefined; + resourceInputs["fixedPipeline"] = args ? args.fixedPipeline : undefined; + resourceInputs["issueDue"] = args ? args.issueDue : undefined; + resourceInputs["level"] = args ? args.level : undefined; + resourceInputs["mergeMergeRequest"] = args ? args.mergeMergeRequest : undefined; + resourceInputs["mergeWhenPipelineSucceeds"] = args ? args.mergeWhenPipelineSucceeds : undefined; + resourceInputs["movedProject"] = args ? args.movedProject : undefined; + resourceInputs["newIssue"] = args ? args.newIssue : undefined; + resourceInputs["newMergeRequest"] = args ? args.newMergeRequest : undefined; + resourceInputs["newNote"] = args ? args.newNote : undefined; + resourceInputs["pushToMergeRequest"] = args ? args.pushToMergeRequest : undefined; + resourceInputs["reassignIssue"] = args ? args.reassignIssue : undefined; + resourceInputs["reassignMergeRequest"] = args ? args.reassignMergeRequest : undefined; + resourceInputs["reopenIssue"] = args ? args.reopenIssue : undefined; + resourceInputs["reopenMergeRequest"] = args ? args.reopenMergeRequest : undefined; + resourceInputs["successPipeline"] = args ? args.successPipeline : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(GlobalLevelNotifications.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering GlobalLevelNotifications resources. + */ +export interface GlobalLevelNotificationsState { + /** + * Enable notifications for closed issues. Can only be used when `level` is `custom`. + */ + closeIssue?: pulumi.Input; + /** + * Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + */ + closeMergeRequest?: pulumi.Input; + /** + * Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + */ + failedPipeline?: pulumi.Input; + /** + * Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + */ + fixedPipeline?: pulumi.Input; + /** + * Enable notifications for due issues. Can only be used when `level` is `custom`. + */ + issueDue?: pulumi.Input; + /** + * The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + */ + level?: pulumi.Input; + /** + * Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + */ + mergeMergeRequest?: pulumi.Input; + /** + * Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + */ + mergeWhenPipelineSucceeds?: pulumi.Input; + /** + * Enable notifications for moved projects. Can only be used when `level` is `custom`. + */ + movedProject?: pulumi.Input; + /** + * Enable notifications for new issues. Can only be used when `level` is `custom`. + */ + newIssue?: pulumi.Input; + /** + * Enable notifications for new merge requests. Can only be used when `level` is `custom`. + */ + newMergeRequest?: pulumi.Input; + /** + * Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + */ + newNote?: pulumi.Input; + /** + * Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + */ + pushToMergeRequest?: pulumi.Input; + /** + * Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + */ + reassignIssue?: pulumi.Input; + /** + * Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + */ + reassignMergeRequest?: pulumi.Input; + /** + * Enable notifications for reopened issues. Can only be used when `level` is `custom`. + */ + reopenIssue?: pulumi.Input; + /** + * Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + */ + reopenMergeRequest?: pulumi.Input; + /** + * Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + */ + successPipeline?: pulumi.Input; +} + +/** + * The set of arguments for constructing a GlobalLevelNotifications resource. + */ +export interface GlobalLevelNotificationsArgs { + /** + * Enable notifications for closed issues. Can only be used when `level` is `custom`. + */ + closeIssue?: pulumi.Input; + /** + * Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + */ + closeMergeRequest?: pulumi.Input; + /** + * Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + */ + failedPipeline?: pulumi.Input; + /** + * Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + */ + fixedPipeline?: pulumi.Input; + /** + * Enable notifications for due issues. Can only be used when `level` is `custom`. + */ + issueDue?: pulumi.Input; + /** + * The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + */ + level?: pulumi.Input; + /** + * Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + */ + mergeMergeRequest?: pulumi.Input; + /** + * Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + */ + mergeWhenPipelineSucceeds?: pulumi.Input; + /** + * Enable notifications for moved projects. Can only be used when `level` is `custom`. + */ + movedProject?: pulumi.Input; + /** + * Enable notifications for new issues. Can only be used when `level` is `custom`. + */ + newIssue?: pulumi.Input; + /** + * Enable notifications for new merge requests. Can only be used when `level` is `custom`. + */ + newMergeRequest?: pulumi.Input; + /** + * Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + */ + newNote?: pulumi.Input; + /** + * Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + */ + pushToMergeRequest?: pulumi.Input; + /** + * Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + */ + reassignIssue?: pulumi.Input; + /** + * Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + */ + reassignMergeRequest?: pulumi.Input; + /** + * Enable notifications for reopened issues. Can only be used when `level` is `custom`. + */ + reopenIssue?: pulumi.Input; + /** + * Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + */ + reopenMergeRequest?: pulumi.Input; + /** + * Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + */ + successPipeline?: pulumi.Input; +} diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index 0563ccc8..a2cd1b51 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -255,6 +255,11 @@ export const getUsers: typeof import("./getUsers").getUsers = null as any; export const getUsersOutput: typeof import("./getUsers").getUsersOutput = null as any; utilities.lazyLoad(exports, ["getUsers","getUsersOutput"], () => require("./getUsers")); +export { GlobalLevelNotificationsArgs, GlobalLevelNotificationsState } from "./globalLevelNotifications"; +export type GlobalLevelNotifications = import("./globalLevelNotifications").GlobalLevelNotifications; +export const GlobalLevelNotifications: typeof import("./globalLevelNotifications").GlobalLevelNotifications = null as any; +utilities.lazyLoad(exports, ["GlobalLevelNotifications"], () => require("./globalLevelNotifications")); + export { GroupArgs, GroupState } from "./group"; export type Group = import("./group").Group; export const Group: typeof import("./group").Group = null as any; @@ -674,6 +679,8 @@ const _module = { return new DeployKeyEnable(name, undefined, { urn }) case "gitlab:index/deployToken:DeployToken": return new DeployToken(name, undefined, { urn }) + case "gitlab:index/globalLevelNotifications:GlobalLevelNotifications": + return new GlobalLevelNotifications(name, undefined, { urn }) case "gitlab:index/group:Group": return new Group(name, undefined, { urn }) case "gitlab:index/groupAccessToken:GroupAccessToken": @@ -841,6 +848,7 @@ pulumi.runtime.registerResourceModule("gitlab", "index/complianceFramework", _mo pulumi.runtime.registerResourceModule("gitlab", "index/deployKey", _module) pulumi.runtime.registerResourceModule("gitlab", "index/deployKeyEnable", _module) pulumi.runtime.registerResourceModule("gitlab", "index/deployToken", _module) +pulumi.runtime.registerResourceModule("gitlab", "index/globalLevelNotifications", _module) pulumi.runtime.registerResourceModule("gitlab", "index/group", _module) pulumi.runtime.registerResourceModule("gitlab", "index/groupAccessToken", _module) pulumi.runtime.registerResourceModule("gitlab", "index/groupBadge", _module) diff --git a/sdk/nodejs/projectHook.ts b/sdk/nodejs/projectHook.ts index e5d71d0a..06521435 100644 --- a/sdk/nodejs/projectHook.ts +++ b/sdk/nodejs/projectHook.ts @@ -129,7 +129,7 @@ export class ProjectHook extends pulumi.CustomResource { */ public readonly token!: pulumi.Output; /** - * The url of the hook to invoke. + * The url of the hook to invoke. Forces re-creation to preserve `token`. */ public readonly url!: pulumi.Output; /** @@ -277,7 +277,7 @@ export interface ProjectHookState { */ token?: pulumi.Input; /** - * The url of the hook to invoke. + * The url of the hook to invoke. Forces re-creation to preserve `token`. */ url?: pulumi.Input; /** @@ -351,7 +351,7 @@ export interface ProjectHookArgs { */ token?: pulumi.Input; /** - * The url of the hook to invoke. + * The url of the hook to invoke. Forces re-creation to preserve `token`. */ url: pulumi.Input; /** diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 70838f8e..0101aff9 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -65,6 +65,7 @@ "getUser.ts", "getUserSshkeys.ts", "getUsers.ts", + "globalLevelNotifications.ts", "group.ts", "groupAccessToken.ts", "groupBadge.ts", diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index bc6d2019..0b13201d 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -132,6 +132,14 @@ export interface GetGroupMembershipMember { webUrl: string; } +export interface GetGroupSharedWithGroup { + expiresAt: string; + groupAccessLevel: number; + groupFullPath: string; + groupId: number; + groupName: string; +} + export interface GetGroupSubgroupsSubgroup { autoDevopsEnabled: boolean; avatarUrl: string; @@ -493,6 +501,13 @@ export interface GetProjectPushRule { rejectUnsignedCommits: boolean; } +export interface GetProjectSharedWithGroup { + groupAccessLevel: number; + groupFullPath: string; + groupId: number; + groupName: string; +} + export interface GetProjectTagCommit { authorEmail: string; authorName: string; @@ -744,6 +759,7 @@ export interface GetUsersUser { external: boolean; id: number; isAdmin: boolean; + isBot: boolean; lastSignInAt: string; linkedin: string; location: string; diff --git a/sdk/python/pulumi_gitlab/__init__.py b/sdk/python/pulumi_gitlab/__init__.py index d6561427..db6231d9 100644 --- a/sdk/python/pulumi_gitlab/__init__.py +++ b/sdk/python/pulumi_gitlab/__init__.py @@ -55,6 +55,7 @@ from .get_user import * from .get_user_sshkeys import * from .get_users import * +from .global_level_notifications import * from .group import * from .group_access_token import * from .group_badge import * @@ -225,6 +226,14 @@ "gitlab:index/deployToken:DeployToken": "DeployToken" } }, + { + "pkg": "gitlab", + "mod": "index/globalLevelNotifications", + "fqn": "pulumi_gitlab", + "classes": { + "gitlab:index/globalLevelNotifications:GlobalLevelNotifications": "GlobalLevelNotifications" + } + }, { "pkg": "gitlab", "mod": "index/group", diff --git a/sdk/python/pulumi_gitlab/application_settings.py b/sdk/python/pulumi_gitlab/application_settings.py index b56f2cc8..2e88903f 100644 --- a/sdk/python/pulumi_gitlab/application_settings.py +++ b/sdk/python/pulumi_gitlab/application_settings.py @@ -51,8 +51,6 @@ def __init__(__self__, *, default_project_visibility: Optional[pulumi.Input[str]] = None, default_projects_limit: Optional[pulumi.Input[int]] = None, default_snippet_visibility: Optional[pulumi.Input[str]] = None, - delayed_group_deletion: Optional[pulumi.Input[bool]] = None, - delayed_project_deletion: Optional[pulumi.Input[bool]] = None, delete_inactive_projects: Optional[pulumi.Input[bool]] = None, deletion_adjourned_period: Optional[pulumi.Input[int]] = None, diff_max_files: Optional[pulumi.Input[int]] = None, @@ -128,6 +126,7 @@ def __init__(__self__, *, housekeeping_full_repack_period: Optional[pulumi.Input[int]] = None, housekeeping_gc_period: Optional[pulumi.Input[int]] = None, housekeeping_incremental_repack_period: Optional[pulumi.Input[int]] = None, + housekeeping_optimize_repository_period: Optional[pulumi.Input[int]] = None, html_emails_enabled: Optional[pulumi.Input[bool]] = None, import_sources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, in_product_marketing_emails_enabled: Optional[pulumi.Input[bool]] = None, @@ -295,10 +294,8 @@ def __init__(__self__, *, :param pulumi.Input[str] default_project_visibility: What visibility level new projects receive. Can take private, internal and public as a parameter. :param pulumi.Input[int] default_projects_limit: Project limit per user. :param pulumi.Input[str] default_snippet_visibility: What visibility level new snippets receive. Can take private, internal and public as a parameter. - :param pulumi.Input[bool] delayed_group_deletion: Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - :param pulumi.Input[bool] delayed_project_deletion: Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. :param pulumi.Input[bool] delete_inactive_projects: Enable inactive project deletion feature. Introduced in GitLab 14.10. Became operational in GitLab 15.0 (with feature flag inactive*projects*deletion). - :param pulumi.Input[int] deletion_adjourned_period: The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + :param pulumi.Input[int] deletion_adjourned_period: The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. :param pulumi.Input[int] diff_max_files: Maximum files in a diff. :param pulumi.Input[int] diff_max_lines: Maximum lines in a diff. :param pulumi.Input[int] diff_max_patch_bytes: Maximum diff patch size, in bytes. @@ -368,10 +365,13 @@ def __init__(__self__, *, :param pulumi.Input[str] help_text: GitLab server administrator information. :param pulumi.Input[bool] hide_third_party_offers: Do not display offers from third parties in GitLab. :param pulumi.Input[str] home_page_url: Redirect to this URL when not logged in. - :param pulumi.Input[bool] housekeeping_enabled: (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + :param pulumi.Input[bool] housekeeping_enabled: Enable or disable Git housekeeping. + If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. :param pulumi.Input[int] housekeeping_full_repack_period: Number of Git pushes after which an incremental git repack is run. :param pulumi.Input[int] housekeeping_gc_period: Number of Git pushes after which git gc is run. :param pulumi.Input[int] housekeeping_incremental_repack_period: Number of Git pushes after which an incremental git repack is run. + :param pulumi.Input[int] housekeeping_optimize_repository_period: Number of Git pushes after which an incremental git repack is run. :param pulumi.Input[bool] html_emails_enabled: Enable HTML emails. :param pulumi.Input[Sequence[pulumi.Input[str]]] import_sources: Sources to allow project import from. Valid values are: `github`, `bitbucket`, `bitbucket_server`, `fogbugz`, `git`, `Project`, `gitea`, `manifest` :param pulumi.Input[bool] in_product_marketing_emails_enabled: Enable in-product marketing emails. @@ -575,10 +575,6 @@ def __init__(__self__, *, pulumi.set(__self__, "default_projects_limit", default_projects_limit) if default_snippet_visibility is not None: pulumi.set(__self__, "default_snippet_visibility", default_snippet_visibility) - if delayed_group_deletion is not None: - pulumi.set(__self__, "delayed_group_deletion", delayed_group_deletion) - if delayed_project_deletion is not None: - pulumi.set(__self__, "delayed_project_deletion", delayed_project_deletion) if delete_inactive_projects is not None: pulumi.set(__self__, "delete_inactive_projects", delete_inactive_projects) if deletion_adjourned_period is not None: @@ -723,12 +719,23 @@ def __init__(__self__, *, pulumi.set(__self__, "home_page_url", home_page_url) if housekeeping_enabled is not None: pulumi.set(__self__, "housekeeping_enabled", housekeeping_enabled) + if housekeeping_full_repack_period is not None: + warnings.warn("""housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead.""", DeprecationWarning) + pulumi.log.warn("""housekeeping_full_repack_period is deprecated: housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead.""") if housekeeping_full_repack_period is not None: pulumi.set(__self__, "housekeeping_full_repack_period", housekeeping_full_repack_period) + if housekeeping_gc_period is not None: + warnings.warn("""housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead.""", DeprecationWarning) + pulumi.log.warn("""housekeeping_gc_period is deprecated: housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead.""") if housekeeping_gc_period is not None: pulumi.set(__self__, "housekeeping_gc_period", housekeeping_gc_period) + if housekeeping_incremental_repack_period is not None: + warnings.warn("""housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead.""", DeprecationWarning) + pulumi.log.warn("""housekeeping_incremental_repack_period is deprecated: housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead.""") if housekeeping_incremental_repack_period is not None: pulumi.set(__self__, "housekeeping_incremental_repack_period", housekeeping_incremental_repack_period) + if housekeeping_optimize_repository_period is not None: + pulumi.set(__self__, "housekeeping_optimize_repository_period", housekeeping_optimize_repository_period) if html_emails_enabled is not None: pulumi.set(__self__, "html_emails_enabled", html_emails_enabled) if import_sources is not None: @@ -1430,30 +1437,6 @@ def default_snippet_visibility(self) -> Optional[pulumi.Input[str]]: def default_snippet_visibility(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "default_snippet_visibility", value) - @property - @pulumi.getter(name="delayedGroupDeletion") - def delayed_group_deletion(self) -> Optional[pulumi.Input[bool]]: - """ - Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - """ - return pulumi.get(self, "delayed_group_deletion") - - @delayed_group_deletion.setter - def delayed_group_deletion(self, value: Optional[pulumi.Input[bool]]): - pulumi.set(self, "delayed_group_deletion", value) - - @property - @pulumi.getter(name="delayedProjectDeletion") - def delayed_project_deletion(self) -> Optional[pulumi.Input[bool]]: - """ - Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. - """ - return pulumi.get(self, "delayed_project_deletion") - - @delayed_project_deletion.setter - def delayed_project_deletion(self, value: Optional[pulumi.Input[bool]]): - pulumi.set(self, "delayed_project_deletion", value) - @property @pulumi.getter(name="deleteInactiveProjects") def delete_inactive_projects(self) -> Optional[pulumi.Input[bool]]: @@ -1470,7 +1453,7 @@ def delete_inactive_projects(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="deletionAdjournedPeriod") def deletion_adjourned_period(self) -> Optional[pulumi.Input[int]]: """ - The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. """ return pulumi.get(self, "deletion_adjourned_period") @@ -2310,7 +2293,9 @@ def home_page_url(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="housekeepingEnabled") def housekeeping_enabled(self) -> Optional[pulumi.Input[bool]]: """ - (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + Enable or disable Git housekeeping. + If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. """ return pulumi.get(self, "housekeeping_enabled") @@ -2324,6 +2309,9 @@ def housekeeping_full_repack_period(self) -> Optional[pulumi.Input[int]]: """ Number of Git pushes after which an incremental git repack is run. """ + warnings.warn("""housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead.""", DeprecationWarning) + pulumi.log.warn("""housekeeping_full_repack_period is deprecated: housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead.""") + return pulumi.get(self, "housekeeping_full_repack_period") @housekeeping_full_repack_period.setter @@ -2336,6 +2324,9 @@ def housekeeping_gc_period(self) -> Optional[pulumi.Input[int]]: """ Number of Git pushes after which git gc is run. """ + warnings.warn("""housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead.""", DeprecationWarning) + pulumi.log.warn("""housekeeping_gc_period is deprecated: housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead.""") + return pulumi.get(self, "housekeeping_gc_period") @housekeeping_gc_period.setter @@ -2348,12 +2339,27 @@ def housekeeping_incremental_repack_period(self) -> Optional[pulumi.Input[int]]: """ Number of Git pushes after which an incremental git repack is run. """ + warnings.warn("""housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead.""", DeprecationWarning) + pulumi.log.warn("""housekeeping_incremental_repack_period is deprecated: housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead.""") + return pulumi.get(self, "housekeeping_incremental_repack_period") @housekeeping_incremental_repack_period.setter def housekeeping_incremental_repack_period(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "housekeeping_incremental_repack_period", value) + @property + @pulumi.getter(name="housekeepingOptimizeRepositoryPeriod") + def housekeeping_optimize_repository_period(self) -> Optional[pulumi.Input[int]]: + """ + Number of Git pushes after which an incremental git repack is run. + """ + return pulumi.get(self, "housekeeping_optimize_repository_period") + + @housekeeping_optimize_repository_period.setter + def housekeeping_optimize_repository_period(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "housekeeping_optimize_repository_period", value) + @property @pulumi.getter(name="htmlEmailsEnabled") def html_emails_enabled(self) -> Optional[pulumi.Input[bool]]: @@ -3931,8 +3937,6 @@ def __init__(__self__, *, default_project_visibility: Optional[pulumi.Input[str]] = None, default_projects_limit: Optional[pulumi.Input[int]] = None, default_snippet_visibility: Optional[pulumi.Input[str]] = None, - delayed_group_deletion: Optional[pulumi.Input[bool]] = None, - delayed_project_deletion: Optional[pulumi.Input[bool]] = None, delete_inactive_projects: Optional[pulumi.Input[bool]] = None, deletion_adjourned_period: Optional[pulumi.Input[int]] = None, diff_max_files: Optional[pulumi.Input[int]] = None, @@ -4008,6 +4012,7 @@ def __init__(__self__, *, housekeeping_full_repack_period: Optional[pulumi.Input[int]] = None, housekeeping_gc_period: Optional[pulumi.Input[int]] = None, housekeeping_incremental_repack_period: Optional[pulumi.Input[int]] = None, + housekeeping_optimize_repository_period: Optional[pulumi.Input[int]] = None, html_emails_enabled: Optional[pulumi.Input[bool]] = None, import_sources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, in_product_marketing_emails_enabled: Optional[pulumi.Input[bool]] = None, @@ -4175,10 +4180,8 @@ def __init__(__self__, *, :param pulumi.Input[str] default_project_visibility: What visibility level new projects receive. Can take private, internal and public as a parameter. :param pulumi.Input[int] default_projects_limit: Project limit per user. :param pulumi.Input[str] default_snippet_visibility: What visibility level new snippets receive. Can take private, internal and public as a parameter. - :param pulumi.Input[bool] delayed_group_deletion: Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - :param pulumi.Input[bool] delayed_project_deletion: Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. :param pulumi.Input[bool] delete_inactive_projects: Enable inactive project deletion feature. Introduced in GitLab 14.10. Became operational in GitLab 15.0 (with feature flag inactive*projects*deletion). - :param pulumi.Input[int] deletion_adjourned_period: The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + :param pulumi.Input[int] deletion_adjourned_period: The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. :param pulumi.Input[int] diff_max_files: Maximum files in a diff. :param pulumi.Input[int] diff_max_lines: Maximum lines in a diff. :param pulumi.Input[int] diff_max_patch_bytes: Maximum diff patch size, in bytes. @@ -4248,10 +4251,13 @@ def __init__(__self__, *, :param pulumi.Input[str] help_text: GitLab server administrator information. :param pulumi.Input[bool] hide_third_party_offers: Do not display offers from third parties in GitLab. :param pulumi.Input[str] home_page_url: Redirect to this URL when not logged in. - :param pulumi.Input[bool] housekeeping_enabled: (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + :param pulumi.Input[bool] housekeeping_enabled: Enable or disable Git housekeeping. + If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. :param pulumi.Input[int] housekeeping_full_repack_period: Number of Git pushes after which an incremental git repack is run. :param pulumi.Input[int] housekeeping_gc_period: Number of Git pushes after which git gc is run. :param pulumi.Input[int] housekeeping_incremental_repack_period: Number of Git pushes after which an incremental git repack is run. + :param pulumi.Input[int] housekeeping_optimize_repository_period: Number of Git pushes after which an incremental git repack is run. :param pulumi.Input[bool] html_emails_enabled: Enable HTML emails. :param pulumi.Input[Sequence[pulumi.Input[str]]] import_sources: Sources to allow project import from. Valid values are: `github`, `bitbucket`, `bitbucket_server`, `fogbugz`, `git`, `Project`, `gitea`, `manifest` :param pulumi.Input[bool] in_product_marketing_emails_enabled: Enable in-product marketing emails. @@ -4455,10 +4461,6 @@ def __init__(__self__, *, pulumi.set(__self__, "default_projects_limit", default_projects_limit) if default_snippet_visibility is not None: pulumi.set(__self__, "default_snippet_visibility", default_snippet_visibility) - if delayed_group_deletion is not None: - pulumi.set(__self__, "delayed_group_deletion", delayed_group_deletion) - if delayed_project_deletion is not None: - pulumi.set(__self__, "delayed_project_deletion", delayed_project_deletion) if delete_inactive_projects is not None: pulumi.set(__self__, "delete_inactive_projects", delete_inactive_projects) if deletion_adjourned_period is not None: @@ -4603,12 +4605,23 @@ def __init__(__self__, *, pulumi.set(__self__, "home_page_url", home_page_url) if housekeeping_enabled is not None: pulumi.set(__self__, "housekeeping_enabled", housekeeping_enabled) + if housekeeping_full_repack_period is not None: + warnings.warn("""housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead.""", DeprecationWarning) + pulumi.log.warn("""housekeeping_full_repack_period is deprecated: housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead.""") if housekeeping_full_repack_period is not None: pulumi.set(__self__, "housekeeping_full_repack_period", housekeeping_full_repack_period) + if housekeeping_gc_period is not None: + warnings.warn("""housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead.""", DeprecationWarning) + pulumi.log.warn("""housekeeping_gc_period is deprecated: housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead.""") if housekeeping_gc_period is not None: pulumi.set(__self__, "housekeeping_gc_period", housekeeping_gc_period) + if housekeeping_incremental_repack_period is not None: + warnings.warn("""housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead.""", DeprecationWarning) + pulumi.log.warn("""housekeeping_incremental_repack_period is deprecated: housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead.""") if housekeeping_incremental_repack_period is not None: pulumi.set(__self__, "housekeeping_incremental_repack_period", housekeeping_incremental_repack_period) + if housekeeping_optimize_repository_period is not None: + pulumi.set(__self__, "housekeeping_optimize_repository_period", housekeeping_optimize_repository_period) if html_emails_enabled is not None: pulumi.set(__self__, "html_emails_enabled", html_emails_enabled) if import_sources is not None: @@ -5310,30 +5323,6 @@ def default_snippet_visibility(self) -> Optional[pulumi.Input[str]]: def default_snippet_visibility(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "default_snippet_visibility", value) - @property - @pulumi.getter(name="delayedGroupDeletion") - def delayed_group_deletion(self) -> Optional[pulumi.Input[bool]]: - """ - Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - """ - return pulumi.get(self, "delayed_group_deletion") - - @delayed_group_deletion.setter - def delayed_group_deletion(self, value: Optional[pulumi.Input[bool]]): - pulumi.set(self, "delayed_group_deletion", value) - - @property - @pulumi.getter(name="delayedProjectDeletion") - def delayed_project_deletion(self) -> Optional[pulumi.Input[bool]]: - """ - Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. - """ - return pulumi.get(self, "delayed_project_deletion") - - @delayed_project_deletion.setter - def delayed_project_deletion(self, value: Optional[pulumi.Input[bool]]): - pulumi.set(self, "delayed_project_deletion", value) - @property @pulumi.getter(name="deleteInactiveProjects") def delete_inactive_projects(self) -> Optional[pulumi.Input[bool]]: @@ -5350,7 +5339,7 @@ def delete_inactive_projects(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="deletionAdjournedPeriod") def deletion_adjourned_period(self) -> Optional[pulumi.Input[int]]: """ - The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. """ return pulumi.get(self, "deletion_adjourned_period") @@ -6190,7 +6179,9 @@ def home_page_url(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="housekeepingEnabled") def housekeeping_enabled(self) -> Optional[pulumi.Input[bool]]: """ - (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + Enable or disable Git housekeeping. + If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. """ return pulumi.get(self, "housekeeping_enabled") @@ -6204,6 +6195,9 @@ def housekeeping_full_repack_period(self) -> Optional[pulumi.Input[int]]: """ Number of Git pushes after which an incremental git repack is run. """ + warnings.warn("""housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead.""", DeprecationWarning) + pulumi.log.warn("""housekeeping_full_repack_period is deprecated: housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead.""") + return pulumi.get(self, "housekeeping_full_repack_period") @housekeeping_full_repack_period.setter @@ -6216,6 +6210,9 @@ def housekeeping_gc_period(self) -> Optional[pulumi.Input[int]]: """ Number of Git pushes after which git gc is run. """ + warnings.warn("""housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead.""", DeprecationWarning) + pulumi.log.warn("""housekeeping_gc_period is deprecated: housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead.""") + return pulumi.get(self, "housekeeping_gc_period") @housekeeping_gc_period.setter @@ -6228,12 +6225,27 @@ def housekeeping_incremental_repack_period(self) -> Optional[pulumi.Input[int]]: """ Number of Git pushes after which an incremental git repack is run. """ + warnings.warn("""housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead.""", DeprecationWarning) + pulumi.log.warn("""housekeeping_incremental_repack_period is deprecated: housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead.""") + return pulumi.get(self, "housekeeping_incremental_repack_period") @housekeeping_incremental_repack_period.setter def housekeeping_incremental_repack_period(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "housekeeping_incremental_repack_period", value) + @property + @pulumi.getter(name="housekeepingOptimizeRepositoryPeriod") + def housekeeping_optimize_repository_period(self) -> Optional[pulumi.Input[int]]: + """ + Number of Git pushes after which an incremental git repack is run. + """ + return pulumi.get(self, "housekeeping_optimize_repository_period") + + @housekeeping_optimize_repository_period.setter + def housekeeping_optimize_repository_period(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "housekeeping_optimize_repository_period", value) + @property @pulumi.getter(name="htmlEmailsEnabled") def html_emails_enabled(self) -> Optional[pulumi.Input[bool]]: @@ -7813,8 +7825,6 @@ def __init__(__self__, default_project_visibility: Optional[pulumi.Input[str]] = None, default_projects_limit: Optional[pulumi.Input[int]] = None, default_snippet_visibility: Optional[pulumi.Input[str]] = None, - delayed_group_deletion: Optional[pulumi.Input[bool]] = None, - delayed_project_deletion: Optional[pulumi.Input[bool]] = None, delete_inactive_projects: Optional[pulumi.Input[bool]] = None, deletion_adjourned_period: Optional[pulumi.Input[int]] = None, diff_max_files: Optional[pulumi.Input[int]] = None, @@ -7890,6 +7900,7 @@ def __init__(__self__, housekeeping_full_repack_period: Optional[pulumi.Input[int]] = None, housekeeping_gc_period: Optional[pulumi.Input[int]] = None, housekeeping_incremental_repack_period: Optional[pulumi.Input[int]] = None, + housekeeping_optimize_repository_period: Optional[pulumi.Input[int]] = None, html_emails_enabled: Optional[pulumi.Input[bool]] = None, import_sources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, in_product_marketing_emails_enabled: Optional[pulumi.Input[bool]] = None, @@ -8071,10 +8082,8 @@ def __init__(__self__, :param pulumi.Input[str] default_project_visibility: What visibility level new projects receive. Can take private, internal and public as a parameter. :param pulumi.Input[int] default_projects_limit: Project limit per user. :param pulumi.Input[str] default_snippet_visibility: What visibility level new snippets receive. Can take private, internal and public as a parameter. - :param pulumi.Input[bool] delayed_group_deletion: Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - :param pulumi.Input[bool] delayed_project_deletion: Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. :param pulumi.Input[bool] delete_inactive_projects: Enable inactive project deletion feature. Introduced in GitLab 14.10. Became operational in GitLab 15.0 (with feature flag inactive*projects*deletion). - :param pulumi.Input[int] deletion_adjourned_period: The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + :param pulumi.Input[int] deletion_adjourned_period: The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. :param pulumi.Input[int] diff_max_files: Maximum files in a diff. :param pulumi.Input[int] diff_max_lines: Maximum lines in a diff. :param pulumi.Input[int] diff_max_patch_bytes: Maximum diff patch size, in bytes. @@ -8144,10 +8153,13 @@ def __init__(__self__, :param pulumi.Input[str] help_text: GitLab server administrator information. :param pulumi.Input[bool] hide_third_party_offers: Do not display offers from third parties in GitLab. :param pulumi.Input[str] home_page_url: Redirect to this URL when not logged in. - :param pulumi.Input[bool] housekeeping_enabled: (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + :param pulumi.Input[bool] housekeeping_enabled: Enable or disable Git housekeeping. + If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. :param pulumi.Input[int] housekeeping_full_repack_period: Number of Git pushes after which an incremental git repack is run. :param pulumi.Input[int] housekeeping_gc_period: Number of Git pushes after which git gc is run. :param pulumi.Input[int] housekeeping_incremental_repack_period: Number of Git pushes after which an incremental git repack is run. + :param pulumi.Input[int] housekeeping_optimize_repository_period: Number of Git pushes after which an incremental git repack is run. :param pulumi.Input[bool] html_emails_enabled: Enable HTML emails. :param pulumi.Input[Sequence[pulumi.Input[str]]] import_sources: Sources to allow project import from. Valid values are: `github`, `bitbucket`, `bitbucket_server`, `fogbugz`, `git`, `Project`, `gitea`, `manifest` :param pulumi.Input[bool] in_product_marketing_emails_enabled: Enable in-product marketing emails. @@ -8348,8 +8360,6 @@ def _internal_init(__self__, default_project_visibility: Optional[pulumi.Input[str]] = None, default_projects_limit: Optional[pulumi.Input[int]] = None, default_snippet_visibility: Optional[pulumi.Input[str]] = None, - delayed_group_deletion: Optional[pulumi.Input[bool]] = None, - delayed_project_deletion: Optional[pulumi.Input[bool]] = None, delete_inactive_projects: Optional[pulumi.Input[bool]] = None, deletion_adjourned_period: Optional[pulumi.Input[int]] = None, diff_max_files: Optional[pulumi.Input[int]] = None, @@ -8425,6 +8435,7 @@ def _internal_init(__self__, housekeeping_full_repack_period: Optional[pulumi.Input[int]] = None, housekeeping_gc_period: Optional[pulumi.Input[int]] = None, housekeeping_incremental_repack_period: Optional[pulumi.Input[int]] = None, + housekeeping_optimize_repository_period: Optional[pulumi.Input[int]] = None, html_emails_enabled: Optional[pulumi.Input[bool]] = None, import_sources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, in_product_marketing_emails_enabled: Optional[pulumi.Input[bool]] = None, @@ -8599,8 +8610,6 @@ def _internal_init(__self__, __props__.__dict__["default_project_visibility"] = default_project_visibility __props__.__dict__["default_projects_limit"] = default_projects_limit __props__.__dict__["default_snippet_visibility"] = default_snippet_visibility - __props__.__dict__["delayed_group_deletion"] = delayed_group_deletion - __props__.__dict__["delayed_project_deletion"] = delayed_project_deletion __props__.__dict__["delete_inactive_projects"] = delete_inactive_projects __props__.__dict__["deletion_adjourned_period"] = deletion_adjourned_period __props__.__dict__["diff_max_files"] = diff_max_files @@ -8676,6 +8685,7 @@ def _internal_init(__self__, __props__.__dict__["housekeeping_full_repack_period"] = housekeeping_full_repack_period __props__.__dict__["housekeeping_gc_period"] = housekeeping_gc_period __props__.__dict__["housekeeping_incremental_repack_period"] = housekeeping_incremental_repack_period + __props__.__dict__["housekeeping_optimize_repository_period"] = housekeeping_optimize_repository_period __props__.__dict__["html_emails_enabled"] = html_emails_enabled __props__.__dict__["import_sources"] = import_sources __props__.__dict__["in_product_marketing_emails_enabled"] = in_product_marketing_emails_enabled @@ -8853,8 +8863,6 @@ def get(resource_name: str, default_project_visibility: Optional[pulumi.Input[str]] = None, default_projects_limit: Optional[pulumi.Input[int]] = None, default_snippet_visibility: Optional[pulumi.Input[str]] = None, - delayed_group_deletion: Optional[pulumi.Input[bool]] = None, - delayed_project_deletion: Optional[pulumi.Input[bool]] = None, delete_inactive_projects: Optional[pulumi.Input[bool]] = None, deletion_adjourned_period: Optional[pulumi.Input[int]] = None, diff_max_files: Optional[pulumi.Input[int]] = None, @@ -8930,6 +8938,7 @@ def get(resource_name: str, housekeeping_full_repack_period: Optional[pulumi.Input[int]] = None, housekeeping_gc_period: Optional[pulumi.Input[int]] = None, housekeeping_incremental_repack_period: Optional[pulumi.Input[int]] = None, + housekeeping_optimize_repository_period: Optional[pulumi.Input[int]] = None, html_emails_enabled: Optional[pulumi.Input[bool]] = None, import_sources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, in_product_marketing_emails_enabled: Optional[pulumi.Input[bool]] = None, @@ -9102,10 +9111,8 @@ def get(resource_name: str, :param pulumi.Input[str] default_project_visibility: What visibility level new projects receive. Can take private, internal and public as a parameter. :param pulumi.Input[int] default_projects_limit: Project limit per user. :param pulumi.Input[str] default_snippet_visibility: What visibility level new snippets receive. Can take private, internal and public as a parameter. - :param pulumi.Input[bool] delayed_group_deletion: Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - :param pulumi.Input[bool] delayed_project_deletion: Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. :param pulumi.Input[bool] delete_inactive_projects: Enable inactive project deletion feature. Introduced in GitLab 14.10. Became operational in GitLab 15.0 (with feature flag inactive*projects*deletion). - :param pulumi.Input[int] deletion_adjourned_period: The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + :param pulumi.Input[int] deletion_adjourned_period: The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. :param pulumi.Input[int] diff_max_files: Maximum files in a diff. :param pulumi.Input[int] diff_max_lines: Maximum lines in a diff. :param pulumi.Input[int] diff_max_patch_bytes: Maximum diff patch size, in bytes. @@ -9175,10 +9182,13 @@ def get(resource_name: str, :param pulumi.Input[str] help_text: GitLab server administrator information. :param pulumi.Input[bool] hide_third_party_offers: Do not display offers from third parties in GitLab. :param pulumi.Input[str] home_page_url: Redirect to this URL when not logged in. - :param pulumi.Input[bool] housekeeping_enabled: (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + :param pulumi.Input[bool] housekeeping_enabled: Enable or disable Git housekeeping. + If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. :param pulumi.Input[int] housekeeping_full_repack_period: Number of Git pushes after which an incremental git repack is run. :param pulumi.Input[int] housekeeping_gc_period: Number of Git pushes after which git gc is run. :param pulumi.Input[int] housekeeping_incremental_repack_period: Number of Git pushes after which an incremental git repack is run. + :param pulumi.Input[int] housekeeping_optimize_repository_period: Number of Git pushes after which an incremental git repack is run. :param pulumi.Input[bool] html_emails_enabled: Enable HTML emails. :param pulumi.Input[Sequence[pulumi.Input[str]]] import_sources: Sources to allow project import from. Valid values are: `github`, `bitbucket`, `bitbucket_server`, `fogbugz`, `git`, `Project`, `gitea`, `manifest` :param pulumi.Input[bool] in_product_marketing_emails_enabled: Enable in-product marketing emails. @@ -9349,8 +9359,6 @@ def get(resource_name: str, __props__.__dict__["default_project_visibility"] = default_project_visibility __props__.__dict__["default_projects_limit"] = default_projects_limit __props__.__dict__["default_snippet_visibility"] = default_snippet_visibility - __props__.__dict__["delayed_group_deletion"] = delayed_group_deletion - __props__.__dict__["delayed_project_deletion"] = delayed_project_deletion __props__.__dict__["delete_inactive_projects"] = delete_inactive_projects __props__.__dict__["deletion_adjourned_period"] = deletion_adjourned_period __props__.__dict__["diff_max_files"] = diff_max_files @@ -9426,6 +9434,7 @@ def get(resource_name: str, __props__.__dict__["housekeeping_full_repack_period"] = housekeeping_full_repack_period __props__.__dict__["housekeeping_gc_period"] = housekeeping_gc_period __props__.__dict__["housekeeping_incremental_repack_period"] = housekeeping_incremental_repack_period + __props__.__dict__["housekeeping_optimize_repository_period"] = housekeeping_optimize_repository_period __props__.__dict__["html_emails_enabled"] = html_emails_enabled __props__.__dict__["import_sources"] = import_sources __props__.__dict__["in_product_marketing_emails_enabled"] = in_product_marketing_emails_enabled @@ -9852,22 +9861,6 @@ def default_snippet_visibility(self) -> pulumi.Output[str]: """ return pulumi.get(self, "default_snippet_visibility") - @property - @pulumi.getter(name="delayedGroupDeletion") - def delayed_group_deletion(self) -> pulumi.Output[bool]: - """ - Enable delayed group deletion. Introduced in GitLab 15.0. From GitLab 15.1, disables and locks the group-level setting for delayed protect deletion when set to false. - """ - return pulumi.get(self, "delayed_group_deletion") - - @property - @pulumi.getter(name="delayedProjectDeletion") - def delayed_project_deletion(self) -> pulumi.Output[bool]: - """ - Enable delayed project deletion by default in new groups. From GitLab 15.1, can only be enabled when delayed*group*deletion is true. - """ - return pulumi.get(self, "delayed_project_deletion") - @property @pulumi.getter(name="deleteInactiveProjects") def delete_inactive_projects(self) -> pulumi.Output[bool]: @@ -9880,7 +9873,7 @@ def delete_inactive_projects(self) -> pulumi.Output[bool]: @pulumi.getter(name="deletionAdjournedPeriod") def deletion_adjourned_period(self) -> pulumi.Output[int]: """ - The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. From GitLab 15.1, a hook on deletion*adjourned*period sets the period to 1 on every update, and sets both delayed*project*deletion and delayed*group*deletion to false if the period is 0. + The number of days to wait before deleting a project or group that is marked for deletion. Value must be between 1 and 90. """ return pulumi.get(self, "deletion_adjourned_period") @@ -10440,7 +10433,9 @@ def home_page_url(self) -> pulumi.Output[str]: @pulumi.getter(name="housekeepingEnabled") def housekeeping_enabled(self) -> pulumi.Output[bool]: """ - (If enabled, requires: housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period) Enable or disable Git housekeeping. + Enable or disable Git housekeeping. + If enabled, requires either housekeeping*optimize*repository*period OR housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period. + Options housekeeping*bitmaps*enabled, housekeeping*full*repack*period, housekeeping*gc*period, and housekeeping*incremental*repack*period are deprecated. Use housekeeping*optimize*repository*period instead. """ return pulumi.get(self, "housekeeping_enabled") @@ -10450,6 +10445,9 @@ def housekeeping_full_repack_period(self) -> pulumi.Output[int]: """ Number of Git pushes after which an incremental git repack is run. """ + warnings.warn("""housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead.""", DeprecationWarning) + pulumi.log.warn("""housekeeping_full_repack_period is deprecated: housekeeping_full_repack_period is deprecated. Use housekeeping_optimize_repository_period instead.""") + return pulumi.get(self, "housekeeping_full_repack_period") @property @@ -10458,6 +10456,9 @@ def housekeeping_gc_period(self) -> pulumi.Output[int]: """ Number of Git pushes after which git gc is run. """ + warnings.warn("""housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead.""", DeprecationWarning) + pulumi.log.warn("""housekeeping_gc_period is deprecated: housekeeping_gc_period is deprecated. Use housekeeping_optimize_repository_period instead.""") + return pulumi.get(self, "housekeeping_gc_period") @property @@ -10466,8 +10467,19 @@ def housekeeping_incremental_repack_period(self) -> pulumi.Output[int]: """ Number of Git pushes after which an incremental git repack is run. """ + warnings.warn("""housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead.""", DeprecationWarning) + pulumi.log.warn("""housekeeping_incremental_repack_period is deprecated: housekeeping_incremental_repack_period is deprecated. Use housekeeping_optimize_repository_period instead.""") + return pulumi.get(self, "housekeeping_incremental_repack_period") + @property + @pulumi.getter(name="housekeepingOptimizeRepositoryPeriod") + def housekeeping_optimize_repository_period(self) -> pulumi.Output[int]: + """ + Number of Git pushes after which an incremental git repack is run. + """ + return pulumi.get(self, "housekeeping_optimize_repository_period") + @property @pulumi.getter(name="htmlEmailsEnabled") def html_emails_enabled(self) -> pulumi.Output[bool]: diff --git a/sdk/python/pulumi_gitlab/get_group.py b/sdk/python/pulumi_gitlab/get_group.py index 195baf4f..d5555cfc 100644 --- a/sdk/python/pulumi_gitlab/get_group.py +++ b/sdk/python/pulumi_gitlab/get_group.py @@ -8,6 +8,7 @@ import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload from . import _utilities +from . import outputs __all__ = [ 'GetGroupResult', @@ -21,7 +22,7 @@ class GetGroupResult: """ A collection of values returned by getGroup. """ - def __init__(__self__, default_branch_protection=None, description=None, extra_shared_runners_minutes_limit=None, full_name=None, full_path=None, group_id=None, id=None, lfs_enabled=None, membership_lock=None, name=None, parent_id=None, path=None, prevent_forking_outside_group=None, request_access_enabled=None, runners_token=None, shared_runners_minutes_limit=None, shared_runners_setting=None, visibility_level=None, web_url=None, wiki_access_level=None): + def __init__(__self__, default_branch_protection=None, description=None, extra_shared_runners_minutes_limit=None, full_name=None, full_path=None, group_id=None, id=None, lfs_enabled=None, membership_lock=None, name=None, parent_id=None, path=None, prevent_forking_outside_group=None, request_access_enabled=None, runners_token=None, shared_runners_minutes_limit=None, shared_runners_setting=None, shared_with_groups=None, visibility_level=None, web_url=None, wiki_access_level=None): if default_branch_protection and not isinstance(default_branch_protection, int): raise TypeError("Expected argument 'default_branch_protection' to be a int") pulumi.set(__self__, "default_branch_protection", default_branch_protection) @@ -73,6 +74,9 @@ def __init__(__self__, default_branch_protection=None, description=None, extra_s if shared_runners_setting and not isinstance(shared_runners_setting, str): raise TypeError("Expected argument 'shared_runners_setting' to be a str") pulumi.set(__self__, "shared_runners_setting", shared_runners_setting) + if shared_with_groups and not isinstance(shared_with_groups, list): + raise TypeError("Expected argument 'shared_with_groups' to be a list") + pulumi.set(__self__, "shared_with_groups", shared_with_groups) if visibility_level and not isinstance(visibility_level, str): raise TypeError("Expected argument 'visibility_level' to be a str") pulumi.set(__self__, "visibility_level", visibility_level) @@ -219,6 +223,14 @@ def shared_runners_setting(self) -> str: """ return pulumi.get(self, "shared_runners_setting") + @property + @pulumi.getter(name="sharedWithGroups") + def shared_with_groups(self) -> Sequence['outputs.GetGroupSharedWithGroupResult']: + """ + Describes groups which have access shared to this group. + """ + return pulumi.get(self, "shared_with_groups") + @property @pulumi.getter(name="visibilityLevel") def visibility_level(self) -> str: @@ -267,6 +279,7 @@ def __await__(self): runners_token=self.runners_token, shared_runners_minutes_limit=self.shared_runners_minutes_limit, shared_runners_setting=self.shared_runners_setting, + shared_with_groups=self.shared_with_groups, visibility_level=self.visibility_level, web_url=self.web_url, wiki_access_level=self.wiki_access_level) @@ -291,7 +304,6 @@ def get_group(full_path: Optional[str] = None, :param str full_path: The full path of the group. - :param int group_id: The ID of the group. """ __args__ = dict() __args__['fullPath'] = full_path @@ -317,6 +329,7 @@ def get_group(full_path: Optional[str] = None, runners_token=pulumi.get(__ret__, 'runners_token'), shared_runners_minutes_limit=pulumi.get(__ret__, 'shared_runners_minutes_limit'), shared_runners_setting=pulumi.get(__ret__, 'shared_runners_setting'), + shared_with_groups=pulumi.get(__ret__, 'shared_with_groups'), visibility_level=pulumi.get(__ret__, 'visibility_level'), web_url=pulumi.get(__ret__, 'web_url'), wiki_access_level=pulumi.get(__ret__, 'wiki_access_level')) @@ -342,6 +355,5 @@ def get_group_output(full_path: Optional[pulumi.Input[Optional[str]]] = None, :param str full_path: The full path of the group. - :param int group_id: The ID of the group. """ ... diff --git a/sdk/python/pulumi_gitlab/get_project.py b/sdk/python/pulumi_gitlab/get_project.py index f53ce1bb..77073e54 100644 --- a/sdk/python/pulumi_gitlab/get_project.py +++ b/sdk/python/pulumi_gitlab/get_project.py @@ -22,7 +22,7 @@ class GetProjectResult: """ A collection of values returned by getProject. """ - def __init__(__self__, analytics_access_level=None, archived=None, auto_cancel_pending_pipelines=None, auto_devops_deploy_strategy=None, auto_devops_enabled=None, autoclose_referenced_issues=None, build_git_strategy=None, build_timeout=None, builds_access_level=None, ci_config_path=None, ci_default_git_depth=None, ci_separated_caches=None, container_expiration_policies=None, container_registry_access_level=None, default_branch=None, description=None, emails_disabled=None, empty_repo=None, environments_access_level=None, external_authorization_classification_label=None, feature_flags_access_level=None, forking_access_level=None, http_url_to_repo=None, id=None, import_url=None, infrastructure_access_level=None, issues_access_level=None, issues_enabled=None, keep_latest_artifact=None, lfs_enabled=None, merge_commit_template=None, merge_pipelines_enabled=None, merge_requests_access_level=None, merge_requests_enabled=None, merge_trains_enabled=None, monitor_access_level=None, name=None, namespace_id=None, path=None, path_with_namespace=None, pipelines_enabled=None, printing_merge_request_link_enabled=None, public_builds=None, push_rules=None, releases_access_level=None, remove_source_branch_after_merge=None, repository_access_level=None, repository_storage=None, request_access_enabled=None, requirements_access_level=None, resolve_outdated_diff_discussions=None, restrict_user_defined_variables=None, runners_token=None, security_and_compliance_access_level=None, snippets_access_level=None, snippets_enabled=None, squash_commit_template=None, ssh_url_to_repo=None, suggestion_commit_message=None, topics=None, visibility_level=None, web_url=None, wiki_access_level=None, wiki_enabled=None): + def __init__(__self__, analytics_access_level=None, archived=None, auto_cancel_pending_pipelines=None, auto_devops_deploy_strategy=None, auto_devops_enabled=None, autoclose_referenced_issues=None, build_git_strategy=None, build_timeout=None, builds_access_level=None, ci_config_path=None, ci_default_git_depth=None, ci_separated_caches=None, container_expiration_policies=None, container_registry_access_level=None, default_branch=None, description=None, emails_disabled=None, empty_repo=None, environments_access_level=None, external_authorization_classification_label=None, feature_flags_access_level=None, forking_access_level=None, http_url_to_repo=None, id=None, import_url=None, infrastructure_access_level=None, issues_access_level=None, issues_enabled=None, keep_latest_artifact=None, lfs_enabled=None, merge_commit_template=None, merge_pipelines_enabled=None, merge_requests_access_level=None, merge_requests_enabled=None, merge_trains_enabled=None, monitor_access_level=None, name=None, namespace_id=None, path=None, path_with_namespace=None, pipelines_enabled=None, printing_merge_request_link_enabled=None, public_builds=None, push_rules=None, releases_access_level=None, remove_source_branch_after_merge=None, repository_access_level=None, repository_storage=None, request_access_enabled=None, requirements_access_level=None, resolve_outdated_diff_discussions=None, restrict_user_defined_variables=None, runners_token=None, security_and_compliance_access_level=None, shared_with_groups=None, snippets_access_level=None, snippets_enabled=None, squash_commit_template=None, ssh_url_to_repo=None, suggestion_commit_message=None, topics=None, visibility_level=None, web_url=None, wiki_access_level=None, wiki_enabled=None): if analytics_access_level and not isinstance(analytics_access_level, str): raise TypeError("Expected argument 'analytics_access_level' to be a str") pulumi.set(__self__, "analytics_access_level", analytics_access_level) @@ -185,6 +185,9 @@ def __init__(__self__, analytics_access_level=None, archived=None, auto_cancel_p if security_and_compliance_access_level and not isinstance(security_and_compliance_access_level, str): raise TypeError("Expected argument 'security_and_compliance_access_level' to be a str") pulumi.set(__self__, "security_and_compliance_access_level", security_and_compliance_access_level) + if shared_with_groups and not isinstance(shared_with_groups, list): + raise TypeError("Expected argument 'shared_with_groups' to be a list") + pulumi.set(__self__, "shared_with_groups", shared_with_groups) if snippets_access_level and not isinstance(snippets_access_level, str): raise TypeError("Expected argument 'snippets_access_level' to be a str") pulumi.set(__self__, "snippets_access_level", snippets_access_level) @@ -648,6 +651,14 @@ def security_and_compliance_access_level(self) -> str: """ return pulumi.get(self, "security_and_compliance_access_level") + @property + @pulumi.getter(name="sharedWithGroups") + def shared_with_groups(self) -> Sequence['outputs.GetProjectSharedWithGroupResult']: + """ + Describes groups which have access shared to this project. + """ + return pulumi.get(self, "shared_with_groups") + @property @pulumi.getter(name="snippetsAccessLevel") def snippets_access_level(self) -> str: @@ -789,6 +800,7 @@ def __await__(self): restrict_user_defined_variables=self.restrict_user_defined_variables, runners_token=self.runners_token, security_and_compliance_access_level=self.security_and_compliance_access_level, + shared_with_groups=self.shared_with_groups, snippets_access_level=self.snippets_access_level, snippets_enabled=self.snippets_enabled, squash_commit_template=self.squash_commit_template, @@ -889,6 +901,7 @@ def get_project(ci_default_git_depth: Optional[int] = None, restrict_user_defined_variables=pulumi.get(__ret__, 'restrict_user_defined_variables'), runners_token=pulumi.get(__ret__, 'runners_token'), security_and_compliance_access_level=pulumi.get(__ret__, 'security_and_compliance_access_level'), + shared_with_groups=pulumi.get(__ret__, 'shared_with_groups'), snippets_access_level=pulumi.get(__ret__, 'snippets_access_level'), snippets_enabled=pulumi.get(__ret__, 'snippets_enabled'), squash_commit_template=pulumi.get(__ret__, 'squash_commit_template'), diff --git a/sdk/python/pulumi_gitlab/get_user.py b/sdk/python/pulumi_gitlab/get_user.py index 13d8d580..92512c0f 100644 --- a/sdk/python/pulumi_gitlab/get_user.py +++ b/sdk/python/pulumi_gitlab/get_user.py @@ -21,7 +21,7 @@ class GetUserResult: """ A collection of values returned by getUser. """ - def __init__(__self__, avatar_url=None, bio=None, can_create_group=None, can_create_project=None, color_scheme_id=None, created_at=None, current_sign_in_at=None, email=None, extern_uid=None, external=None, id=None, is_admin=None, last_sign_in_at=None, linkedin=None, location=None, name=None, namespace_id=None, note=None, organization=None, projects_limit=None, skype=None, state=None, theme_id=None, twitter=None, two_factor_enabled=None, user_id=None, user_provider=None, username=None, website_url=None): + def __init__(__self__, avatar_url=None, bio=None, can_create_group=None, can_create_project=None, color_scheme_id=None, created_at=None, current_sign_in_at=None, email=None, extern_uid=None, external=None, id=None, is_admin=None, is_bot=None, last_sign_in_at=None, linkedin=None, location=None, name=None, namespace_id=None, note=None, organization=None, projects_limit=None, skype=None, state=None, theme_id=None, twitter=None, two_factor_enabled=None, user_id=None, user_provider=None, username=None, website_url=None): if avatar_url and not isinstance(avatar_url, str): raise TypeError("Expected argument 'avatar_url' to be a str") pulumi.set(__self__, "avatar_url", avatar_url) @@ -58,6 +58,9 @@ def __init__(__self__, avatar_url=None, bio=None, can_create_group=None, can_cre if is_admin and not isinstance(is_admin, bool): raise TypeError("Expected argument 'is_admin' to be a bool") pulumi.set(__self__, "is_admin", is_admin) + if is_bot and not isinstance(is_bot, bool): + raise TypeError("Expected argument 'is_bot' to be a bool") + pulumi.set(__self__, "is_bot", is_bot) if last_sign_in_at and not isinstance(last_sign_in_at, str): raise TypeError("Expected argument 'last_sign_in_at' to be a str") pulumi.set(__self__, "last_sign_in_at", last_sign_in_at) @@ -206,6 +209,14 @@ def is_admin(self) -> bool: """ return pulumi.get(self, "is_admin") + @property + @pulumi.getter(name="isBot") + def is_bot(self) -> bool: + """ + Whether the user is a bot. + """ + return pulumi.get(self, "is_bot") + @property @pulumi.getter(name="lastSignInAt") def last_sign_in_at(self) -> str: @@ -361,6 +372,7 @@ def __await__(self): external=self.external, id=self.id, is_admin=self.is_admin, + is_bot=self.is_bot, last_sign_in_at=self.last_sign_in_at, linkedin=self.linkedin, location=self.location, @@ -422,6 +434,7 @@ def get_user(email: Optional[str] = None, external=pulumi.get(__ret__, 'external'), id=pulumi.get(__ret__, 'id'), is_admin=pulumi.get(__ret__, 'is_admin'), + is_bot=pulumi.get(__ret__, 'is_bot'), last_sign_in_at=pulumi.get(__ret__, 'last_sign_in_at'), linkedin=pulumi.get(__ret__, 'linkedin'), location=pulumi.get(__ret__, 'location'), diff --git a/sdk/python/pulumi_gitlab/global_level_notifications.py b/sdk/python/pulumi_gitlab/global_level_notifications.py new file mode 100644 index 00000000..da317cb9 --- /dev/null +++ b/sdk/python/pulumi_gitlab/global_level_notifications.py @@ -0,0 +1,988 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from . import _utilities + +__all__ = ['GlobalLevelNotificationsArgs', 'GlobalLevelNotifications'] + +@pulumi.input_type +class GlobalLevelNotificationsArgs: + def __init__(__self__, *, + close_issue: Optional[pulumi.Input[bool]] = None, + close_merge_request: Optional[pulumi.Input[bool]] = None, + failed_pipeline: Optional[pulumi.Input[bool]] = None, + fixed_pipeline: Optional[pulumi.Input[bool]] = None, + issue_due: Optional[pulumi.Input[bool]] = None, + level: Optional[pulumi.Input[str]] = None, + merge_merge_request: Optional[pulumi.Input[bool]] = None, + merge_when_pipeline_succeeds: Optional[pulumi.Input[bool]] = None, + moved_project: Optional[pulumi.Input[bool]] = None, + new_issue: Optional[pulumi.Input[bool]] = None, + new_merge_request: Optional[pulumi.Input[bool]] = None, + new_note: Optional[pulumi.Input[bool]] = None, + push_to_merge_request: Optional[pulumi.Input[bool]] = None, + reassign_issue: Optional[pulumi.Input[bool]] = None, + reassign_merge_request: Optional[pulumi.Input[bool]] = None, + reopen_issue: Optional[pulumi.Input[bool]] = None, + reopen_merge_request: Optional[pulumi.Input[bool]] = None, + success_pipeline: Optional[pulumi.Input[bool]] = None): + """ + The set of arguments for constructing a GlobalLevelNotifications resource. + :param pulumi.Input[bool] close_issue: Enable notifications for closed issues. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] close_merge_request: Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] failed_pipeline: Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] fixed_pipeline: Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] issue_due: Enable notifications for due issues. Can only be used when `level` is `custom`. + :param pulumi.Input[str] level: The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + :param pulumi.Input[bool] merge_merge_request: Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] merge_when_pipeline_succeeds: Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] moved_project: Enable notifications for moved projects. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] new_issue: Enable notifications for new issues. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] new_merge_request: Enable notifications for new merge requests. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] new_note: Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] push_to_merge_request: Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] reassign_issue: Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] reassign_merge_request: Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] reopen_issue: Enable notifications for reopened issues. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] reopen_merge_request: Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] success_pipeline: Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + """ + if close_issue is not None: + pulumi.set(__self__, "close_issue", close_issue) + if close_merge_request is not None: + pulumi.set(__self__, "close_merge_request", close_merge_request) + if failed_pipeline is not None: + pulumi.set(__self__, "failed_pipeline", failed_pipeline) + if fixed_pipeline is not None: + pulumi.set(__self__, "fixed_pipeline", fixed_pipeline) + if issue_due is not None: + pulumi.set(__self__, "issue_due", issue_due) + if level is not None: + pulumi.set(__self__, "level", level) + if merge_merge_request is not None: + pulumi.set(__self__, "merge_merge_request", merge_merge_request) + if merge_when_pipeline_succeeds is not None: + pulumi.set(__self__, "merge_when_pipeline_succeeds", merge_when_pipeline_succeeds) + if moved_project is not None: + pulumi.set(__self__, "moved_project", moved_project) + if new_issue is not None: + pulumi.set(__self__, "new_issue", new_issue) + if new_merge_request is not None: + pulumi.set(__self__, "new_merge_request", new_merge_request) + if new_note is not None: + pulumi.set(__self__, "new_note", new_note) + if push_to_merge_request is not None: + pulumi.set(__self__, "push_to_merge_request", push_to_merge_request) + if reassign_issue is not None: + pulumi.set(__self__, "reassign_issue", reassign_issue) + if reassign_merge_request is not None: + pulumi.set(__self__, "reassign_merge_request", reassign_merge_request) + if reopen_issue is not None: + pulumi.set(__self__, "reopen_issue", reopen_issue) + if reopen_merge_request is not None: + pulumi.set(__self__, "reopen_merge_request", reopen_merge_request) + if success_pipeline is not None: + pulumi.set(__self__, "success_pipeline", success_pipeline) + + @property + @pulumi.getter(name="closeIssue") + def close_issue(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for closed issues. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "close_issue") + + @close_issue.setter + def close_issue(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "close_issue", value) + + @property + @pulumi.getter(name="closeMergeRequest") + def close_merge_request(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "close_merge_request") + + @close_merge_request.setter + def close_merge_request(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "close_merge_request", value) + + @property + @pulumi.getter(name="failedPipeline") + def failed_pipeline(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "failed_pipeline") + + @failed_pipeline.setter + def failed_pipeline(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "failed_pipeline", value) + + @property + @pulumi.getter(name="fixedPipeline") + def fixed_pipeline(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "fixed_pipeline") + + @fixed_pipeline.setter + def fixed_pipeline(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "fixed_pipeline", value) + + @property + @pulumi.getter(name="issueDue") + def issue_due(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for due issues. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "issue_due") + + @issue_due.setter + def issue_due(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "issue_due", value) + + @property + @pulumi.getter + def level(self) -> Optional[pulumi.Input[str]]: + """ + The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + """ + return pulumi.get(self, "level") + + @level.setter + def level(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "level", value) + + @property + @pulumi.getter(name="mergeMergeRequest") + def merge_merge_request(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "merge_merge_request") + + @merge_merge_request.setter + def merge_merge_request(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "merge_merge_request", value) + + @property + @pulumi.getter(name="mergeWhenPipelineSucceeds") + def merge_when_pipeline_succeeds(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "merge_when_pipeline_succeeds") + + @merge_when_pipeline_succeeds.setter + def merge_when_pipeline_succeeds(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "merge_when_pipeline_succeeds", value) + + @property + @pulumi.getter(name="movedProject") + def moved_project(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for moved projects. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "moved_project") + + @moved_project.setter + def moved_project(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "moved_project", value) + + @property + @pulumi.getter(name="newIssue") + def new_issue(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for new issues. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "new_issue") + + @new_issue.setter + def new_issue(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "new_issue", value) + + @property + @pulumi.getter(name="newMergeRequest") + def new_merge_request(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for new merge requests. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "new_merge_request") + + @new_merge_request.setter + def new_merge_request(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "new_merge_request", value) + + @property + @pulumi.getter(name="newNote") + def new_note(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "new_note") + + @new_note.setter + def new_note(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "new_note", value) + + @property + @pulumi.getter(name="pushToMergeRequest") + def push_to_merge_request(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "push_to_merge_request") + + @push_to_merge_request.setter + def push_to_merge_request(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "push_to_merge_request", value) + + @property + @pulumi.getter(name="reassignIssue") + def reassign_issue(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "reassign_issue") + + @reassign_issue.setter + def reassign_issue(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "reassign_issue", value) + + @property + @pulumi.getter(name="reassignMergeRequest") + def reassign_merge_request(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "reassign_merge_request") + + @reassign_merge_request.setter + def reassign_merge_request(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "reassign_merge_request", value) + + @property + @pulumi.getter(name="reopenIssue") + def reopen_issue(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for reopened issues. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "reopen_issue") + + @reopen_issue.setter + def reopen_issue(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "reopen_issue", value) + + @property + @pulumi.getter(name="reopenMergeRequest") + def reopen_merge_request(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "reopen_merge_request") + + @reopen_merge_request.setter + def reopen_merge_request(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "reopen_merge_request", value) + + @property + @pulumi.getter(name="successPipeline") + def success_pipeline(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "success_pipeline") + + @success_pipeline.setter + def success_pipeline(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "success_pipeline", value) + + +@pulumi.input_type +class _GlobalLevelNotificationsState: + def __init__(__self__, *, + close_issue: Optional[pulumi.Input[bool]] = None, + close_merge_request: Optional[pulumi.Input[bool]] = None, + failed_pipeline: Optional[pulumi.Input[bool]] = None, + fixed_pipeline: Optional[pulumi.Input[bool]] = None, + issue_due: Optional[pulumi.Input[bool]] = None, + level: Optional[pulumi.Input[str]] = None, + merge_merge_request: Optional[pulumi.Input[bool]] = None, + merge_when_pipeline_succeeds: Optional[pulumi.Input[bool]] = None, + moved_project: Optional[pulumi.Input[bool]] = None, + new_issue: Optional[pulumi.Input[bool]] = None, + new_merge_request: Optional[pulumi.Input[bool]] = None, + new_note: Optional[pulumi.Input[bool]] = None, + push_to_merge_request: Optional[pulumi.Input[bool]] = None, + reassign_issue: Optional[pulumi.Input[bool]] = None, + reassign_merge_request: Optional[pulumi.Input[bool]] = None, + reopen_issue: Optional[pulumi.Input[bool]] = None, + reopen_merge_request: Optional[pulumi.Input[bool]] = None, + success_pipeline: Optional[pulumi.Input[bool]] = None): + """ + Input properties used for looking up and filtering GlobalLevelNotifications resources. + :param pulumi.Input[bool] close_issue: Enable notifications for closed issues. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] close_merge_request: Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] failed_pipeline: Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] fixed_pipeline: Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] issue_due: Enable notifications for due issues. Can only be used when `level` is `custom`. + :param pulumi.Input[str] level: The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + :param pulumi.Input[bool] merge_merge_request: Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] merge_when_pipeline_succeeds: Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] moved_project: Enable notifications for moved projects. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] new_issue: Enable notifications for new issues. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] new_merge_request: Enable notifications for new merge requests. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] new_note: Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] push_to_merge_request: Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] reassign_issue: Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] reassign_merge_request: Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] reopen_issue: Enable notifications for reopened issues. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] reopen_merge_request: Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] success_pipeline: Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + """ + if close_issue is not None: + pulumi.set(__self__, "close_issue", close_issue) + if close_merge_request is not None: + pulumi.set(__self__, "close_merge_request", close_merge_request) + if failed_pipeline is not None: + pulumi.set(__self__, "failed_pipeline", failed_pipeline) + if fixed_pipeline is not None: + pulumi.set(__self__, "fixed_pipeline", fixed_pipeline) + if issue_due is not None: + pulumi.set(__self__, "issue_due", issue_due) + if level is not None: + pulumi.set(__self__, "level", level) + if merge_merge_request is not None: + pulumi.set(__self__, "merge_merge_request", merge_merge_request) + if merge_when_pipeline_succeeds is not None: + pulumi.set(__self__, "merge_when_pipeline_succeeds", merge_when_pipeline_succeeds) + if moved_project is not None: + pulumi.set(__self__, "moved_project", moved_project) + if new_issue is not None: + pulumi.set(__self__, "new_issue", new_issue) + if new_merge_request is not None: + pulumi.set(__self__, "new_merge_request", new_merge_request) + if new_note is not None: + pulumi.set(__self__, "new_note", new_note) + if push_to_merge_request is not None: + pulumi.set(__self__, "push_to_merge_request", push_to_merge_request) + if reassign_issue is not None: + pulumi.set(__self__, "reassign_issue", reassign_issue) + if reassign_merge_request is not None: + pulumi.set(__self__, "reassign_merge_request", reassign_merge_request) + if reopen_issue is not None: + pulumi.set(__self__, "reopen_issue", reopen_issue) + if reopen_merge_request is not None: + pulumi.set(__self__, "reopen_merge_request", reopen_merge_request) + if success_pipeline is not None: + pulumi.set(__self__, "success_pipeline", success_pipeline) + + @property + @pulumi.getter(name="closeIssue") + def close_issue(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for closed issues. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "close_issue") + + @close_issue.setter + def close_issue(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "close_issue", value) + + @property + @pulumi.getter(name="closeMergeRequest") + def close_merge_request(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "close_merge_request") + + @close_merge_request.setter + def close_merge_request(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "close_merge_request", value) + + @property + @pulumi.getter(name="failedPipeline") + def failed_pipeline(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "failed_pipeline") + + @failed_pipeline.setter + def failed_pipeline(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "failed_pipeline", value) + + @property + @pulumi.getter(name="fixedPipeline") + def fixed_pipeline(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "fixed_pipeline") + + @fixed_pipeline.setter + def fixed_pipeline(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "fixed_pipeline", value) + + @property + @pulumi.getter(name="issueDue") + def issue_due(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for due issues. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "issue_due") + + @issue_due.setter + def issue_due(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "issue_due", value) + + @property + @pulumi.getter + def level(self) -> Optional[pulumi.Input[str]]: + """ + The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + """ + return pulumi.get(self, "level") + + @level.setter + def level(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "level", value) + + @property + @pulumi.getter(name="mergeMergeRequest") + def merge_merge_request(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "merge_merge_request") + + @merge_merge_request.setter + def merge_merge_request(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "merge_merge_request", value) + + @property + @pulumi.getter(name="mergeWhenPipelineSucceeds") + def merge_when_pipeline_succeeds(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "merge_when_pipeline_succeeds") + + @merge_when_pipeline_succeeds.setter + def merge_when_pipeline_succeeds(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "merge_when_pipeline_succeeds", value) + + @property + @pulumi.getter(name="movedProject") + def moved_project(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for moved projects. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "moved_project") + + @moved_project.setter + def moved_project(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "moved_project", value) + + @property + @pulumi.getter(name="newIssue") + def new_issue(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for new issues. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "new_issue") + + @new_issue.setter + def new_issue(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "new_issue", value) + + @property + @pulumi.getter(name="newMergeRequest") + def new_merge_request(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for new merge requests. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "new_merge_request") + + @new_merge_request.setter + def new_merge_request(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "new_merge_request", value) + + @property + @pulumi.getter(name="newNote") + def new_note(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "new_note") + + @new_note.setter + def new_note(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "new_note", value) + + @property + @pulumi.getter(name="pushToMergeRequest") + def push_to_merge_request(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "push_to_merge_request") + + @push_to_merge_request.setter + def push_to_merge_request(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "push_to_merge_request", value) + + @property + @pulumi.getter(name="reassignIssue") + def reassign_issue(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "reassign_issue") + + @reassign_issue.setter + def reassign_issue(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "reassign_issue", value) + + @property + @pulumi.getter(name="reassignMergeRequest") + def reassign_merge_request(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "reassign_merge_request") + + @reassign_merge_request.setter + def reassign_merge_request(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "reassign_merge_request", value) + + @property + @pulumi.getter(name="reopenIssue") + def reopen_issue(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for reopened issues. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "reopen_issue") + + @reopen_issue.setter + def reopen_issue(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "reopen_issue", value) + + @property + @pulumi.getter(name="reopenMergeRequest") + def reopen_merge_request(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "reopen_merge_request") + + @reopen_merge_request.setter + def reopen_merge_request(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "reopen_merge_request", value) + + @property + @pulumi.getter(name="successPipeline") + def success_pipeline(self) -> Optional[pulumi.Input[bool]]: + """ + Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "success_pipeline") + + @success_pipeline.setter + def success_pipeline(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "success_pipeline", value) + + +class GlobalLevelNotifications(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + close_issue: Optional[pulumi.Input[bool]] = None, + close_merge_request: Optional[pulumi.Input[bool]] = None, + failed_pipeline: Optional[pulumi.Input[bool]] = None, + fixed_pipeline: Optional[pulumi.Input[bool]] = None, + issue_due: Optional[pulumi.Input[bool]] = None, + level: Optional[pulumi.Input[str]] = None, + merge_merge_request: Optional[pulumi.Input[bool]] = None, + merge_when_pipeline_succeeds: Optional[pulumi.Input[bool]] = None, + moved_project: Optional[pulumi.Input[bool]] = None, + new_issue: Optional[pulumi.Input[bool]] = None, + new_merge_request: Optional[pulumi.Input[bool]] = None, + new_note: Optional[pulumi.Input[bool]] = None, + push_to_merge_request: Optional[pulumi.Input[bool]] = None, + reassign_issue: Optional[pulumi.Input[bool]] = None, + reassign_merge_request: Optional[pulumi.Input[bool]] = None, + reopen_issue: Optional[pulumi.Input[bool]] = None, + reopen_merge_request: Optional[pulumi.Input[bool]] = None, + success_pipeline: Optional[pulumi.Input[bool]] = None, + __props__=None): + """ + The `GlobalLevelNotifications` resource allows to manage global notifications. + + **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/ee/api/notification_settings.html#group--project-level-notification-settings) + + ## Example Usage + + ```python + import pulumi + import pulumi_gitlab as gitlab + + # Create Custom global level notification + foo = gitlab.GlobalLevelNotifications("foo", + level="custom", + new_merge_request=True) + ``` + + ## Import + + NoteYou can import a global notification state using "gitlab" as the ID. The ID will always be gitlab, because the global notificatio only exists once per user + + ```sh + $ pulumi import gitlab:index/globalLevelNotifications:GlobalLevelNotifications example gitlab + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[bool] close_issue: Enable notifications for closed issues. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] close_merge_request: Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] failed_pipeline: Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] fixed_pipeline: Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] issue_due: Enable notifications for due issues. Can only be used when `level` is `custom`. + :param pulumi.Input[str] level: The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + :param pulumi.Input[bool] merge_merge_request: Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] merge_when_pipeline_succeeds: Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] moved_project: Enable notifications for moved projects. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] new_issue: Enable notifications for new issues. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] new_merge_request: Enable notifications for new merge requests. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] new_note: Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] push_to_merge_request: Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] reassign_issue: Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] reassign_merge_request: Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] reopen_issue: Enable notifications for reopened issues. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] reopen_merge_request: Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] success_pipeline: Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[GlobalLevelNotificationsArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + The `GlobalLevelNotifications` resource allows to manage global notifications. + + **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/ee/api/notification_settings.html#group--project-level-notification-settings) + + ## Example Usage + + ```python + import pulumi + import pulumi_gitlab as gitlab + + # Create Custom global level notification + foo = gitlab.GlobalLevelNotifications("foo", + level="custom", + new_merge_request=True) + ``` + + ## Import + + NoteYou can import a global notification state using "gitlab" as the ID. The ID will always be gitlab, because the global notificatio only exists once per user + + ```sh + $ pulumi import gitlab:index/globalLevelNotifications:GlobalLevelNotifications example gitlab + ``` + + :param str resource_name: The name of the resource. + :param GlobalLevelNotificationsArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(GlobalLevelNotificationsArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + close_issue: Optional[pulumi.Input[bool]] = None, + close_merge_request: Optional[pulumi.Input[bool]] = None, + failed_pipeline: Optional[pulumi.Input[bool]] = None, + fixed_pipeline: Optional[pulumi.Input[bool]] = None, + issue_due: Optional[pulumi.Input[bool]] = None, + level: Optional[pulumi.Input[str]] = None, + merge_merge_request: Optional[pulumi.Input[bool]] = None, + merge_when_pipeline_succeeds: Optional[pulumi.Input[bool]] = None, + moved_project: Optional[pulumi.Input[bool]] = None, + new_issue: Optional[pulumi.Input[bool]] = None, + new_merge_request: Optional[pulumi.Input[bool]] = None, + new_note: Optional[pulumi.Input[bool]] = None, + push_to_merge_request: Optional[pulumi.Input[bool]] = None, + reassign_issue: Optional[pulumi.Input[bool]] = None, + reassign_merge_request: Optional[pulumi.Input[bool]] = None, + reopen_issue: Optional[pulumi.Input[bool]] = None, + reopen_merge_request: Optional[pulumi.Input[bool]] = None, + success_pipeline: Optional[pulumi.Input[bool]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = GlobalLevelNotificationsArgs.__new__(GlobalLevelNotificationsArgs) + + __props__.__dict__["close_issue"] = close_issue + __props__.__dict__["close_merge_request"] = close_merge_request + __props__.__dict__["failed_pipeline"] = failed_pipeline + __props__.__dict__["fixed_pipeline"] = fixed_pipeline + __props__.__dict__["issue_due"] = issue_due + __props__.__dict__["level"] = level + __props__.__dict__["merge_merge_request"] = merge_merge_request + __props__.__dict__["merge_when_pipeline_succeeds"] = merge_when_pipeline_succeeds + __props__.__dict__["moved_project"] = moved_project + __props__.__dict__["new_issue"] = new_issue + __props__.__dict__["new_merge_request"] = new_merge_request + __props__.__dict__["new_note"] = new_note + __props__.__dict__["push_to_merge_request"] = push_to_merge_request + __props__.__dict__["reassign_issue"] = reassign_issue + __props__.__dict__["reassign_merge_request"] = reassign_merge_request + __props__.__dict__["reopen_issue"] = reopen_issue + __props__.__dict__["reopen_merge_request"] = reopen_merge_request + __props__.__dict__["success_pipeline"] = success_pipeline + super(GlobalLevelNotifications, __self__).__init__( + 'gitlab:index/globalLevelNotifications:GlobalLevelNotifications', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + close_issue: Optional[pulumi.Input[bool]] = None, + close_merge_request: Optional[pulumi.Input[bool]] = None, + failed_pipeline: Optional[pulumi.Input[bool]] = None, + fixed_pipeline: Optional[pulumi.Input[bool]] = None, + issue_due: Optional[pulumi.Input[bool]] = None, + level: Optional[pulumi.Input[str]] = None, + merge_merge_request: Optional[pulumi.Input[bool]] = None, + merge_when_pipeline_succeeds: Optional[pulumi.Input[bool]] = None, + moved_project: Optional[pulumi.Input[bool]] = None, + new_issue: Optional[pulumi.Input[bool]] = None, + new_merge_request: Optional[pulumi.Input[bool]] = None, + new_note: Optional[pulumi.Input[bool]] = None, + push_to_merge_request: Optional[pulumi.Input[bool]] = None, + reassign_issue: Optional[pulumi.Input[bool]] = None, + reassign_merge_request: Optional[pulumi.Input[bool]] = None, + reopen_issue: Optional[pulumi.Input[bool]] = None, + reopen_merge_request: Optional[pulumi.Input[bool]] = None, + success_pipeline: Optional[pulumi.Input[bool]] = None) -> 'GlobalLevelNotifications': + """ + Get an existing GlobalLevelNotifications resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[bool] close_issue: Enable notifications for closed issues. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] close_merge_request: Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] failed_pipeline: Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] fixed_pipeline: Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] issue_due: Enable notifications for due issues. Can only be used when `level` is `custom`. + :param pulumi.Input[str] level: The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + :param pulumi.Input[bool] merge_merge_request: Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] merge_when_pipeline_succeeds: Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] moved_project: Enable notifications for moved projects. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] new_issue: Enable notifications for new issues. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] new_merge_request: Enable notifications for new merge requests. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] new_note: Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] push_to_merge_request: Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] reassign_issue: Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] reassign_merge_request: Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] reopen_issue: Enable notifications for reopened issues. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] reopen_merge_request: Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + :param pulumi.Input[bool] success_pipeline: Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _GlobalLevelNotificationsState.__new__(_GlobalLevelNotificationsState) + + __props__.__dict__["close_issue"] = close_issue + __props__.__dict__["close_merge_request"] = close_merge_request + __props__.__dict__["failed_pipeline"] = failed_pipeline + __props__.__dict__["fixed_pipeline"] = fixed_pipeline + __props__.__dict__["issue_due"] = issue_due + __props__.__dict__["level"] = level + __props__.__dict__["merge_merge_request"] = merge_merge_request + __props__.__dict__["merge_when_pipeline_succeeds"] = merge_when_pipeline_succeeds + __props__.__dict__["moved_project"] = moved_project + __props__.__dict__["new_issue"] = new_issue + __props__.__dict__["new_merge_request"] = new_merge_request + __props__.__dict__["new_note"] = new_note + __props__.__dict__["push_to_merge_request"] = push_to_merge_request + __props__.__dict__["reassign_issue"] = reassign_issue + __props__.__dict__["reassign_merge_request"] = reassign_merge_request + __props__.__dict__["reopen_issue"] = reopen_issue + __props__.__dict__["reopen_merge_request"] = reopen_merge_request + __props__.__dict__["success_pipeline"] = success_pipeline + return GlobalLevelNotifications(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="closeIssue") + def close_issue(self) -> pulumi.Output[bool]: + """ + Enable notifications for closed issues. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "close_issue") + + @property + @pulumi.getter(name="closeMergeRequest") + def close_merge_request(self) -> pulumi.Output[bool]: + """ + Enable notifications for closed merge requests. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "close_merge_request") + + @property + @pulumi.getter(name="failedPipeline") + def failed_pipeline(self) -> pulumi.Output[bool]: + """ + Enable notifications for failed pipelines. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "failed_pipeline") + + @property + @pulumi.getter(name="fixedPipeline") + def fixed_pipeline(self) -> pulumi.Output[bool]: + """ + Enable notifications for fixed pipelines. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "fixed_pipeline") + + @property + @pulumi.getter(name="issueDue") + def issue_due(self) -> pulumi.Output[bool]: + """ + Enable notifications for due issues. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "issue_due") + + @property + @pulumi.getter + def level(self) -> pulumi.Output[str]: + """ + The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`. + """ + return pulumi.get(self, "level") + + @property + @pulumi.getter(name="mergeMergeRequest") + def merge_merge_request(self) -> pulumi.Output[bool]: + """ + Enable notifications for merged merge requests. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "merge_merge_request") + + @property + @pulumi.getter(name="mergeWhenPipelineSucceeds") + def merge_when_pipeline_succeeds(self) -> pulumi.Output[bool]: + """ + Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "merge_when_pipeline_succeeds") + + @property + @pulumi.getter(name="movedProject") + def moved_project(self) -> pulumi.Output[bool]: + """ + Enable notifications for moved projects. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "moved_project") + + @property + @pulumi.getter(name="newIssue") + def new_issue(self) -> pulumi.Output[bool]: + """ + Enable notifications for new issues. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "new_issue") + + @property + @pulumi.getter(name="newMergeRequest") + def new_merge_request(self) -> pulumi.Output[bool]: + """ + Enable notifications for new merge requests. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "new_merge_request") + + @property + @pulumi.getter(name="newNote") + def new_note(self) -> pulumi.Output[bool]: + """ + Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "new_note") + + @property + @pulumi.getter(name="pushToMergeRequest") + def push_to_merge_request(self) -> pulumi.Output[bool]: + """ + Enable notifications for push to merge request branches. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "push_to_merge_request") + + @property + @pulumi.getter(name="reassignIssue") + def reassign_issue(self) -> pulumi.Output[bool]: + """ + Enable notifications for issue reassignments. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "reassign_issue") + + @property + @pulumi.getter(name="reassignMergeRequest") + def reassign_merge_request(self) -> pulumi.Output[bool]: + """ + Enable notifications for merge request reassignments. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "reassign_merge_request") + + @property + @pulumi.getter(name="reopenIssue") + def reopen_issue(self) -> pulumi.Output[bool]: + """ + Enable notifications for reopened issues. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "reopen_issue") + + @property + @pulumi.getter(name="reopenMergeRequest") + def reopen_merge_request(self) -> pulumi.Output[bool]: + """ + Enable notifications for reopened merge requests. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "reopen_merge_request") + + @property + @pulumi.getter(name="successPipeline") + def success_pipeline(self) -> pulumi.Output[bool]: + """ + Enable notifications for successful pipelines. Can only be used when `level` is `custom`. + """ + return pulumi.get(self, "success_pipeline") + diff --git a/sdk/python/pulumi_gitlab/outputs.py b/sdk/python/pulumi_gitlab/outputs.py index 8d6b413e..19f5c3a5 100644 --- a/sdk/python/pulumi_gitlab/outputs.py +++ b/sdk/python/pulumi_gitlab/outputs.py @@ -33,6 +33,7 @@ 'GetClusterAgentsClusterAgentResult', 'GetGroupHooksHookResult', 'GetGroupMembershipMemberResult', + 'GetGroupSharedWithGroupResult', 'GetGroupSubgroupsSubgroupResult', 'GetGroupVariablesVariableResult', 'GetGroupsGroupResult', @@ -55,6 +56,7 @@ 'GetProjectProtectedBranchesProtectedBranchMergeAccessLevelResult', 'GetProjectProtectedBranchesProtectedBranchPushAccessLevelResult', 'GetProjectPushRuleResult', + 'GetProjectSharedWithGroupResult', 'GetProjectTagCommitResult', 'GetProjectTagReleaseResult', 'GetProjectTagsTagResult', @@ -2133,6 +2135,46 @@ def web_url(self) -> str: return pulumi.get(self, "web_url") +@pulumi.output_type +class GetGroupSharedWithGroupResult(dict): + def __init__(__self__, *, + expires_at: str, + group_access_level: int, + group_full_path: str, + group_id: int, + group_name: str): + pulumi.set(__self__, "expires_at", expires_at) + pulumi.set(__self__, "group_access_level", group_access_level) + pulumi.set(__self__, "group_full_path", group_full_path) + pulumi.set(__self__, "group_id", group_id) + pulumi.set(__self__, "group_name", group_name) + + @property + @pulumi.getter(name="expiresAt") + def expires_at(self) -> str: + return pulumi.get(self, "expires_at") + + @property + @pulumi.getter(name="groupAccessLevel") + def group_access_level(self) -> int: + return pulumi.get(self, "group_access_level") + + @property + @pulumi.getter(name="groupFullPath") + def group_full_path(self) -> str: + return pulumi.get(self, "group_full_path") + + @property + @pulumi.getter(name="groupId") + def group_id(self) -> int: + return pulumi.get(self, "group_id") + + @property + @pulumi.getter(name="groupName") + def group_name(self) -> str: + return pulumi.get(self, "group_name") + + @pulumi.output_type class GetGroupSubgroupsSubgroupResult(dict): def __init__(__self__, *, @@ -3887,6 +3929,39 @@ def reject_unsigned_commits(self) -> bool: return pulumi.get(self, "reject_unsigned_commits") +@pulumi.output_type +class GetProjectSharedWithGroupResult(dict): + def __init__(__self__, *, + group_access_level: int, + group_full_path: str, + group_id: int, + group_name: str): + pulumi.set(__self__, "group_access_level", group_access_level) + pulumi.set(__self__, "group_full_path", group_full_path) + pulumi.set(__self__, "group_id", group_id) + pulumi.set(__self__, "group_name", group_name) + + @property + @pulumi.getter(name="groupAccessLevel") + def group_access_level(self) -> int: + return pulumi.get(self, "group_access_level") + + @property + @pulumi.getter(name="groupFullPath") + def group_full_path(self) -> str: + return pulumi.get(self, "group_full_path") + + @property + @pulumi.getter(name="groupId") + def group_id(self) -> int: + return pulumi.get(self, "group_id") + + @property + @pulumi.getter(name="groupName") + def group_name(self) -> str: + return pulumi.get(self, "group_name") + + @pulumi.output_type class GetProjectTagCommitResult(dict): def __init__(__self__, *, @@ -5294,6 +5369,7 @@ def __init__(__self__, *, external: bool, id: int, is_admin: bool, + is_bot: bool, last_sign_in_at: str, linkedin: str, location: str, @@ -5321,6 +5397,7 @@ def __init__(__self__, *, pulumi.set(__self__, "external", external) pulumi.set(__self__, "id", id) pulumi.set(__self__, "is_admin", is_admin) + pulumi.set(__self__, "is_bot", is_bot) pulumi.set(__self__, "last_sign_in_at", last_sign_in_at) pulumi.set(__self__, "linkedin", linkedin) pulumi.set(__self__, "location", location) @@ -5397,6 +5474,11 @@ def id(self) -> int: def is_admin(self) -> bool: return pulumi.get(self, "is_admin") + @property + @pulumi.getter(name="isBot") + def is_bot(self) -> bool: + return pulumi.get(self, "is_bot") + @property @pulumi.getter(name="lastSignInAt") def last_sign_in_at(self) -> str: diff --git a/sdk/python/pulumi_gitlab/project_hook.py b/sdk/python/pulumi_gitlab/project_hook.py index b3d9df35..d89cd1ea 100644 --- a/sdk/python/pulumi_gitlab/project_hook.py +++ b/sdk/python/pulumi_gitlab/project_hook.py @@ -34,7 +34,7 @@ def __init__(__self__, *, """ The set of arguments for constructing a ProjectHook resource. :param pulumi.Input[str] project: The name or id of the project to add the hook to. - :param pulumi.Input[str] url: The url of the hook to invoke. + :param pulumi.Input[str] url: The url of the hook to invoke. Forces re-creation to preserve `token`. :param pulumi.Input[bool] confidential_issues_events: Invoke the hook for confidential issues events. :param pulumi.Input[bool] confidential_note_events: Invoke the hook for confidential notes events. :param pulumi.Input[bool] deployment_events: Invoke the hook for deployment events. @@ -100,7 +100,7 @@ def project(self, value: pulumi.Input[str]): @pulumi.getter def url(self) -> pulumi.Input[str]: """ - The url of the hook to invoke. + The url of the hook to invoke. Forces re-creation to preserve `token`. """ return pulumi.get(self, "url") @@ -330,7 +330,7 @@ def __init__(__self__, *, :param pulumi.Input[bool] releases_events: Invoke the hook for releases events. :param pulumi.Input[bool] tag_push_events: Invoke the hook for tag push events. :param pulumi.Input[str] token: A token to present when invoking the hook. The token is not available for imported resources. - :param pulumi.Input[str] url: The url of the hook to invoke. + :param pulumi.Input[str] url: The url of the hook to invoke. Forces re-creation to preserve `token`. :param pulumi.Input[bool] wiki_page_events: Invoke the hook for wiki page events. """ if confidential_issues_events is not None: @@ -580,7 +580,7 @@ def token(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def url(self) -> Optional[pulumi.Input[str]]: """ - The url of the hook to invoke. + The url of the hook to invoke. Forces re-creation to preserve `token`. """ return pulumi.get(self, "url") @@ -668,7 +668,7 @@ def __init__(__self__, :param pulumi.Input[bool] releases_events: Invoke the hook for releases events. :param pulumi.Input[bool] tag_push_events: Invoke the hook for tag push events. :param pulumi.Input[str] token: A token to present when invoking the hook. The token is not available for imported resources. - :param pulumi.Input[str] url: The url of the hook to invoke. + :param pulumi.Input[str] url: The url of the hook to invoke. Forces re-creation to preserve `token`. :param pulumi.Input[bool] wiki_page_events: Invoke the hook for wiki page events. """ ... @@ -823,7 +823,7 @@ def get(resource_name: str, :param pulumi.Input[bool] releases_events: Invoke the hook for releases events. :param pulumi.Input[bool] tag_push_events: Invoke the hook for tag push events. :param pulumi.Input[str] token: A token to present when invoking the hook. The token is not available for imported resources. - :param pulumi.Input[str] url: The url of the hook to invoke. + :param pulumi.Input[str] url: The url of the hook to invoke. Forces re-creation to preserve `token`. :param pulumi.Input[bool] wiki_page_events: Invoke the hook for wiki page events. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -991,7 +991,7 @@ def token(self) -> pulumi.Output[Optional[str]]: @pulumi.getter def url(self) -> pulumi.Output[str]: """ - The url of the hook to invoke. + The url of the hook to invoke. Forces re-creation to preserve `token`. """ return pulumi.get(self, "url") diff --git a/upstream b/upstream index 4d6e70b2..86bf459d 160000 --- a/upstream +++ b/upstream @@ -1 +1 @@ -Subproject commit 4d6e70b2bfd5a62fad1c8e8801cd2a4c523e5b51 +Subproject commit 86bf459d2059e481a4b0bd46ca01c60cbb57b0d5