Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.gitlab.inputs.GroupState Maven / Gradle / Ivy
Go to download
A Pulumi package for creating and managing GitLab resources.
// *** 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 com.pulumi.gitlab.inputs.GroupDefaultBranchProtectionDefaultsArgs;
import com.pulumi.gitlab.inputs.GroupPushRulesArgs;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
public final class GroupState extends com.pulumi.resources.ResourceArgs {
public static final GroupState Empty = new GroupState();
/**
* Default to Auto DevOps pipeline for all projects within this group.
*
*/
@Import(name="autoDevopsEnabled")
private @Nullable Output autoDevopsEnabled;
/**
* @return Default to Auto DevOps pipeline for all projects within this group.
*
*/
public Optional> autoDevopsEnabled() {
return Optional.ofNullable(this.autoDevopsEnabled);
}
/**
* A local path to the avatar image to upload. **Note**: not available for imported resources.
*
*/
@Import(name="avatar")
private @Nullable Output avatar;
/**
* @return A local path to the avatar image to upload. **Note**: not available for imported resources.
*
*/
public Optional> avatar() {
return Optional.ofNullable(this.avatar);
}
/**
* The hash of the avatar image. Use `filesha256("path/to/avatar.png")` whenever possible. **Note**: this is used to trigger an update of the avatar. If it's not given, but an avatar is given, the avatar will be updated each time.
*
*/
@Import(name="avatarHash")
private @Nullable Output avatarHash;
/**
* @return The hash of the avatar image. Use `filesha256("path/to/avatar.png")` whenever possible. **Note**: this is used to trigger an update of the avatar. If it's not given, but an avatar is given, the avatar will be updated each time.
*
*/
public Optional> avatarHash() {
return Optional.ofNullable(this.avatarHash);
}
/**
* The URL of the avatar image.
*
*/
@Import(name="avatarUrl")
private @Nullable Output avatarUrl;
/**
* @return The URL of the avatar image.
*
*/
public Optional> avatarUrl() {
return Optional.ofNullable(this.avatarUrl);
}
/**
* See https://docs.gitlab.com/ee/api/groups.html#options-for-default*branch*protection. Valid values are: `0`, `1`, `2`, `3`, `4`.
*
* @deprecated
* Deprecated in GitLab 17.0. Use default_branch_protection_defaults instead.
*
*/
@Deprecated /* Deprecated in GitLab 17.0. Use default_branch_protection_defaults instead. */
@Import(name="defaultBranchProtection")
private @Nullable Output defaultBranchProtection;
/**
* @return See https://docs.gitlab.com/ee/api/groups.html#options-for-default*branch*protection. Valid values are: `0`, `1`, `2`, `3`, `4`.
*
* @deprecated
* Deprecated in GitLab 17.0. Use default_branch_protection_defaults instead.
*
*/
@Deprecated /* Deprecated in GitLab 17.0. Use default_branch_protection_defaults instead. */
public Optional> defaultBranchProtection() {
return Optional.ofNullable(this.defaultBranchProtection);
}
/**
* The default branch protection defaults
*
*/
@Import(name="defaultBranchProtectionDefaults")
private @Nullable Output defaultBranchProtectionDefaults;
/**
* @return The default branch protection defaults
*
*/
public Optional> defaultBranchProtectionDefaults() {
return Optional.ofNullable(this.defaultBranchProtectionDefaults);
}
/**
* The group's description.
*
*/
@Import(name="description")
private @Nullable Output description;
/**
* @return The group's description.
*
*/
public Optional> description() {
return Optional.ofNullable(this.description);
}
/**
* Enable email notifications.
*
*/
@Import(name="emailsEnabled")
private @Nullable Output emailsEnabled;
/**
* @return Enable email notifications.
*
*/
public Optional> emailsEnabled() {
return Optional.ofNullable(this.emailsEnabled);
}
/**
* Can be set by administrators only. Additional CI/CD minutes for this group.
*
*/
@Import(name="extraSharedRunnersMinutesLimit")
private @Nullable Output extraSharedRunnersMinutesLimit;
/**
* @return Can be set by administrators only. Additional CI/CD minutes for this group.
*
*/
public Optional> extraSharedRunnersMinutesLimit() {
return Optional.ofNullable(this.extraSharedRunnersMinutesLimit);
}
/**
* The full name of the group.
*
*/
@Import(name="fullName")
private @Nullable Output fullName;
/**
* @return The full name of the group.
*
*/
public Optional> fullName() {
return Optional.ofNullable(this.fullName);
}
/**
* The full path of the group.
*
*/
@Import(name="fullPath")
private @Nullable Output fullPath;
/**
* @return The full path of the group.
*
*/
public Optional> fullPath() {
return Optional.ofNullable(this.fullPath);
}
/**
* A list of IP addresses or subnet masks to restrict group access. Will be concatenated together into a comma separated string. Only allowed on top level groups.
*
*/
@Import(name="ipRestrictionRanges")
private @Nullable Output> ipRestrictionRanges;
/**
* @return A list of IP addresses or subnet masks to restrict group access. Will be concatenated together into a comma separated string. Only allowed on top level groups.
*
*/
public Optional>> ipRestrictionRanges() {
return Optional.ofNullable(this.ipRestrictionRanges);
}
/**
* Enable/disable Large File Storage (LFS) for the projects in this group.
*
*/
@Import(name="lfsEnabled")
private @Nullable Output lfsEnabled;
/**
* @return Enable/disable Large File Storage (LFS) for the projects in this group.
*
*/
public Optional> lfsEnabled() {
return Optional.ofNullable(this.lfsEnabled);
}
/**
* Users cannot be added to projects in this group.
*
*/
@Import(name="membershipLock")
private @Nullable Output membershipLock;
/**
* @return Users cannot be added to projects in this group.
*
*/
public Optional> membershipLock() {
return Optional.ofNullable(this.membershipLock);
}
/**
* Disable the capability of a group from getting mentioned.
*
*/
@Import(name="mentionsDisabled")
private @Nullable Output mentionsDisabled;
/**
* @return Disable the capability of a group from getting mentioned.
*
*/
public Optional> mentionsDisabled() {
return Optional.ofNullable(this.mentionsDisabled);
}
/**
* The name of the group.
*
*/
@Import(name="name")
private @Nullable Output name;
/**
* @return The name of the group.
*
*/
public Optional> name() {
return Optional.ofNullable(this.name);
}
/**
* Id of the parent group (creates a nested group).
*
*/
@Import(name="parentId")
private @Nullable Output parentId;
/**
* @return Id of the parent group (creates a nested group).
*
*/
public Optional> parentId() {
return Optional.ofNullable(this.parentId);
}
/**
* The path of the group.
*
*/
@Import(name="path")
private @Nullable Output path;
/**
* @return The path of the group.
*
*/
public Optional> path() {
return Optional.ofNullable(this.path);
}
/**
* Whether the group should be permanently removed during a `delete` operation. This only works with subgroups. Must be configured via an `apply` before the `destroy` is run.
*
*/
@Import(name="permanentlyRemoveOnDelete")
private @Nullable Output permanentlyRemoveOnDelete;
/**
* @return Whether the group should be permanently removed during a `delete` operation. This only works with subgroups. Must be configured via an `apply` before the `destroy` is run.
*
*/
public Optional> permanentlyRemoveOnDelete() {
return Optional.ofNullable(this.permanentlyRemoveOnDelete);
}
/**
* Defaults to false. When enabled, users can not fork projects from this group to external namespaces.
*
*/
@Import(name="preventForkingOutsideGroup")
private @Nullable Output preventForkingOutsideGroup;
/**
* @return Defaults to false. When enabled, users can not fork projects from this group to external namespaces.
*
*/
public Optional> preventForkingOutsideGroup() {
return Optional.ofNullable(this.preventForkingOutsideGroup);
}
/**
* Determine if developers can create projects in the group. Valid values are: `noone`, `maintainer`, `developer`
*
*/
@Import(name="projectCreationLevel")
private @Nullable Output projectCreationLevel;
/**
* @return Determine if developers can create projects in the group. Valid values are: `noone`, `maintainer`, `developer`
*
*/
public Optional> projectCreationLevel() {
return Optional.ofNullable(this.projectCreationLevel);
}
/**
* Push rules for the group.
*
*/
@Import(name="pushRules")
private @Nullable Output pushRules;
/**
* @return Push rules for the group.
*
*/
public Optional> pushRules() {
return Optional.ofNullable(this.pushRules);
}
/**
* Allow users to request member access.
*
*/
@Import(name="requestAccessEnabled")
private @Nullable Output requestAccessEnabled;
/**
* @return Allow users to request member access.
*
*/
public Optional> requestAccessEnabled() {
return Optional.ofNullable(this.requestAccessEnabled);
}
/**
* Require all users in this group to setup Two-factor authentication.
*
*/
@Import(name="requireTwoFactorAuthentication")
private @Nullable Output requireTwoFactorAuthentication;
/**
* @return Require all users in this group to setup Two-factor authentication.
*
*/
public Optional> requireTwoFactorAuthentication() {
return Optional.ofNullable(this.requireTwoFactorAuthentication);
}
/**
* The group level registration token to use during runner setup.
*
*/
@Import(name="runnersToken")
private @Nullable Output runnersToken;
/**
* @return The group level registration token to use during runner setup.
*
*/
public Optional> runnersToken() {
return Optional.ofNullable(this.runnersToken);
}
/**
* Prevent sharing a project with another group within this group.
*
*/
@Import(name="shareWithGroupLock")
private @Nullable Output shareWithGroupLock;
/**
* @return Prevent sharing a project with another group within this group.
*
*/
public Optional> shareWithGroupLock() {
return Optional.ofNullable(this.shareWithGroupLock);
}
/**
* Can be set by administrators only. Maximum number of monthly CI/CD minutes for this group. Can be nil (default; inherit system default), 0 (unlimited), or > 0.
*
*/
@Import(name="sharedRunnersMinutesLimit")
private @Nullable Output sharedRunnersMinutesLimit;
/**
* @return Can be set by administrators only. Maximum number of monthly CI/CD minutes for this group. Can be nil (default; inherit system default), 0 (unlimited), or > 0.
*
*/
public Optional> sharedRunnersMinutesLimit() {
return Optional.ofNullable(this.sharedRunnersMinutesLimit);
}
/**
* 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`.
*
*/
@Import(name="sharedRunnersSetting")
private @Nullable Output sharedRunnersSetting;
/**
* @return 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`.
*
*/
public Optional> sharedRunnersSetting() {
return Optional.ofNullable(this.sharedRunnersSetting);
}
/**
* Allowed to create subgroups. Valid values are: `owner`, `maintainer`.
*
*/
@Import(name="subgroupCreationLevel")
private @Nullable Output subgroupCreationLevel;
/**
* @return Allowed to create subgroups. Valid values are: `owner`, `maintainer`.
*
*/
public Optional> subgroupCreationLevel() {
return Optional.ofNullable(this.subgroupCreationLevel);
}
/**
* Defaults to 48. Time before Two-factor authentication is enforced (in hours).
*
*/
@Import(name="twoFactorGracePeriod")
private @Nullable Output twoFactorGracePeriod;
/**
* @return Defaults to 48. Time before Two-factor authentication is enforced (in hours).
*
*/
public Optional> twoFactorGracePeriod() {
return Optional.ofNullable(this.twoFactorGracePeriod);
}
/**
* The group's visibility. Can be `private`, `internal`, or `public`. Valid values are: `private`, `internal`, `public`.
*
*/
@Import(name="visibilityLevel")
private @Nullable Output visibilityLevel;
/**
* @return The group's visibility. Can be `private`, `internal`, or `public`. Valid values are: `private`, `internal`, `public`.
*
*/
public Optional> visibilityLevel() {
return Optional.ofNullable(this.visibilityLevel);
}
/**
* Web URL of the group.
*
*/
@Import(name="webUrl")
private @Nullable Output webUrl;
/**
* @return Web URL of the group.
*
*/
public Optional> webUrl() {
return Optional.ofNullable(this.webUrl);
}
/**
* The group's wiki access level. Only available on Premium and Ultimate plans. Valid values are `disabled`, `private`, `enabled`.
*
*/
@Import(name="wikiAccessLevel")
private @Nullable Output wikiAccessLevel;
/**
* @return The group's wiki access level. Only available on Premium and Ultimate plans. Valid values are `disabled`, `private`, `enabled`.
*
*/
public Optional> wikiAccessLevel() {
return Optional.ofNullable(this.wikiAccessLevel);
}
private GroupState() {}
private GroupState(GroupState $) {
this.autoDevopsEnabled = $.autoDevopsEnabled;
this.avatar = $.avatar;
this.avatarHash = $.avatarHash;
this.avatarUrl = $.avatarUrl;
this.defaultBranchProtection = $.defaultBranchProtection;
this.defaultBranchProtectionDefaults = $.defaultBranchProtectionDefaults;
this.description = $.description;
this.emailsEnabled = $.emailsEnabled;
this.extraSharedRunnersMinutesLimit = $.extraSharedRunnersMinutesLimit;
this.fullName = $.fullName;
this.fullPath = $.fullPath;
this.ipRestrictionRanges = $.ipRestrictionRanges;
this.lfsEnabled = $.lfsEnabled;
this.membershipLock = $.membershipLock;
this.mentionsDisabled = $.mentionsDisabled;
this.name = $.name;
this.parentId = $.parentId;
this.path = $.path;
this.permanentlyRemoveOnDelete = $.permanentlyRemoveOnDelete;
this.preventForkingOutsideGroup = $.preventForkingOutsideGroup;
this.projectCreationLevel = $.projectCreationLevel;
this.pushRules = $.pushRules;
this.requestAccessEnabled = $.requestAccessEnabled;
this.requireTwoFactorAuthentication = $.requireTwoFactorAuthentication;
this.runnersToken = $.runnersToken;
this.shareWithGroupLock = $.shareWithGroupLock;
this.sharedRunnersMinutesLimit = $.sharedRunnersMinutesLimit;
this.sharedRunnersSetting = $.sharedRunnersSetting;
this.subgroupCreationLevel = $.subgroupCreationLevel;
this.twoFactorGracePeriod = $.twoFactorGracePeriod;
this.visibilityLevel = $.visibilityLevel;
this.webUrl = $.webUrl;
this.wikiAccessLevel = $.wikiAccessLevel;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(GroupState defaults) {
return new Builder(defaults);
}
public static final class Builder {
private GroupState $;
public Builder() {
$ = new GroupState();
}
public Builder(GroupState defaults) {
$ = new GroupState(Objects.requireNonNull(defaults));
}
/**
* @param autoDevopsEnabled Default to Auto DevOps pipeline for all projects within this group.
*
* @return builder
*
*/
public Builder autoDevopsEnabled(@Nullable Output autoDevopsEnabled) {
$.autoDevopsEnabled = autoDevopsEnabled;
return this;
}
/**
* @param autoDevopsEnabled Default to Auto DevOps pipeline for all projects within this group.
*
* @return builder
*
*/
public Builder autoDevopsEnabled(Boolean autoDevopsEnabled) {
return autoDevopsEnabled(Output.of(autoDevopsEnabled));
}
/**
* @param avatar A local path to the avatar image to upload. **Note**: not available for imported resources.
*
* @return builder
*
*/
public Builder avatar(@Nullable Output avatar) {
$.avatar = avatar;
return this;
}
/**
* @param avatar A local path to the avatar image to upload. **Note**: not available for imported resources.
*
* @return builder
*
*/
public Builder avatar(String avatar) {
return avatar(Output.of(avatar));
}
/**
* @param avatarHash The hash of the avatar image. Use `filesha256("path/to/avatar.png")` whenever possible. **Note**: this is used to trigger an update of the avatar. If it's not given, but an avatar is given, the avatar will be updated each time.
*
* @return builder
*
*/
public Builder avatarHash(@Nullable Output avatarHash) {
$.avatarHash = avatarHash;
return this;
}
/**
* @param avatarHash The hash of the avatar image. Use `filesha256("path/to/avatar.png")` whenever possible. **Note**: this is used to trigger an update of the avatar. If it's not given, but an avatar is given, the avatar will be updated each time.
*
* @return builder
*
*/
public Builder avatarHash(String avatarHash) {
return avatarHash(Output.of(avatarHash));
}
/**
* @param avatarUrl The URL of the avatar image.
*
* @return builder
*
*/
public Builder avatarUrl(@Nullable Output avatarUrl) {
$.avatarUrl = avatarUrl;
return this;
}
/**
* @param avatarUrl The URL of the avatar image.
*
* @return builder
*
*/
public Builder avatarUrl(String avatarUrl) {
return avatarUrl(Output.of(avatarUrl));
}
/**
* @param defaultBranchProtection See https://docs.gitlab.com/ee/api/groups.html#options-for-default*branch*protection. Valid values are: `0`, `1`, `2`, `3`, `4`.
*
* @return builder
*
* @deprecated
* Deprecated in GitLab 17.0. Use default_branch_protection_defaults instead.
*
*/
@Deprecated /* Deprecated in GitLab 17.0. Use default_branch_protection_defaults instead. */
public Builder defaultBranchProtection(@Nullable Output defaultBranchProtection) {
$.defaultBranchProtection = defaultBranchProtection;
return this;
}
/**
* @param defaultBranchProtection See https://docs.gitlab.com/ee/api/groups.html#options-for-default*branch*protection. Valid values are: `0`, `1`, `2`, `3`, `4`.
*
* @return builder
*
* @deprecated
* Deprecated in GitLab 17.0. Use default_branch_protection_defaults instead.
*
*/
@Deprecated /* Deprecated in GitLab 17.0. Use default_branch_protection_defaults instead. */
public Builder defaultBranchProtection(Integer defaultBranchProtection) {
return defaultBranchProtection(Output.of(defaultBranchProtection));
}
/**
* @param defaultBranchProtectionDefaults The default branch protection defaults
*
* @return builder
*
*/
public Builder defaultBranchProtectionDefaults(@Nullable Output defaultBranchProtectionDefaults) {
$.defaultBranchProtectionDefaults = defaultBranchProtectionDefaults;
return this;
}
/**
* @param defaultBranchProtectionDefaults The default branch protection defaults
*
* @return builder
*
*/
public Builder defaultBranchProtectionDefaults(GroupDefaultBranchProtectionDefaultsArgs defaultBranchProtectionDefaults) {
return defaultBranchProtectionDefaults(Output.of(defaultBranchProtectionDefaults));
}
/**
* @param description The group's description.
*
* @return builder
*
*/
public Builder description(@Nullable Output description) {
$.description = description;
return this;
}
/**
* @param description The group's description.
*
* @return builder
*
*/
public Builder description(String description) {
return description(Output.of(description));
}
/**
* @param emailsEnabled Enable email notifications.
*
* @return builder
*
*/
public Builder emailsEnabled(@Nullable Output emailsEnabled) {
$.emailsEnabled = emailsEnabled;
return this;
}
/**
* @param emailsEnabled Enable email notifications.
*
* @return builder
*
*/
public Builder emailsEnabled(Boolean emailsEnabled) {
return emailsEnabled(Output.of(emailsEnabled));
}
/**
* @param extraSharedRunnersMinutesLimit Can be set by administrators only. Additional CI/CD minutes for this group.
*
* @return builder
*
*/
public Builder extraSharedRunnersMinutesLimit(@Nullable Output extraSharedRunnersMinutesLimit) {
$.extraSharedRunnersMinutesLimit = extraSharedRunnersMinutesLimit;
return this;
}
/**
* @param extraSharedRunnersMinutesLimit Can be set by administrators only. Additional CI/CD minutes for this group.
*
* @return builder
*
*/
public Builder extraSharedRunnersMinutesLimit(Integer extraSharedRunnersMinutesLimit) {
return extraSharedRunnersMinutesLimit(Output.of(extraSharedRunnersMinutesLimit));
}
/**
* @param fullName The full name of the group.
*
* @return builder
*
*/
public Builder fullName(@Nullable Output fullName) {
$.fullName = fullName;
return this;
}
/**
* @param fullName The full name of the group.
*
* @return builder
*
*/
public Builder fullName(String fullName) {
return fullName(Output.of(fullName));
}
/**
* @param fullPath The full path of the group.
*
* @return builder
*
*/
public Builder fullPath(@Nullable Output fullPath) {
$.fullPath = fullPath;
return this;
}
/**
* @param fullPath The full path of the group.
*
* @return builder
*
*/
public Builder fullPath(String fullPath) {
return fullPath(Output.of(fullPath));
}
/**
* @param ipRestrictionRanges A list of IP addresses or subnet masks to restrict group access. Will be concatenated together into a comma separated string. Only allowed on top level groups.
*
* @return builder
*
*/
public Builder ipRestrictionRanges(@Nullable Output> ipRestrictionRanges) {
$.ipRestrictionRanges = ipRestrictionRanges;
return this;
}
/**
* @param ipRestrictionRanges A list of IP addresses or subnet masks to restrict group access. Will be concatenated together into a comma separated string. Only allowed on top level groups.
*
* @return builder
*
*/
public Builder ipRestrictionRanges(List ipRestrictionRanges) {
return ipRestrictionRanges(Output.of(ipRestrictionRanges));
}
/**
* @param ipRestrictionRanges A list of IP addresses or subnet masks to restrict group access. Will be concatenated together into a comma separated string. Only allowed on top level groups.
*
* @return builder
*
*/
public Builder ipRestrictionRanges(String... ipRestrictionRanges) {
return ipRestrictionRanges(List.of(ipRestrictionRanges));
}
/**
* @param lfsEnabled Enable/disable Large File Storage (LFS) for the projects in this group.
*
* @return builder
*
*/
public Builder lfsEnabled(@Nullable Output lfsEnabled) {
$.lfsEnabled = lfsEnabled;
return this;
}
/**
* @param lfsEnabled Enable/disable Large File Storage (LFS) for the projects in this group.
*
* @return builder
*
*/
public Builder lfsEnabled(Boolean lfsEnabled) {
return lfsEnabled(Output.of(lfsEnabled));
}
/**
* @param membershipLock Users cannot be added to projects in this group.
*
* @return builder
*
*/
public Builder membershipLock(@Nullable Output membershipLock) {
$.membershipLock = membershipLock;
return this;
}
/**
* @param membershipLock Users cannot be added to projects in this group.
*
* @return builder
*
*/
public Builder membershipLock(Boolean membershipLock) {
return membershipLock(Output.of(membershipLock));
}
/**
* @param mentionsDisabled Disable the capability of a group from getting mentioned.
*
* @return builder
*
*/
public Builder mentionsDisabled(@Nullable Output mentionsDisabled) {
$.mentionsDisabled = mentionsDisabled;
return this;
}
/**
* @param mentionsDisabled Disable the capability of a group from getting mentioned.
*
* @return builder
*
*/
public Builder mentionsDisabled(Boolean mentionsDisabled) {
return mentionsDisabled(Output.of(mentionsDisabled));
}
/**
* @param name The name of the group.
*
* @return builder
*
*/
public Builder name(@Nullable Output name) {
$.name = name;
return this;
}
/**
* @param name The name of the group.
*
* @return builder
*
*/
public Builder name(String name) {
return name(Output.of(name));
}
/**
* @param parentId Id of the parent group (creates a nested group).
*
* @return builder
*
*/
public Builder parentId(@Nullable Output parentId) {
$.parentId = parentId;
return this;
}
/**
* @param parentId Id of the parent group (creates a nested group).
*
* @return builder
*
*/
public Builder parentId(Integer parentId) {
return parentId(Output.of(parentId));
}
/**
* @param path The path of the group.
*
* @return builder
*
*/
public Builder path(@Nullable Output path) {
$.path = path;
return this;
}
/**
* @param path The path of the group.
*
* @return builder
*
*/
public Builder path(String path) {
return path(Output.of(path));
}
/**
* @param permanentlyRemoveOnDelete Whether the group should be permanently removed during a `delete` operation. This only works with subgroups. Must be configured via an `apply` before the `destroy` is run.
*
* @return builder
*
*/
public Builder permanentlyRemoveOnDelete(@Nullable Output permanentlyRemoveOnDelete) {
$.permanentlyRemoveOnDelete = permanentlyRemoveOnDelete;
return this;
}
/**
* @param permanentlyRemoveOnDelete Whether the group should be permanently removed during a `delete` operation. This only works with subgroups. Must be configured via an `apply` before the `destroy` is run.
*
* @return builder
*
*/
public Builder permanentlyRemoveOnDelete(Boolean permanentlyRemoveOnDelete) {
return permanentlyRemoveOnDelete(Output.of(permanentlyRemoveOnDelete));
}
/**
* @param preventForkingOutsideGroup Defaults to false. When enabled, users can not fork projects from this group to external namespaces.
*
* @return builder
*
*/
public Builder preventForkingOutsideGroup(@Nullable Output preventForkingOutsideGroup) {
$.preventForkingOutsideGroup = preventForkingOutsideGroup;
return this;
}
/**
* @param preventForkingOutsideGroup Defaults to false. When enabled, users can not fork projects from this group to external namespaces.
*
* @return builder
*
*/
public Builder preventForkingOutsideGroup(Boolean preventForkingOutsideGroup) {
return preventForkingOutsideGroup(Output.of(preventForkingOutsideGroup));
}
/**
* @param projectCreationLevel Determine if developers can create projects in the group. Valid values are: `noone`, `maintainer`, `developer`
*
* @return builder
*
*/
public Builder projectCreationLevel(@Nullable Output projectCreationLevel) {
$.projectCreationLevel = projectCreationLevel;
return this;
}
/**
* @param projectCreationLevel Determine if developers can create projects in the group. Valid values are: `noone`, `maintainer`, `developer`
*
* @return builder
*
*/
public Builder projectCreationLevel(String projectCreationLevel) {
return projectCreationLevel(Output.of(projectCreationLevel));
}
/**
* @param pushRules Push rules for the group.
*
* @return builder
*
*/
public Builder pushRules(@Nullable Output pushRules) {
$.pushRules = pushRules;
return this;
}
/**
* @param pushRules Push rules for the group.
*
* @return builder
*
*/
public Builder pushRules(GroupPushRulesArgs pushRules) {
return pushRules(Output.of(pushRules));
}
/**
* @param requestAccessEnabled Allow users to request member access.
*
* @return builder
*
*/
public Builder requestAccessEnabled(@Nullable Output requestAccessEnabled) {
$.requestAccessEnabled = requestAccessEnabled;
return this;
}
/**
* @param requestAccessEnabled Allow users to request member access.
*
* @return builder
*
*/
public Builder requestAccessEnabled(Boolean requestAccessEnabled) {
return requestAccessEnabled(Output.of(requestAccessEnabled));
}
/**
* @param requireTwoFactorAuthentication Require all users in this group to setup Two-factor authentication.
*
* @return builder
*
*/
public Builder requireTwoFactorAuthentication(@Nullable Output requireTwoFactorAuthentication) {
$.requireTwoFactorAuthentication = requireTwoFactorAuthentication;
return this;
}
/**
* @param requireTwoFactorAuthentication Require all users in this group to setup Two-factor authentication.
*
* @return builder
*
*/
public Builder requireTwoFactorAuthentication(Boolean requireTwoFactorAuthentication) {
return requireTwoFactorAuthentication(Output.of(requireTwoFactorAuthentication));
}
/**
* @param runnersToken The group level registration token to use during runner setup.
*
* @return builder
*
*/
public Builder runnersToken(@Nullable Output runnersToken) {
$.runnersToken = runnersToken;
return this;
}
/**
* @param runnersToken The group level registration token to use during runner setup.
*
* @return builder
*
*/
public Builder runnersToken(String runnersToken) {
return runnersToken(Output.of(runnersToken));
}
/**
* @param shareWithGroupLock Prevent sharing a project with another group within this group.
*
* @return builder
*
*/
public Builder shareWithGroupLock(@Nullable Output shareWithGroupLock) {
$.shareWithGroupLock = shareWithGroupLock;
return this;
}
/**
* @param shareWithGroupLock Prevent sharing a project with another group within this group.
*
* @return builder
*
*/
public Builder shareWithGroupLock(Boolean shareWithGroupLock) {
return shareWithGroupLock(Output.of(shareWithGroupLock));
}
/**
* @param sharedRunnersMinutesLimit Can be set by administrators only. Maximum number of monthly CI/CD minutes for this group. Can be nil (default; inherit system default), 0 (unlimited), or > 0.
*
* @return builder
*
*/
public Builder sharedRunnersMinutesLimit(@Nullable Output sharedRunnersMinutesLimit) {
$.sharedRunnersMinutesLimit = sharedRunnersMinutesLimit;
return this;
}
/**
* @param sharedRunnersMinutesLimit Can be set by administrators only. Maximum number of monthly CI/CD minutes for this group. Can be nil (default; inherit system default), 0 (unlimited), or > 0.
*
* @return builder
*
*/
public Builder sharedRunnersMinutesLimit(Integer sharedRunnersMinutesLimit) {
return sharedRunnersMinutesLimit(Output.of(sharedRunnersMinutesLimit));
}
/**
* @param sharedRunnersSetting 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`.
*
* @return builder
*
*/
public Builder sharedRunnersSetting(@Nullable Output sharedRunnersSetting) {
$.sharedRunnersSetting = sharedRunnersSetting;
return this;
}
/**
* @param sharedRunnersSetting 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`.
*
* @return builder
*
*/
public Builder sharedRunnersSetting(String sharedRunnersSetting) {
return sharedRunnersSetting(Output.of(sharedRunnersSetting));
}
/**
* @param subgroupCreationLevel Allowed to create subgroups. Valid values are: `owner`, `maintainer`.
*
* @return builder
*
*/
public Builder subgroupCreationLevel(@Nullable Output subgroupCreationLevel) {
$.subgroupCreationLevel = subgroupCreationLevel;
return this;
}
/**
* @param subgroupCreationLevel Allowed to create subgroups. Valid values are: `owner`, `maintainer`.
*
* @return builder
*
*/
public Builder subgroupCreationLevel(String subgroupCreationLevel) {
return subgroupCreationLevel(Output.of(subgroupCreationLevel));
}
/**
* @param twoFactorGracePeriod Defaults to 48. Time before Two-factor authentication is enforced (in hours).
*
* @return builder
*
*/
public Builder twoFactorGracePeriod(@Nullable Output twoFactorGracePeriod) {
$.twoFactorGracePeriod = twoFactorGracePeriod;
return this;
}
/**
* @param twoFactorGracePeriod Defaults to 48. Time before Two-factor authentication is enforced (in hours).
*
* @return builder
*
*/
public Builder twoFactorGracePeriod(Integer twoFactorGracePeriod) {
return twoFactorGracePeriod(Output.of(twoFactorGracePeriod));
}
/**
* @param visibilityLevel The group's visibility. Can be `private`, `internal`, or `public`. Valid values are: `private`, `internal`, `public`.
*
* @return builder
*
*/
public Builder visibilityLevel(@Nullable Output visibilityLevel) {
$.visibilityLevel = visibilityLevel;
return this;
}
/**
* @param visibilityLevel The group's visibility. Can be `private`, `internal`, or `public`. Valid values are: `private`, `internal`, `public`.
*
* @return builder
*
*/
public Builder visibilityLevel(String visibilityLevel) {
return visibilityLevel(Output.of(visibilityLevel));
}
/**
* @param webUrl Web URL of the group.
*
* @return builder
*
*/
public Builder webUrl(@Nullable Output webUrl) {
$.webUrl = webUrl;
return this;
}
/**
* @param webUrl Web URL of the group.
*
* @return builder
*
*/
public Builder webUrl(String webUrl) {
return webUrl(Output.of(webUrl));
}
/**
* @param wikiAccessLevel The group's wiki access level. Only available on Premium and Ultimate plans. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder wikiAccessLevel(@Nullable Output wikiAccessLevel) {
$.wikiAccessLevel = wikiAccessLevel;
return this;
}
/**
* @param wikiAccessLevel The group's wiki access level. Only available on Premium and Ultimate plans. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder wikiAccessLevel(String wikiAccessLevel) {
return wikiAccessLevel(Output.of(wikiAccessLevel));
}
public GroupState build() {
return $;
}
}
}