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.ProjectArgs 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;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.gitlab.inputs.ProjectContainerExpirationPolicyArgs;
import com.pulumi.gitlab.inputs.ProjectPushRulesArgs;
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 ProjectArgs extends com.pulumi.resources.ResourceArgs {
public static final ProjectArgs Empty = new ProjectArgs();
/**
* Set to true if you want to treat skipped pipelines as if they finished with success.
*
*/
@Import(name="allowMergeOnSkippedPipeline")
private @Nullable Output allowMergeOnSkippedPipeline;
/**
* @return Set to true if you want to treat skipped pipelines as if they finished with success.
*
*/
public Optional> allowMergeOnSkippedPipeline() {
return Optional.ofNullable(this.allowMergeOnSkippedPipeline);
}
/**
* Set whether or not a pipeline triggerer is allowed to approve deployments. Premium and Ultimate only.
*
*/
@Import(name="allowPipelineTriggerApproveDeployment")
private @Nullable Output allowPipelineTriggerApproveDeployment;
/**
* @return Set whether or not a pipeline triggerer is allowed to approve deployments. Premium and Ultimate only.
*
*/
public Optional> allowPipelineTriggerApproveDeployment() {
return Optional.ofNullable(this.allowPipelineTriggerApproveDeployment);
}
/**
* Set the analytics access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
@Import(name="analyticsAccessLevel")
private @Nullable Output analyticsAccessLevel;
/**
* @return Set the analytics access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
public Optional> analyticsAccessLevel() {
return Optional.ofNullable(this.analyticsAccessLevel);
}
/**
* Number of merge request approvals required for merging. Default is 0.
* This field **does not** work well in combination with the `gitlab.ProjectApprovalRule` resource
* and is most likely gonna be deprecated in a future GitLab version (see [this upstream epic](https://gitlab.com/groups/gitlab-org/-/epics/7572)).
* In the meantime we recommend against using this attribute and use `gitlab.ProjectApprovalRule` instead.
*
*/
@Import(name="approvalsBeforeMerge")
private @Nullable Output approvalsBeforeMerge;
/**
* @return Number of merge request approvals required for merging. Default is 0.
* This field **does not** work well in combination with the `gitlab.ProjectApprovalRule` resource
* and is most likely gonna be deprecated in a future GitLab version (see [this upstream epic](https://gitlab.com/groups/gitlab-org/-/epics/7572)).
* In the meantime we recommend against using this attribute and use `gitlab.ProjectApprovalRule` instead.
*
*/
public Optional> approvalsBeforeMerge() {
return Optional.ofNullable(this.approvalsBeforeMerge);
}
/**
* Set to `true` to archive the project instead of deleting on destroy. If set to `true` it will entire omit the `DELETE` operation.
*
*/
@Import(name="archiveOnDestroy")
private @Nullable Output archiveOnDestroy;
/**
* @return Set to `true` to archive the project instead of deleting on destroy. If set to `true` it will entire omit the `DELETE` operation.
*
*/
public Optional> archiveOnDestroy() {
return Optional.ofNullable(this.archiveOnDestroy);
}
/**
* Whether the project is in read-only mode (archived). Repositories can be archived/unarchived by toggling this parameter.
*
*/
@Import(name="archived")
private @Nullable Output archived;
/**
* @return Whether the project is in read-only mode (archived). Repositories can be archived/unarchived by toggling this parameter.
*
*/
public Optional> archived() {
return Optional.ofNullable(this.archived);
}
/**
* Auto-cancel pending pipelines. This isn’t a boolean, but enabled/disabled.
*
*/
@Import(name="autoCancelPendingPipelines")
private @Nullable Output autoCancelPendingPipelines;
/**
* @return Auto-cancel pending pipelines. This isn’t a boolean, but enabled/disabled.
*
*/
public Optional> autoCancelPendingPipelines() {
return Optional.ofNullable(this.autoCancelPendingPipelines);
}
/**
* Auto Deploy strategy. Valid values are `continuous`, `manual`, `timed_incremental`.
*
*/
@Import(name="autoDevopsDeployStrategy")
private @Nullable Output autoDevopsDeployStrategy;
/**
* @return Auto Deploy strategy. Valid values are `continuous`, `manual`, `timed_incremental`.
*
*/
public Optional> autoDevopsDeployStrategy() {
return Optional.ofNullable(this.autoDevopsDeployStrategy);
}
/**
* Enable Auto DevOps for this project.
*
*/
@Import(name="autoDevopsEnabled")
private @Nullable Output autoDevopsEnabled;
/**
* @return Enable Auto DevOps for this project.
*
*/
public Optional> autoDevopsEnabled() {
return Optional.ofNullable(this.autoDevopsEnabled);
}
/**
* Set whether auto-closing referenced issues on default branch.
*
*/
@Import(name="autocloseReferencedIssues")
private @Nullable Output autocloseReferencedIssues;
/**
* @return Set whether auto-closing referenced issues on default branch.
*
*/
public Optional> autocloseReferencedIssues() {
return Optional.ofNullable(this.autocloseReferencedIssues);
}
/**
* 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);
}
/**
* Test coverage parsing for the project. This is deprecated feature in GitLab 15.0.
*
* @deprecated
* build_coverage_regex is removed in GitLab 15.0.
*
*/
@Deprecated /* build_coverage_regex is removed in GitLab 15.0. */
@Import(name="buildCoverageRegex")
private @Nullable Output buildCoverageRegex;
/**
* @return Test coverage parsing for the project. This is deprecated feature in GitLab 15.0.
*
* @deprecated
* build_coverage_regex is removed in GitLab 15.0.
*
*/
@Deprecated /* build_coverage_regex is removed in GitLab 15.0. */
public Optional> buildCoverageRegex() {
return Optional.ofNullable(this.buildCoverageRegex);
}
/**
* The Git strategy. Defaults to fetch. Valid values are `clone`, `fetch`.
*
*/
@Import(name="buildGitStrategy")
private @Nullable Output buildGitStrategy;
/**
* @return The Git strategy. Defaults to fetch. Valid values are `clone`, `fetch`.
*
*/
public Optional> buildGitStrategy() {
return Optional.ofNullable(this.buildGitStrategy);
}
/**
* The maximum amount of time, in seconds, that a job can run.
*
*/
@Import(name="buildTimeout")
private @Nullable Output buildTimeout;
/**
* @return The maximum amount of time, in seconds, that a job can run.
*
*/
public Optional> buildTimeout() {
return Optional.ofNullable(this.buildTimeout);
}
/**
* Set the builds access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
@Import(name="buildsAccessLevel")
private @Nullable Output buildsAccessLevel;
/**
* @return Set the builds access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
public Optional> buildsAccessLevel() {
return Optional.ofNullable(this.buildsAccessLevel);
}
/**
* Custom Path to CI config file.
*
*/
@Import(name="ciConfigPath")
private @Nullable Output ciConfigPath;
/**
* @return Custom Path to CI config file.
*
*/
public Optional> ciConfigPath() {
return Optional.ofNullable(this.ciConfigPath);
}
/**
* Default number of revisions for shallow cloning.
*
*/
@Import(name="ciDefaultGitDepth")
private @Nullable Output ciDefaultGitDepth;
/**
* @return Default number of revisions for shallow cloning.
*
*/
public Optional> ciDefaultGitDepth() {
return Optional.ofNullable(this.ciDefaultGitDepth);
}
/**
* When a new deployment job starts, skip older deployment jobs that are still pending.
*
*/
@Import(name="ciForwardDeploymentEnabled")
private @Nullable Output ciForwardDeploymentEnabled;
/**
* @return When a new deployment job starts, skip older deployment jobs that are still pending.
*
*/
public Optional> ciForwardDeploymentEnabled() {
return Optional.ofNullable(this.ciForwardDeploymentEnabled);
}
/**
* The role required to cancel a pipeline or job. Introduced in GitLab 16.8. Premium and Ultimate only. Valid values are `developer`, `maintainer`, `no one`
*
*/
@Import(name="ciRestrictPipelineCancellationRole")
private @Nullable Output ciRestrictPipelineCancellationRole;
/**
* @return The role required to cancel a pipeline or job. Introduced in GitLab 16.8. Premium and Ultimate only. Valid values are `developer`, `maintainer`, `no one`
*
*/
public Optional> ciRestrictPipelineCancellationRole() {
return Optional.ofNullable(this.ciRestrictPipelineCancellationRole);
}
/**
* Use separate caches for protected branches.
*
*/
@Import(name="ciSeparatedCaches")
private @Nullable Output ciSeparatedCaches;
/**
* @return Use separate caches for protected branches.
*
*/
public Optional> ciSeparatedCaches() {
return Optional.ofNullable(this.ciSeparatedCaches);
}
/**
* Set the image cleanup policy for this project. **Note**: this field is sometimes named `container_expiration_policy_attributes` in the GitLab Upstream API.
*
*/
@Import(name="containerExpirationPolicy")
private @Nullable Output containerExpirationPolicy;
/**
* @return Set the image cleanup policy for this project. **Note**: this field is sometimes named `container_expiration_policy_attributes` in the GitLab Upstream API.
*
*/
public Optional> containerExpirationPolicy() {
return Optional.ofNullable(this.containerExpirationPolicy);
}
/**
* Set visibility of container registry, for this project. Valid values are `disabled`, `private`, `enabled`.
*
*/
@Import(name="containerRegistryAccessLevel")
private @Nullable Output containerRegistryAccessLevel;
/**
* @return Set visibility of container registry, for this project. Valid values are `disabled`, `private`, `enabled`.
*
*/
public Optional> containerRegistryAccessLevel() {
return Optional.ofNullable(this.containerRegistryAccessLevel);
}
/**
* Enable container registry for the project.
*
* @deprecated
* Use `container_registry_access_level` instead.
*
*/
@Deprecated /* Use `container_registry_access_level` instead. */
@Import(name="containerRegistryEnabled")
private @Nullable Output containerRegistryEnabled;
/**
* @return Enable container registry for the project.
*
* @deprecated
* Use `container_registry_access_level` instead.
*
*/
@Deprecated /* Use `container_registry_access_level` instead. */
public Optional> containerRegistryEnabled() {
return Optional.ofNullable(this.containerRegistryEnabled);
}
/**
* The default branch for the project.
*
*/
@Import(name="defaultBranch")
private @Nullable Output defaultBranch;
/**
* @return The default branch for the project.
*
*/
public Optional> defaultBranch() {
return Optional.ofNullable(this.defaultBranch);
}
/**
* A description of the project.
*
*/
@Import(name="description")
private @Nullable Output description;
/**
* @return A description of the project.
*
*/
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);
}
/**
* Set the environments access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
@Import(name="environmentsAccessLevel")
private @Nullable Output environmentsAccessLevel;
/**
* @return Set the environments access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
public Optional> environmentsAccessLevel() {
return Optional.ofNullable(this.environmentsAccessLevel);
}
/**
* The classification label for the project.
*
*/
@Import(name="externalAuthorizationClassificationLabel")
private @Nullable Output externalAuthorizationClassificationLabel;
/**
* @return The classification label for the project.
*
*/
public Optional> externalAuthorizationClassificationLabel() {
return Optional.ofNullable(this.externalAuthorizationClassificationLabel);
}
/**
* Set the feature flags access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
@Import(name="featureFlagsAccessLevel")
private @Nullable Output featureFlagsAccessLevel;
/**
* @return Set the feature flags access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
public Optional> featureFlagsAccessLevel() {
return Optional.ofNullable(this.featureFlagsAccessLevel);
}
/**
* The id of the project to fork. During create the project is forked and during an update the fork relation is changed.
*
*/
@Import(name="forkedFromProjectId")
private @Nullable Output forkedFromProjectId;
/**
* @return The id of the project to fork. During create the project is forked and during an update the fork relation is changed.
*
*/
public Optional> forkedFromProjectId() {
return Optional.ofNullable(this.forkedFromProjectId);
}
/**
* Set the forking access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
@Import(name="forkingAccessLevel")
private @Nullable Output forkingAccessLevel;
/**
* @return Set the forking access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
public Optional> forkingAccessLevel() {
return Optional.ofNullable(this.forkingAccessLevel);
}
/**
* Enable group runners for this project.
*
*/
@Import(name="groupRunnersEnabled")
private @Nullable Output groupRunnersEnabled;
/**
* @return Enable group runners for this project.
*
*/
public Optional> groupRunnersEnabled() {
return Optional.ofNullable(this.groupRunnersEnabled);
}
/**
* For group-level custom templates, specifies ID of group from which all the custom project templates are sourced. Leave empty for instance-level templates. Requires use*custom*template to be true (enterprise edition).
*
*/
@Import(name="groupWithProjectTemplatesId")
private @Nullable Output groupWithProjectTemplatesId;
/**
* @return For group-level custom templates, specifies ID of group from which all the custom project templates are sourced. Leave empty for instance-level templates. Requires use*custom*template to be true (enterprise edition).
*
*/
public Optional> groupWithProjectTemplatesId() {
return Optional.ofNullable(this.groupWithProjectTemplatesId);
}
/**
* Git URL to a repository to be imported. Together with `mirror = true` it will setup a Pull Mirror. This can also be used together with `forked_from_project_id` to setup a Pull Mirror for a fork. The fork takes precedence over the import. Make sure to provide the credentials in `import_url_username` and `import_url_password`. GitLab never returns the credentials, thus the provider cannot detect configuration drift in the credentials. They can also not be imported using `pulumi import`. See the examples section for how to properly use it.
*
*/
@Import(name="importUrl")
private @Nullable Output importUrl;
/**
* @return Git URL to a repository to be imported. Together with `mirror = true` it will setup a Pull Mirror. This can also be used together with `forked_from_project_id` to setup a Pull Mirror for a fork. The fork takes precedence over the import. Make sure to provide the credentials in `import_url_username` and `import_url_password`. GitLab never returns the credentials, thus the provider cannot detect configuration drift in the credentials. They can also not be imported using `pulumi import`. See the examples section for how to properly use it.
*
*/
public Optional> importUrl() {
return Optional.ofNullable(this.importUrl);
}
/**
* The password for the `import_url`. The value of this field is used to construct a valid `import_url` and is only related to the provider. This field cannot be imported using `pulumi import`. See the examples section for how to properly use it.
*
*/
@Import(name="importUrlPassword")
private @Nullable Output importUrlPassword;
/**
* @return The password for the `import_url`. The value of this field is used to construct a valid `import_url` and is only related to the provider. This field cannot be imported using `pulumi import`. See the examples section for how to properly use it.
*
*/
public Optional> importUrlPassword() {
return Optional.ofNullable(this.importUrlPassword);
}
/**
* The username for the `import_url`. The value of this field is used to construct a valid `import_url` and is only related to the provider. This field cannot be imported using `pulumi import`. See the examples section for how to properly use it.
*
*/
@Import(name="importUrlUsername")
private @Nullable Output importUrlUsername;
/**
* @return The username for the `import_url`. The value of this field is used to construct a valid `import_url` and is only related to the provider. This field cannot be imported using `pulumi import`. See the examples section for how to properly use it.
*
*/
public Optional> importUrlUsername() {
return Optional.ofNullable(this.importUrlUsername);
}
/**
* Set the infrastructure access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
@Import(name="infrastructureAccessLevel")
private @Nullable Output infrastructureAccessLevel;
/**
* @return Set the infrastructure access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
public Optional> infrastructureAccessLevel() {
return Optional.ofNullable(this.infrastructureAccessLevel);
}
/**
* Create main branch with first commit containing a README.md file. Must be set to `true` if importing an uninitialized project with a different `default_branch`.
*
*/
@Import(name="initializeWithReadme")
private @Nullable Output initializeWithReadme;
/**
* @return Create main branch with first commit containing a README.md file. Must be set to `true` if importing an uninitialized project with a different `default_branch`.
*
*/
public Optional> initializeWithReadme() {
return Optional.ofNullable(this.initializeWithReadme);
}
/**
* Set the issues access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
@Import(name="issuesAccessLevel")
private @Nullable Output issuesAccessLevel;
/**
* @return Set the issues access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
public Optional> issuesAccessLevel() {
return Optional.ofNullable(this.issuesAccessLevel);
}
/**
* Enable issue tracking for the project.
*
*/
@Import(name="issuesEnabled")
private @Nullable Output issuesEnabled;
/**
* @return Enable issue tracking for the project.
*
*/
public Optional> issuesEnabled() {
return Optional.ofNullable(this.issuesEnabled);
}
/**
* Sets the template for new issues in the project.
*
*/
@Import(name="issuesTemplate")
private @Nullable Output issuesTemplate;
/**
* @return Sets the template for new issues in the project.
*
*/
public Optional> issuesTemplate() {
return Optional.ofNullable(this.issuesTemplate);
}
/**
* Disable or enable the ability to keep the latest artifact for this project.
*
*/
@Import(name="keepLatestArtifact")
private @Nullable Output keepLatestArtifact;
/**
* @return Disable or enable the ability to keep the latest artifact for this project.
*
*/
public Optional> keepLatestArtifact() {
return Optional.ofNullable(this.keepLatestArtifact);
}
/**
* Enable LFS for the project.
*
*/
@Import(name="lfsEnabled")
private @Nullable Output lfsEnabled;
/**
* @return Enable LFS for the project.
*
*/
public Optional> lfsEnabled() {
return Optional.ofNullable(this.lfsEnabled);
}
/**
* Template used to create merge commit message in merge requests. (Introduced in GitLab 14.5.)
*
*/
@Import(name="mergeCommitTemplate")
private @Nullable Output mergeCommitTemplate;
/**
* @return Template used to create merge commit message in merge requests. (Introduced in GitLab 14.5.)
*
*/
public Optional> mergeCommitTemplate() {
return Optional.ofNullable(this.mergeCommitTemplate);
}
/**
* Set the merge method. Valid values are `merge`, `rebase_merge`, `ff`.
*
*/
@Import(name="mergeMethod")
private @Nullable Output mergeMethod;
/**
* @return Set the merge method. Valid values are `merge`, `rebase_merge`, `ff`.
*
*/
public Optional> mergeMethod() {
return Optional.ofNullable(this.mergeMethod);
}
/**
* Enable or disable merge pipelines.
*
*/
@Import(name="mergePipelinesEnabled")
private @Nullable Output mergePipelinesEnabled;
/**
* @return Enable or disable merge pipelines.
*
*/
public Optional> mergePipelinesEnabled() {
return Optional.ofNullable(this.mergePipelinesEnabled);
}
/**
* Set the merge requests access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
@Import(name="mergeRequestsAccessLevel")
private @Nullable Output mergeRequestsAccessLevel;
/**
* @return Set the merge requests access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
public Optional> mergeRequestsAccessLevel() {
return Optional.ofNullable(this.mergeRequestsAccessLevel);
}
/**
* Enable merge requests for the project.
*
*/
@Import(name="mergeRequestsEnabled")
private @Nullable Output mergeRequestsEnabled;
/**
* @return Enable merge requests for the project.
*
*/
public Optional> mergeRequestsEnabled() {
return Optional.ofNullable(this.mergeRequestsEnabled);
}
/**
* Sets the template for new merge requests in the project.
*
*/
@Import(name="mergeRequestsTemplate")
private @Nullable Output mergeRequestsTemplate;
/**
* @return Sets the template for new merge requests in the project.
*
*/
public Optional> mergeRequestsTemplate() {
return Optional.ofNullable(this.mergeRequestsTemplate);
}
/**
* Enable or disable merge trains. Requires `merge_pipelines_enabled` to be set to `true` to take effect.
*
*/
@Import(name="mergeTrainsEnabled")
private @Nullable Output mergeTrainsEnabled;
/**
* @return Enable or disable merge trains. Requires `merge_pipelines_enabled` to be set to `true` to take effect.
*
*/
public Optional> mergeTrainsEnabled() {
return Optional.ofNullable(this.mergeTrainsEnabled);
}
/**
* Enable project pull mirror.
*
*/
@Import(name="mirror")
private @Nullable Output mirror;
/**
* @return Enable project pull mirror.
*
*/
public Optional> mirror() {
return Optional.ofNullable(this.mirror);
}
/**
* Enable overwrite diverged branches for a mirrored project.
*
*/
@Import(name="mirrorOverwritesDivergedBranches")
private @Nullable Output mirrorOverwritesDivergedBranches;
/**
* @return Enable overwrite diverged branches for a mirrored project.
*
*/
public Optional> mirrorOverwritesDivergedBranches() {
return Optional.ofNullable(this.mirrorOverwritesDivergedBranches);
}
/**
* Enable trigger builds on pushes for a mirrored project.
*
*/
@Import(name="mirrorTriggerBuilds")
private @Nullable Output mirrorTriggerBuilds;
/**
* @return Enable trigger builds on pushes for a mirrored project.
*
*/
public Optional> mirrorTriggerBuilds() {
return Optional.ofNullable(this.mirrorTriggerBuilds);
}
/**
* Set visibility of machine learning model experiments. Valid values are `disabled`, `private`, `enabled`.
*
*/
@Import(name="modelExperimentsAccessLevel")
private @Nullable Output modelExperimentsAccessLevel;
/**
* @return Set visibility of machine learning model experiments. Valid values are `disabled`, `private`, `enabled`.
*
*/
public Optional> modelExperimentsAccessLevel() {
return Optional.ofNullable(this.modelExperimentsAccessLevel);
}
/**
* Set visibility of machine learning model registry. Valid values are `disabled`, `private`, `enabled`.
*
*/
@Import(name="modelRegistryAccessLevel")
private @Nullable Output modelRegistryAccessLevel;
/**
* @return Set visibility of machine learning model registry. Valid values are `disabled`, `private`, `enabled`.
*
*/
public Optional> modelRegistryAccessLevel() {
return Optional.ofNullable(this.modelRegistryAccessLevel);
}
/**
* Set the monitor access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
@Import(name="monitorAccessLevel")
private @Nullable Output monitorAccessLevel;
/**
* @return Set the monitor access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
public Optional> monitorAccessLevel() {
return Optional.ofNullable(this.monitorAccessLevel);
}
/**
* For forked projects, target merge requests to this project. If false, the target will be the upstream project.
*
*/
@Import(name="mrDefaultTargetSelf")
private @Nullable Output mrDefaultTargetSelf;
/**
* @return For forked projects, target merge requests to this project. If false, the target will be the upstream project.
*
*/
public Optional> mrDefaultTargetSelf() {
return Optional.ofNullable(this.mrDefaultTargetSelf);
}
/**
* The name of the project.
*
*/
@Import(name="name")
private @Nullable Output name;
/**
* @return The name of the project.
*
*/
public Optional> name() {
return Optional.ofNullable(this.name);
}
/**
* The namespace (group or user) of the project. Defaults to your user.
*
*/
@Import(name="namespaceId")
private @Nullable Output namespaceId;
/**
* @return The namespace (group or user) of the project. Defaults to your user.
*
*/
public Optional> namespaceId() {
return Optional.ofNullable(this.namespaceId);
}
/**
* Set to true if you want allow merges only if all discussions are resolved.
*
*/
@Import(name="onlyAllowMergeIfAllDiscussionsAreResolved")
private @Nullable Output onlyAllowMergeIfAllDiscussionsAreResolved;
/**
* @return Set to true if you want allow merges only if all discussions are resolved.
*
*/
public Optional> onlyAllowMergeIfAllDiscussionsAreResolved() {
return Optional.ofNullable(this.onlyAllowMergeIfAllDiscussionsAreResolved);
}
/**
* Set to true if you want allow merges only if a pipeline succeeds.
*
*/
@Import(name="onlyAllowMergeIfPipelineSucceeds")
private @Nullable Output onlyAllowMergeIfPipelineSucceeds;
/**
* @return Set to true if you want allow merges only if a pipeline succeeds.
*
*/
public Optional> onlyAllowMergeIfPipelineSucceeds() {
return Optional.ofNullable(this.onlyAllowMergeIfPipelineSucceeds);
}
/**
* Enable only mirror protected branches for a mirrored project.
*
*/
@Import(name="onlyMirrorProtectedBranches")
private @Nullable Output onlyMirrorProtectedBranches;
/**
* @return Enable only mirror protected branches for a mirrored project.
*
*/
public Optional> onlyMirrorProtectedBranches() {
return Optional.ofNullable(this.onlyMirrorProtectedBranches);
}
/**
* Enable packages repository for the project.
*
*/
@Import(name="packagesEnabled")
private @Nullable Output packagesEnabled;
/**
* @return Enable packages repository for the project.
*
*/
public Optional> packagesEnabled() {
return Optional.ofNullable(this.packagesEnabled);
}
/**
* Enable pages access control. Valid values are `public`, `private`, `enabled`, `disabled`.
*
*/
@Import(name="pagesAccessLevel")
private @Nullable Output pagesAccessLevel;
/**
* @return Enable pages access control. Valid values are `public`, `private`, `enabled`, `disabled`.
*
*/
public Optional> pagesAccessLevel() {
return Optional.ofNullable(this.pagesAccessLevel);
}
/**
* The path of the repository.
*
*/
@Import(name="path")
private @Nullable Output path;
/**
* @return The path of the repository.
*
*/
public Optional> path() {
return Optional.ofNullable(this.path);
}
/**
* Enable pipelines for the project. The `pipelines_enabled` field is being sent as `jobs_enabled` in the GitLab API calls.
*
* @deprecated
* Deprecated in favor of `builds_access_level`
*
*/
@Deprecated /* Deprecated in favor of `builds_access_level` */
@Import(name="pipelinesEnabled")
private @Nullable Output pipelinesEnabled;
/**
* @return Enable pipelines for the project. The `pipelines_enabled` field is being sent as `jobs_enabled` in the GitLab API calls.
*
* @deprecated
* Deprecated in favor of `builds_access_level`
*
*/
@Deprecated /* Deprecated in favor of `builds_access_level` */
public Optional> pipelinesEnabled() {
return Optional.ofNullable(this.pipelinesEnabled);
}
/**
* Whether Secret Push Detection is enabled. Requires GitLab Ultimate and at least GitLab 17.3.
*
*/
@Import(name="preReceiveSecretDetectionEnabled")
private @Nullable Output preReceiveSecretDetectionEnabled;
/**
* @return Whether Secret Push Detection is enabled. Requires GitLab Ultimate and at least GitLab 17.3.
*
*/
public Optional> preReceiveSecretDetectionEnabled() {
return Optional.ofNullable(this.preReceiveSecretDetectionEnabled);
}
/**
* Show link to create/view merge request when pushing from the command line
*
*/
@Import(name="printingMergeRequestLinkEnabled")
private @Nullable Output printingMergeRequestLinkEnabled;
/**
* @return Show link to create/view merge request when pushing from the command line
*
*/
public Optional> printingMergeRequestLinkEnabled() {
return Optional.ofNullable(this.printingMergeRequestLinkEnabled);
}
/**
* If true, jobs can be viewed by non-project members.
*
* @deprecated
* The `public_builds` attribute has been deprecated in favor of `public_jobs` and will be removed in the next major version of the provider.
*
*/
@Deprecated /* The `public_builds` attribute has been deprecated in favor of `public_jobs` and will be removed in the next major version of the provider. */
@Import(name="publicBuilds")
private @Nullable Output publicBuilds;
/**
* @return If true, jobs can be viewed by non-project members.
*
* @deprecated
* The `public_builds` attribute has been deprecated in favor of `public_jobs` and will be removed in the next major version of the provider.
*
*/
@Deprecated /* The `public_builds` attribute has been deprecated in favor of `public_jobs` and will be removed in the next major version of the provider. */
public Optional> publicBuilds() {
return Optional.ofNullable(this.publicBuilds);
}
/**
* If true, jobs can be viewed by non-project members.
*
*/
@Import(name="publicJobs")
private @Nullable Output publicJobs;
/**
* @return If true, jobs can be viewed by non-project members.
*
*/
public Optional> publicJobs() {
return Optional.ofNullable(this.publicJobs);
}
/**
* Push rules for the project.
*
*/
@Import(name="pushRules")
private @Nullable Output pushRules;
/**
* @return Push rules for the project.
*
*/
public Optional> pushRules() {
return Optional.ofNullable(this.pushRules);
}
/**
* Set the releases access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
@Import(name="releasesAccessLevel")
private @Nullable Output releasesAccessLevel;
/**
* @return Set the releases access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
public Optional> releasesAccessLevel() {
return Optional.ofNullable(this.releasesAccessLevel);
}
/**
* Enable `Delete source branch` option by default for all new merge requests.
*
*/
@Import(name="removeSourceBranchAfterMerge")
private @Nullable Output removeSourceBranchAfterMerge;
/**
* @return Enable `Delete source branch` option by default for all new merge requests.
*
*/
public Optional> removeSourceBranchAfterMerge() {
return Optional.ofNullable(this.removeSourceBranchAfterMerge);
}
/**
* Set the repository access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
@Import(name="repositoryAccessLevel")
private @Nullable Output repositoryAccessLevel;
/**
* @return Set the repository access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
public Optional> repositoryAccessLevel() {
return Optional.ofNullable(this.repositoryAccessLevel);
}
/**
* Which storage shard the repository is on. (administrator only)
*
*/
@Import(name="repositoryStorage")
private @Nullable Output repositoryStorage;
/**
* @return Which storage shard the repository is on. (administrator only)
*
*/
public Optional> repositoryStorage() {
return Optional.ofNullable(this.repositoryStorage);
}
/**
* 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);
}
/**
* Set the requirements access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
@Import(name="requirementsAccessLevel")
private @Nullable Output requirementsAccessLevel;
/**
* @return Set the requirements access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
public Optional> requirementsAccessLevel() {
return Optional.ofNullable(this.requirementsAccessLevel);
}
/**
* Automatically resolve merge request diffs discussions on lines changed with a push.
*
*/
@Import(name="resolveOutdatedDiffDiscussions")
private @Nullable Output resolveOutdatedDiffDiscussions;
/**
* @return Automatically resolve merge request diffs discussions on lines changed with a push.
*
*/
public Optional> resolveOutdatedDiffDiscussions() {
return Optional.ofNullable(this.resolveOutdatedDiffDiscussions);
}
/**
* Allow only users with the Maintainer role to pass user-defined variables when triggering a pipeline.
*
*/
@Import(name="restrictUserDefinedVariables")
private @Nullable Output restrictUserDefinedVariables;
/**
* @return Allow only users with the Maintainer role to pass user-defined variables when triggering a pipeline.
*
*/
public Optional> restrictUserDefinedVariables() {
return Optional.ofNullable(this.restrictUserDefinedVariables);
}
/**
* Set the security and compliance access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
@Import(name="securityAndComplianceAccessLevel")
private @Nullable Output securityAndComplianceAccessLevel;
/**
* @return Set the security and compliance access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
public Optional> securityAndComplianceAccessLevel() {
return Optional.ofNullable(this.securityAndComplianceAccessLevel);
}
/**
* Enable shared runners for this project.
*
*/
@Import(name="sharedRunnersEnabled")
private @Nullable Output sharedRunnersEnabled;
/**
* @return Enable shared runners for this project.
*
*/
public Optional> sharedRunnersEnabled() {
return Optional.ofNullable(this.sharedRunnersEnabled);
}
/**
* If `true`, the default behavior to wait for the default branch protection to be created is skipped.
* This is necessary if the current user is not an admin and the default branch protection is disabled on an instance-level.
* There is currently no known way to determine if the default branch protection is disabled on an instance-level for non-admin users.
* This attribute is only used during resource creation, thus changes are suppressed and the attribute cannot be imported.
*
*/
@Import(name="skipWaitForDefaultBranchProtection")
private @Nullable Output skipWaitForDefaultBranchProtection;
/**
* @return If `true`, the default behavior to wait for the default branch protection to be created is skipped.
* This is necessary if the current user is not an admin and the default branch protection is disabled on an instance-level.
* There is currently no known way to determine if the default branch protection is disabled on an instance-level for non-admin users.
* This attribute is only used during resource creation, thus changes are suppressed and the attribute cannot be imported.
*
*/
public Optional> skipWaitForDefaultBranchProtection() {
return Optional.ofNullable(this.skipWaitForDefaultBranchProtection);
}
/**
* Set the snippets access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
@Import(name="snippetsAccessLevel")
private @Nullable Output snippetsAccessLevel;
/**
* @return Set the snippets access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
public Optional> snippetsAccessLevel() {
return Optional.ofNullable(this.snippetsAccessLevel);
}
/**
* Enable snippets for the project.
*
*/
@Import(name="snippetsEnabled")
private @Nullable Output snippetsEnabled;
/**
* @return Enable snippets for the project.
*
*/
public Optional> snippetsEnabled() {
return Optional.ofNullable(this.snippetsEnabled);
}
/**
* Template used to create squash commit message in merge requests. (Introduced in GitLab 14.6.)
*
*/
@Import(name="squashCommitTemplate")
private @Nullable Output squashCommitTemplate;
/**
* @return Template used to create squash commit message in merge requests. (Introduced in GitLab 14.6.)
*
*/
public Optional> squashCommitTemplate() {
return Optional.ofNullable(this.squashCommitTemplate);
}
/**
* Squash commits when merge request. Valid values are `never`, `always`, `default_on`, or `default_off`. The default value is `default_off`. [GitLab >= 14.1]
*
*/
@Import(name="squashOption")
private @Nullable Output squashOption;
/**
* @return Squash commits when merge request. Valid values are `never`, `always`, `default_on`, or `default_off`. The default value is `default_off`. [GitLab >= 14.1]
*
*/
public Optional> squashOption() {
return Optional.ofNullable(this.squashOption);
}
/**
* The commit message used to apply merge request suggestions.
*
*/
@Import(name="suggestionCommitMessage")
private @Nullable Output suggestionCommitMessage;
/**
* @return The commit message used to apply merge request suggestions.
*
*/
public Optional> suggestionCommitMessage() {
return Optional.ofNullable(this.suggestionCommitMessage);
}
/**
* The list of tags for a project; put array of tags, that should be finally assigned to a project. Use topics instead.
*
*/
@Import(name="tags")
private @Nullable Output> tags;
/**
* @return The list of tags for a project; put array of tags, that should be finally assigned to a project. Use topics instead.
*
*/
public Optional>> tags() {
return Optional.ofNullable(this.tags);
}
/**
* When used without use*custom*template, name of a built-in project template. When used with use*custom*template, name of a custom project template. This option is mutually exclusive with `template_project_id`.
*
*/
@Import(name="templateName")
private @Nullable Output templateName;
/**
* @return When used without use*custom*template, name of a built-in project template. When used with use*custom*template, name of a custom project template. This option is mutually exclusive with `template_project_id`.
*
*/
public Optional> templateName() {
return Optional.ofNullable(this.templateName);
}
/**
* When used with use*custom*template, project ID of a custom project template. This is preferable to using template*name since template*name may be ambiguous (enterprise edition). This option is mutually exclusive with `template_name`. See `gitlab.GroupProjectFileTemplate` to set a project as a template project. If a project has not been set as a template, using it here will result in an error.
*
*/
@Import(name="templateProjectId")
private @Nullable Output templateProjectId;
/**
* @return When used with use*custom*template, project ID of a custom project template. This is preferable to using template*name since template*name may be ambiguous (enterprise edition). This option is mutually exclusive with `template_name`. See `gitlab.GroupProjectFileTemplate` to set a project as a template project. If a project has not been set as a template, using it here will result in an error.
*
*/
public Optional> templateProjectId() {
return Optional.ofNullable(this.templateProjectId);
}
/**
* The list of topics for the project.
*
*/
@Import(name="topics")
private @Nullable Output> topics;
/**
* @return The list of topics for the project.
*
*/
public Optional>> topics() {
return Optional.ofNullable(this.topics);
}
/**
* Use either custom instance or group (with group*with*project*templates*id) project template (enterprise edition).
* > When using a custom template, [Group Tokens won't work](https://docs.gitlab.com/15.7/ee/user/project/settings/import_export_troubleshooting.html#import-using-the-rest-api-fails-when-using-a-group-access-token). You must use a real user's Personal Access Token.
*
*/
@Import(name="useCustomTemplate")
private @Nullable Output useCustomTemplate;
/**
* @return Use either custom instance or group (with group*with*project*templates*id) project template (enterprise edition).
* > When using a custom template, [Group Tokens won't work](https://docs.gitlab.com/15.7/ee/user/project/settings/import_export_troubleshooting.html#import-using-the-rest-api-fails-when-using-a-group-access-token). You must use a real user's Personal Access Token.
*
*/
public Optional> useCustomTemplate() {
return Optional.ofNullable(this.useCustomTemplate);
}
/**
* Set to `public` to create a public project. Valid values are `private`, `internal`, `public`.
*
*/
@Import(name="visibilityLevel")
private @Nullable Output visibilityLevel;
/**
* @return Set to `public` to create a public project. Valid values are `private`, `internal`, `public`.
*
*/
public Optional> visibilityLevel() {
return Optional.ofNullable(this.visibilityLevel);
}
/**
* Set the wiki access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
@Import(name="wikiAccessLevel")
private @Nullable Output wikiAccessLevel;
/**
* @return Set the wiki access level. Valid values are `disabled`, `private`, `enabled`.
*
*/
public Optional> wikiAccessLevel() {
return Optional.ofNullable(this.wikiAccessLevel);
}
/**
* Enable wiki for the project.
*
*/
@Import(name="wikiEnabled")
private @Nullable Output wikiEnabled;
/**
* @return Enable wiki for the project.
*
*/
public Optional> wikiEnabled() {
return Optional.ofNullable(this.wikiEnabled);
}
private ProjectArgs() {}
private ProjectArgs(ProjectArgs $) {
this.allowMergeOnSkippedPipeline = $.allowMergeOnSkippedPipeline;
this.allowPipelineTriggerApproveDeployment = $.allowPipelineTriggerApproveDeployment;
this.analyticsAccessLevel = $.analyticsAccessLevel;
this.approvalsBeforeMerge = $.approvalsBeforeMerge;
this.archiveOnDestroy = $.archiveOnDestroy;
this.archived = $.archived;
this.autoCancelPendingPipelines = $.autoCancelPendingPipelines;
this.autoDevopsDeployStrategy = $.autoDevopsDeployStrategy;
this.autoDevopsEnabled = $.autoDevopsEnabled;
this.autocloseReferencedIssues = $.autocloseReferencedIssues;
this.avatar = $.avatar;
this.avatarHash = $.avatarHash;
this.buildCoverageRegex = $.buildCoverageRegex;
this.buildGitStrategy = $.buildGitStrategy;
this.buildTimeout = $.buildTimeout;
this.buildsAccessLevel = $.buildsAccessLevel;
this.ciConfigPath = $.ciConfigPath;
this.ciDefaultGitDepth = $.ciDefaultGitDepth;
this.ciForwardDeploymentEnabled = $.ciForwardDeploymentEnabled;
this.ciRestrictPipelineCancellationRole = $.ciRestrictPipelineCancellationRole;
this.ciSeparatedCaches = $.ciSeparatedCaches;
this.containerExpirationPolicy = $.containerExpirationPolicy;
this.containerRegistryAccessLevel = $.containerRegistryAccessLevel;
this.containerRegistryEnabled = $.containerRegistryEnabled;
this.defaultBranch = $.defaultBranch;
this.description = $.description;
this.emailsEnabled = $.emailsEnabled;
this.environmentsAccessLevel = $.environmentsAccessLevel;
this.externalAuthorizationClassificationLabel = $.externalAuthorizationClassificationLabel;
this.featureFlagsAccessLevel = $.featureFlagsAccessLevel;
this.forkedFromProjectId = $.forkedFromProjectId;
this.forkingAccessLevel = $.forkingAccessLevel;
this.groupRunnersEnabled = $.groupRunnersEnabled;
this.groupWithProjectTemplatesId = $.groupWithProjectTemplatesId;
this.importUrl = $.importUrl;
this.importUrlPassword = $.importUrlPassword;
this.importUrlUsername = $.importUrlUsername;
this.infrastructureAccessLevel = $.infrastructureAccessLevel;
this.initializeWithReadme = $.initializeWithReadme;
this.issuesAccessLevel = $.issuesAccessLevel;
this.issuesEnabled = $.issuesEnabled;
this.issuesTemplate = $.issuesTemplate;
this.keepLatestArtifact = $.keepLatestArtifact;
this.lfsEnabled = $.lfsEnabled;
this.mergeCommitTemplate = $.mergeCommitTemplate;
this.mergeMethod = $.mergeMethod;
this.mergePipelinesEnabled = $.mergePipelinesEnabled;
this.mergeRequestsAccessLevel = $.mergeRequestsAccessLevel;
this.mergeRequestsEnabled = $.mergeRequestsEnabled;
this.mergeRequestsTemplate = $.mergeRequestsTemplate;
this.mergeTrainsEnabled = $.mergeTrainsEnabled;
this.mirror = $.mirror;
this.mirrorOverwritesDivergedBranches = $.mirrorOverwritesDivergedBranches;
this.mirrorTriggerBuilds = $.mirrorTriggerBuilds;
this.modelExperimentsAccessLevel = $.modelExperimentsAccessLevel;
this.modelRegistryAccessLevel = $.modelRegistryAccessLevel;
this.monitorAccessLevel = $.monitorAccessLevel;
this.mrDefaultTargetSelf = $.mrDefaultTargetSelf;
this.name = $.name;
this.namespaceId = $.namespaceId;
this.onlyAllowMergeIfAllDiscussionsAreResolved = $.onlyAllowMergeIfAllDiscussionsAreResolved;
this.onlyAllowMergeIfPipelineSucceeds = $.onlyAllowMergeIfPipelineSucceeds;
this.onlyMirrorProtectedBranches = $.onlyMirrorProtectedBranches;
this.packagesEnabled = $.packagesEnabled;
this.pagesAccessLevel = $.pagesAccessLevel;
this.path = $.path;
this.pipelinesEnabled = $.pipelinesEnabled;
this.preReceiveSecretDetectionEnabled = $.preReceiveSecretDetectionEnabled;
this.printingMergeRequestLinkEnabled = $.printingMergeRequestLinkEnabled;
this.publicBuilds = $.publicBuilds;
this.publicJobs = $.publicJobs;
this.pushRules = $.pushRules;
this.releasesAccessLevel = $.releasesAccessLevel;
this.removeSourceBranchAfterMerge = $.removeSourceBranchAfterMerge;
this.repositoryAccessLevel = $.repositoryAccessLevel;
this.repositoryStorage = $.repositoryStorage;
this.requestAccessEnabled = $.requestAccessEnabled;
this.requirementsAccessLevel = $.requirementsAccessLevel;
this.resolveOutdatedDiffDiscussions = $.resolveOutdatedDiffDiscussions;
this.restrictUserDefinedVariables = $.restrictUserDefinedVariables;
this.securityAndComplianceAccessLevel = $.securityAndComplianceAccessLevel;
this.sharedRunnersEnabled = $.sharedRunnersEnabled;
this.skipWaitForDefaultBranchProtection = $.skipWaitForDefaultBranchProtection;
this.snippetsAccessLevel = $.snippetsAccessLevel;
this.snippetsEnabled = $.snippetsEnabled;
this.squashCommitTemplate = $.squashCommitTemplate;
this.squashOption = $.squashOption;
this.suggestionCommitMessage = $.suggestionCommitMessage;
this.tags = $.tags;
this.templateName = $.templateName;
this.templateProjectId = $.templateProjectId;
this.topics = $.topics;
this.useCustomTemplate = $.useCustomTemplate;
this.visibilityLevel = $.visibilityLevel;
this.wikiAccessLevel = $.wikiAccessLevel;
this.wikiEnabled = $.wikiEnabled;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(ProjectArgs defaults) {
return new Builder(defaults);
}
public static final class Builder {
private ProjectArgs $;
public Builder() {
$ = new ProjectArgs();
}
public Builder(ProjectArgs defaults) {
$ = new ProjectArgs(Objects.requireNonNull(defaults));
}
/**
* @param allowMergeOnSkippedPipeline Set to true if you want to treat skipped pipelines as if they finished with success.
*
* @return builder
*
*/
public Builder allowMergeOnSkippedPipeline(@Nullable Output allowMergeOnSkippedPipeline) {
$.allowMergeOnSkippedPipeline = allowMergeOnSkippedPipeline;
return this;
}
/**
* @param allowMergeOnSkippedPipeline Set to true if you want to treat skipped pipelines as if they finished with success.
*
* @return builder
*
*/
public Builder allowMergeOnSkippedPipeline(Boolean allowMergeOnSkippedPipeline) {
return allowMergeOnSkippedPipeline(Output.of(allowMergeOnSkippedPipeline));
}
/**
* @param allowPipelineTriggerApproveDeployment Set whether or not a pipeline triggerer is allowed to approve deployments. Premium and Ultimate only.
*
* @return builder
*
*/
public Builder allowPipelineTriggerApproveDeployment(@Nullable Output allowPipelineTriggerApproveDeployment) {
$.allowPipelineTriggerApproveDeployment = allowPipelineTriggerApproveDeployment;
return this;
}
/**
* @param allowPipelineTriggerApproveDeployment Set whether or not a pipeline triggerer is allowed to approve deployments. Premium and Ultimate only.
*
* @return builder
*
*/
public Builder allowPipelineTriggerApproveDeployment(Boolean allowPipelineTriggerApproveDeployment) {
return allowPipelineTriggerApproveDeployment(Output.of(allowPipelineTriggerApproveDeployment));
}
/**
* @param analyticsAccessLevel Set the analytics access level. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder analyticsAccessLevel(@Nullable Output analyticsAccessLevel) {
$.analyticsAccessLevel = analyticsAccessLevel;
return this;
}
/**
* @param analyticsAccessLevel Set the analytics access level. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder analyticsAccessLevel(String analyticsAccessLevel) {
return analyticsAccessLevel(Output.of(analyticsAccessLevel));
}
/**
* @param approvalsBeforeMerge Number of merge request approvals required for merging. Default is 0.
* This field **does not** work well in combination with the `gitlab.ProjectApprovalRule` resource
* and is most likely gonna be deprecated in a future GitLab version (see [this upstream epic](https://gitlab.com/groups/gitlab-org/-/epics/7572)).
* In the meantime we recommend against using this attribute and use `gitlab.ProjectApprovalRule` instead.
*
* @return builder
*
*/
public Builder approvalsBeforeMerge(@Nullable Output approvalsBeforeMerge) {
$.approvalsBeforeMerge = approvalsBeforeMerge;
return this;
}
/**
* @param approvalsBeforeMerge Number of merge request approvals required for merging. Default is 0.
* This field **does not** work well in combination with the `gitlab.ProjectApprovalRule` resource
* and is most likely gonna be deprecated in a future GitLab version (see [this upstream epic](https://gitlab.com/groups/gitlab-org/-/epics/7572)).
* In the meantime we recommend against using this attribute and use `gitlab.ProjectApprovalRule` instead.
*
* @return builder
*
*/
public Builder approvalsBeforeMerge(Integer approvalsBeforeMerge) {
return approvalsBeforeMerge(Output.of(approvalsBeforeMerge));
}
/**
* @param archiveOnDestroy Set to `true` to archive the project instead of deleting on destroy. If set to `true` it will entire omit the `DELETE` operation.
*
* @return builder
*
*/
public Builder archiveOnDestroy(@Nullable Output archiveOnDestroy) {
$.archiveOnDestroy = archiveOnDestroy;
return this;
}
/**
* @param archiveOnDestroy Set to `true` to archive the project instead of deleting on destroy. If set to `true` it will entire omit the `DELETE` operation.
*
* @return builder
*
*/
public Builder archiveOnDestroy(Boolean archiveOnDestroy) {
return archiveOnDestroy(Output.of(archiveOnDestroy));
}
/**
* @param archived Whether the project is in read-only mode (archived). Repositories can be archived/unarchived by toggling this parameter.
*
* @return builder
*
*/
public Builder archived(@Nullable Output archived) {
$.archived = archived;
return this;
}
/**
* @param archived Whether the project is in read-only mode (archived). Repositories can be archived/unarchived by toggling this parameter.
*
* @return builder
*
*/
public Builder archived(Boolean archived) {
return archived(Output.of(archived));
}
/**
* @param autoCancelPendingPipelines Auto-cancel pending pipelines. This isn’t a boolean, but enabled/disabled.
*
* @return builder
*
*/
public Builder autoCancelPendingPipelines(@Nullable Output autoCancelPendingPipelines) {
$.autoCancelPendingPipelines = autoCancelPendingPipelines;
return this;
}
/**
* @param autoCancelPendingPipelines Auto-cancel pending pipelines. This isn’t a boolean, but enabled/disabled.
*
* @return builder
*
*/
public Builder autoCancelPendingPipelines(String autoCancelPendingPipelines) {
return autoCancelPendingPipelines(Output.of(autoCancelPendingPipelines));
}
/**
* @param autoDevopsDeployStrategy Auto Deploy strategy. Valid values are `continuous`, `manual`, `timed_incremental`.
*
* @return builder
*
*/
public Builder autoDevopsDeployStrategy(@Nullable Output autoDevopsDeployStrategy) {
$.autoDevopsDeployStrategy = autoDevopsDeployStrategy;
return this;
}
/**
* @param autoDevopsDeployStrategy Auto Deploy strategy. Valid values are `continuous`, `manual`, `timed_incremental`.
*
* @return builder
*
*/
public Builder autoDevopsDeployStrategy(String autoDevopsDeployStrategy) {
return autoDevopsDeployStrategy(Output.of(autoDevopsDeployStrategy));
}
/**
* @param autoDevopsEnabled Enable Auto DevOps for this project.
*
* @return builder
*
*/
public Builder autoDevopsEnabled(@Nullable Output autoDevopsEnabled) {
$.autoDevopsEnabled = autoDevopsEnabled;
return this;
}
/**
* @param autoDevopsEnabled Enable Auto DevOps for this project.
*
* @return builder
*
*/
public Builder autoDevopsEnabled(Boolean autoDevopsEnabled) {
return autoDevopsEnabled(Output.of(autoDevopsEnabled));
}
/**
* @param autocloseReferencedIssues Set whether auto-closing referenced issues on default branch.
*
* @return builder
*
*/
public Builder autocloseReferencedIssues(@Nullable Output autocloseReferencedIssues) {
$.autocloseReferencedIssues = autocloseReferencedIssues;
return this;
}
/**
* @param autocloseReferencedIssues Set whether auto-closing referenced issues on default branch.
*
* @return builder
*
*/
public Builder autocloseReferencedIssues(Boolean autocloseReferencedIssues) {
return autocloseReferencedIssues(Output.of(autocloseReferencedIssues));
}
/**
* @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 buildCoverageRegex Test coverage parsing for the project. This is deprecated feature in GitLab 15.0.
*
* @return builder
*
* @deprecated
* build_coverage_regex is removed in GitLab 15.0.
*
*/
@Deprecated /* build_coverage_regex is removed in GitLab 15.0. */
public Builder buildCoverageRegex(@Nullable Output buildCoverageRegex) {
$.buildCoverageRegex = buildCoverageRegex;
return this;
}
/**
* @param buildCoverageRegex Test coverage parsing for the project. This is deprecated feature in GitLab 15.0.
*
* @return builder
*
* @deprecated
* build_coverage_regex is removed in GitLab 15.0.
*
*/
@Deprecated /* build_coverage_regex is removed in GitLab 15.0. */
public Builder buildCoverageRegex(String buildCoverageRegex) {
return buildCoverageRegex(Output.of(buildCoverageRegex));
}
/**
* @param buildGitStrategy The Git strategy. Defaults to fetch. Valid values are `clone`, `fetch`.
*
* @return builder
*
*/
public Builder buildGitStrategy(@Nullable Output buildGitStrategy) {
$.buildGitStrategy = buildGitStrategy;
return this;
}
/**
* @param buildGitStrategy The Git strategy. Defaults to fetch. Valid values are `clone`, `fetch`.
*
* @return builder
*
*/
public Builder buildGitStrategy(String buildGitStrategy) {
return buildGitStrategy(Output.of(buildGitStrategy));
}
/**
* @param buildTimeout The maximum amount of time, in seconds, that a job can run.
*
* @return builder
*
*/
public Builder buildTimeout(@Nullable Output buildTimeout) {
$.buildTimeout = buildTimeout;
return this;
}
/**
* @param buildTimeout The maximum amount of time, in seconds, that a job can run.
*
* @return builder
*
*/
public Builder buildTimeout(Integer buildTimeout) {
return buildTimeout(Output.of(buildTimeout));
}
/**
* @param buildsAccessLevel Set the builds access level. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder buildsAccessLevel(@Nullable Output buildsAccessLevel) {
$.buildsAccessLevel = buildsAccessLevel;
return this;
}
/**
* @param buildsAccessLevel Set the builds access level. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder buildsAccessLevel(String buildsAccessLevel) {
return buildsAccessLevel(Output.of(buildsAccessLevel));
}
/**
* @param ciConfigPath Custom Path to CI config file.
*
* @return builder
*
*/
public Builder ciConfigPath(@Nullable Output ciConfigPath) {
$.ciConfigPath = ciConfigPath;
return this;
}
/**
* @param ciConfigPath Custom Path to CI config file.
*
* @return builder
*
*/
public Builder ciConfigPath(String ciConfigPath) {
return ciConfigPath(Output.of(ciConfigPath));
}
/**
* @param ciDefaultGitDepth Default number of revisions for shallow cloning.
*
* @return builder
*
*/
public Builder ciDefaultGitDepth(@Nullable Output ciDefaultGitDepth) {
$.ciDefaultGitDepth = ciDefaultGitDepth;
return this;
}
/**
* @param ciDefaultGitDepth Default number of revisions for shallow cloning.
*
* @return builder
*
*/
public Builder ciDefaultGitDepth(Integer ciDefaultGitDepth) {
return ciDefaultGitDepth(Output.of(ciDefaultGitDepth));
}
/**
* @param ciForwardDeploymentEnabled When a new deployment job starts, skip older deployment jobs that are still pending.
*
* @return builder
*
*/
public Builder ciForwardDeploymentEnabled(@Nullable Output ciForwardDeploymentEnabled) {
$.ciForwardDeploymentEnabled = ciForwardDeploymentEnabled;
return this;
}
/**
* @param ciForwardDeploymentEnabled When a new deployment job starts, skip older deployment jobs that are still pending.
*
* @return builder
*
*/
public Builder ciForwardDeploymentEnabled(Boolean ciForwardDeploymentEnabled) {
return ciForwardDeploymentEnabled(Output.of(ciForwardDeploymentEnabled));
}
/**
* @param ciRestrictPipelineCancellationRole The role required to cancel a pipeline or job. Introduced in GitLab 16.8. Premium and Ultimate only. Valid values are `developer`, `maintainer`, `no one`
*
* @return builder
*
*/
public Builder ciRestrictPipelineCancellationRole(@Nullable Output ciRestrictPipelineCancellationRole) {
$.ciRestrictPipelineCancellationRole = ciRestrictPipelineCancellationRole;
return this;
}
/**
* @param ciRestrictPipelineCancellationRole The role required to cancel a pipeline or job. Introduced in GitLab 16.8. Premium and Ultimate only. Valid values are `developer`, `maintainer`, `no one`
*
* @return builder
*
*/
public Builder ciRestrictPipelineCancellationRole(String ciRestrictPipelineCancellationRole) {
return ciRestrictPipelineCancellationRole(Output.of(ciRestrictPipelineCancellationRole));
}
/**
* @param ciSeparatedCaches Use separate caches for protected branches.
*
* @return builder
*
*/
public Builder ciSeparatedCaches(@Nullable Output ciSeparatedCaches) {
$.ciSeparatedCaches = ciSeparatedCaches;
return this;
}
/**
* @param ciSeparatedCaches Use separate caches for protected branches.
*
* @return builder
*
*/
public Builder ciSeparatedCaches(Boolean ciSeparatedCaches) {
return ciSeparatedCaches(Output.of(ciSeparatedCaches));
}
/**
* @param containerExpirationPolicy Set the image cleanup policy for this project. **Note**: this field is sometimes named `container_expiration_policy_attributes` in the GitLab Upstream API.
*
* @return builder
*
*/
public Builder containerExpirationPolicy(@Nullable Output containerExpirationPolicy) {
$.containerExpirationPolicy = containerExpirationPolicy;
return this;
}
/**
* @param containerExpirationPolicy Set the image cleanup policy for this project. **Note**: this field is sometimes named `container_expiration_policy_attributes` in the GitLab Upstream API.
*
* @return builder
*
*/
public Builder containerExpirationPolicy(ProjectContainerExpirationPolicyArgs containerExpirationPolicy) {
return containerExpirationPolicy(Output.of(containerExpirationPolicy));
}
/**
* @param containerRegistryAccessLevel Set visibility of container registry, for this project. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder containerRegistryAccessLevel(@Nullable Output containerRegistryAccessLevel) {
$.containerRegistryAccessLevel = containerRegistryAccessLevel;
return this;
}
/**
* @param containerRegistryAccessLevel Set visibility of container registry, for this project. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder containerRegistryAccessLevel(String containerRegistryAccessLevel) {
return containerRegistryAccessLevel(Output.of(containerRegistryAccessLevel));
}
/**
* @param containerRegistryEnabled Enable container registry for the project.
*
* @return builder
*
* @deprecated
* Use `container_registry_access_level` instead.
*
*/
@Deprecated /* Use `container_registry_access_level` instead. */
public Builder containerRegistryEnabled(@Nullable Output containerRegistryEnabled) {
$.containerRegistryEnabled = containerRegistryEnabled;
return this;
}
/**
* @param containerRegistryEnabled Enable container registry for the project.
*
* @return builder
*
* @deprecated
* Use `container_registry_access_level` instead.
*
*/
@Deprecated /* Use `container_registry_access_level` instead. */
public Builder containerRegistryEnabled(Boolean containerRegistryEnabled) {
return containerRegistryEnabled(Output.of(containerRegistryEnabled));
}
/**
* @param defaultBranch The default branch for the project.
*
* @return builder
*
*/
public Builder defaultBranch(@Nullable Output defaultBranch) {
$.defaultBranch = defaultBranch;
return this;
}
/**
* @param defaultBranch The default branch for the project.
*
* @return builder
*
*/
public Builder defaultBranch(String defaultBranch) {
return defaultBranch(Output.of(defaultBranch));
}
/**
* @param description A description of the project.
*
* @return builder
*
*/
public Builder description(@Nullable Output description) {
$.description = description;
return this;
}
/**
* @param description A description of the project.
*
* @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 environmentsAccessLevel Set the environments access level. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder environmentsAccessLevel(@Nullable Output environmentsAccessLevel) {
$.environmentsAccessLevel = environmentsAccessLevel;
return this;
}
/**
* @param environmentsAccessLevel Set the environments access level. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder environmentsAccessLevel(String environmentsAccessLevel) {
return environmentsAccessLevel(Output.of(environmentsAccessLevel));
}
/**
* @param externalAuthorizationClassificationLabel The classification label for the project.
*
* @return builder
*
*/
public Builder externalAuthorizationClassificationLabel(@Nullable Output externalAuthorizationClassificationLabel) {
$.externalAuthorizationClassificationLabel = externalAuthorizationClassificationLabel;
return this;
}
/**
* @param externalAuthorizationClassificationLabel The classification label for the project.
*
* @return builder
*
*/
public Builder externalAuthorizationClassificationLabel(String externalAuthorizationClassificationLabel) {
return externalAuthorizationClassificationLabel(Output.of(externalAuthorizationClassificationLabel));
}
/**
* @param featureFlagsAccessLevel Set the feature flags access level. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder featureFlagsAccessLevel(@Nullable Output featureFlagsAccessLevel) {
$.featureFlagsAccessLevel = featureFlagsAccessLevel;
return this;
}
/**
* @param featureFlagsAccessLevel Set the feature flags access level. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder featureFlagsAccessLevel(String featureFlagsAccessLevel) {
return featureFlagsAccessLevel(Output.of(featureFlagsAccessLevel));
}
/**
* @param forkedFromProjectId The id of the project to fork. During create the project is forked and during an update the fork relation is changed.
*
* @return builder
*
*/
public Builder forkedFromProjectId(@Nullable Output forkedFromProjectId) {
$.forkedFromProjectId = forkedFromProjectId;
return this;
}
/**
* @param forkedFromProjectId The id of the project to fork. During create the project is forked and during an update the fork relation is changed.
*
* @return builder
*
*/
public Builder forkedFromProjectId(Integer forkedFromProjectId) {
return forkedFromProjectId(Output.of(forkedFromProjectId));
}
/**
* @param forkingAccessLevel Set the forking access level. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder forkingAccessLevel(@Nullable Output forkingAccessLevel) {
$.forkingAccessLevel = forkingAccessLevel;
return this;
}
/**
* @param forkingAccessLevel Set the forking access level. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder forkingAccessLevel(String forkingAccessLevel) {
return forkingAccessLevel(Output.of(forkingAccessLevel));
}
/**
* @param groupRunnersEnabled Enable group runners for this project.
*
* @return builder
*
*/
public Builder groupRunnersEnabled(@Nullable Output groupRunnersEnabled) {
$.groupRunnersEnabled = groupRunnersEnabled;
return this;
}
/**
* @param groupRunnersEnabled Enable group runners for this project.
*
* @return builder
*
*/
public Builder groupRunnersEnabled(Boolean groupRunnersEnabled) {
return groupRunnersEnabled(Output.of(groupRunnersEnabled));
}
/**
* @param groupWithProjectTemplatesId For group-level custom templates, specifies ID of group from which all the custom project templates are sourced. Leave empty for instance-level templates. Requires use*custom*template to be true (enterprise edition).
*
* @return builder
*
*/
public Builder groupWithProjectTemplatesId(@Nullable Output groupWithProjectTemplatesId) {
$.groupWithProjectTemplatesId = groupWithProjectTemplatesId;
return this;
}
/**
* @param groupWithProjectTemplatesId For group-level custom templates, specifies ID of group from which all the custom project templates are sourced. Leave empty for instance-level templates. Requires use*custom*template to be true (enterprise edition).
*
* @return builder
*
*/
public Builder groupWithProjectTemplatesId(Integer groupWithProjectTemplatesId) {
return groupWithProjectTemplatesId(Output.of(groupWithProjectTemplatesId));
}
/**
* @param importUrl Git URL to a repository to be imported. Together with `mirror = true` it will setup a Pull Mirror. This can also be used together with `forked_from_project_id` to setup a Pull Mirror for a fork. The fork takes precedence over the import. Make sure to provide the credentials in `import_url_username` and `import_url_password`. GitLab never returns the credentials, thus the provider cannot detect configuration drift in the credentials. They can also not be imported using `pulumi import`. See the examples section for how to properly use it.
*
* @return builder
*
*/
public Builder importUrl(@Nullable Output importUrl) {
$.importUrl = importUrl;
return this;
}
/**
* @param importUrl Git URL to a repository to be imported. Together with `mirror = true` it will setup a Pull Mirror. This can also be used together with `forked_from_project_id` to setup a Pull Mirror for a fork. The fork takes precedence over the import. Make sure to provide the credentials in `import_url_username` and `import_url_password`. GitLab never returns the credentials, thus the provider cannot detect configuration drift in the credentials. They can also not be imported using `pulumi import`. See the examples section for how to properly use it.
*
* @return builder
*
*/
public Builder importUrl(String importUrl) {
return importUrl(Output.of(importUrl));
}
/**
* @param importUrlPassword The password for the `import_url`. The value of this field is used to construct a valid `import_url` and is only related to the provider. This field cannot be imported using `pulumi import`. See the examples section for how to properly use it.
*
* @return builder
*
*/
public Builder importUrlPassword(@Nullable Output importUrlPassword) {
$.importUrlPassword = importUrlPassword;
return this;
}
/**
* @param importUrlPassword The password for the `import_url`. The value of this field is used to construct a valid `import_url` and is only related to the provider. This field cannot be imported using `pulumi import`. See the examples section for how to properly use it.
*
* @return builder
*
*/
public Builder importUrlPassword(String importUrlPassword) {
return importUrlPassword(Output.of(importUrlPassword));
}
/**
* @param importUrlUsername The username for the `import_url`. The value of this field is used to construct a valid `import_url` and is only related to the provider. This field cannot be imported using `pulumi import`. See the examples section for how to properly use it.
*
* @return builder
*
*/
public Builder importUrlUsername(@Nullable Output importUrlUsername) {
$.importUrlUsername = importUrlUsername;
return this;
}
/**
* @param importUrlUsername The username for the `import_url`. The value of this field is used to construct a valid `import_url` and is only related to the provider. This field cannot be imported using `pulumi import`. See the examples section for how to properly use it.
*
* @return builder
*
*/
public Builder importUrlUsername(String importUrlUsername) {
return importUrlUsername(Output.of(importUrlUsername));
}
/**
* @param infrastructureAccessLevel Set the infrastructure access level. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder infrastructureAccessLevel(@Nullable Output infrastructureAccessLevel) {
$.infrastructureAccessLevel = infrastructureAccessLevel;
return this;
}
/**
* @param infrastructureAccessLevel Set the infrastructure access level. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder infrastructureAccessLevel(String infrastructureAccessLevel) {
return infrastructureAccessLevel(Output.of(infrastructureAccessLevel));
}
/**
* @param initializeWithReadme Create main branch with first commit containing a README.md file. Must be set to `true` if importing an uninitialized project with a different `default_branch`.
*
* @return builder
*
*/
public Builder initializeWithReadme(@Nullable Output initializeWithReadme) {
$.initializeWithReadme = initializeWithReadme;
return this;
}
/**
* @param initializeWithReadme Create main branch with first commit containing a README.md file. Must be set to `true` if importing an uninitialized project with a different `default_branch`.
*
* @return builder
*
*/
public Builder initializeWithReadme(Boolean initializeWithReadme) {
return initializeWithReadme(Output.of(initializeWithReadme));
}
/**
* @param issuesAccessLevel Set the issues access level. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder issuesAccessLevel(@Nullable Output issuesAccessLevel) {
$.issuesAccessLevel = issuesAccessLevel;
return this;
}
/**
* @param issuesAccessLevel Set the issues access level. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder issuesAccessLevel(String issuesAccessLevel) {
return issuesAccessLevel(Output.of(issuesAccessLevel));
}
/**
* @param issuesEnabled Enable issue tracking for the project.
*
* @return builder
*
*/
public Builder issuesEnabled(@Nullable Output issuesEnabled) {
$.issuesEnabled = issuesEnabled;
return this;
}
/**
* @param issuesEnabled Enable issue tracking for the project.
*
* @return builder
*
*/
public Builder issuesEnabled(Boolean issuesEnabled) {
return issuesEnabled(Output.of(issuesEnabled));
}
/**
* @param issuesTemplate Sets the template for new issues in the project.
*
* @return builder
*
*/
public Builder issuesTemplate(@Nullable Output issuesTemplate) {
$.issuesTemplate = issuesTemplate;
return this;
}
/**
* @param issuesTemplate Sets the template for new issues in the project.
*
* @return builder
*
*/
public Builder issuesTemplate(String issuesTemplate) {
return issuesTemplate(Output.of(issuesTemplate));
}
/**
* @param keepLatestArtifact Disable or enable the ability to keep the latest artifact for this project.
*
* @return builder
*
*/
public Builder keepLatestArtifact(@Nullable Output keepLatestArtifact) {
$.keepLatestArtifact = keepLatestArtifact;
return this;
}
/**
* @param keepLatestArtifact Disable or enable the ability to keep the latest artifact for this project.
*
* @return builder
*
*/
public Builder keepLatestArtifact(Boolean keepLatestArtifact) {
return keepLatestArtifact(Output.of(keepLatestArtifact));
}
/**
* @param lfsEnabled Enable LFS for the project.
*
* @return builder
*
*/
public Builder lfsEnabled(@Nullable Output lfsEnabled) {
$.lfsEnabled = lfsEnabled;
return this;
}
/**
* @param lfsEnabled Enable LFS for the project.
*
* @return builder
*
*/
public Builder lfsEnabled(Boolean lfsEnabled) {
return lfsEnabled(Output.of(lfsEnabled));
}
/**
* @param mergeCommitTemplate Template used to create merge commit message in merge requests. (Introduced in GitLab 14.5.)
*
* @return builder
*
*/
public Builder mergeCommitTemplate(@Nullable Output mergeCommitTemplate) {
$.mergeCommitTemplate = mergeCommitTemplate;
return this;
}
/**
* @param mergeCommitTemplate Template used to create merge commit message in merge requests. (Introduced in GitLab 14.5.)
*
* @return builder
*
*/
public Builder mergeCommitTemplate(String mergeCommitTemplate) {
return mergeCommitTemplate(Output.of(mergeCommitTemplate));
}
/**
* @param mergeMethod Set the merge method. Valid values are `merge`, `rebase_merge`, `ff`.
*
* @return builder
*
*/
public Builder mergeMethod(@Nullable Output mergeMethod) {
$.mergeMethod = mergeMethod;
return this;
}
/**
* @param mergeMethod Set the merge method. Valid values are `merge`, `rebase_merge`, `ff`.
*
* @return builder
*
*/
public Builder mergeMethod(String mergeMethod) {
return mergeMethod(Output.of(mergeMethod));
}
/**
* @param mergePipelinesEnabled Enable or disable merge pipelines.
*
* @return builder
*
*/
public Builder mergePipelinesEnabled(@Nullable Output mergePipelinesEnabled) {
$.mergePipelinesEnabled = mergePipelinesEnabled;
return this;
}
/**
* @param mergePipelinesEnabled Enable or disable merge pipelines.
*
* @return builder
*
*/
public Builder mergePipelinesEnabled(Boolean mergePipelinesEnabled) {
return mergePipelinesEnabled(Output.of(mergePipelinesEnabled));
}
/**
* @param mergeRequestsAccessLevel Set the merge requests access level. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder mergeRequestsAccessLevel(@Nullable Output mergeRequestsAccessLevel) {
$.mergeRequestsAccessLevel = mergeRequestsAccessLevel;
return this;
}
/**
* @param mergeRequestsAccessLevel Set the merge requests access level. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder mergeRequestsAccessLevel(String mergeRequestsAccessLevel) {
return mergeRequestsAccessLevel(Output.of(mergeRequestsAccessLevel));
}
/**
* @param mergeRequestsEnabled Enable merge requests for the project.
*
* @return builder
*
*/
public Builder mergeRequestsEnabled(@Nullable Output mergeRequestsEnabled) {
$.mergeRequestsEnabled = mergeRequestsEnabled;
return this;
}
/**
* @param mergeRequestsEnabled Enable merge requests for the project.
*
* @return builder
*
*/
public Builder mergeRequestsEnabled(Boolean mergeRequestsEnabled) {
return mergeRequestsEnabled(Output.of(mergeRequestsEnabled));
}
/**
* @param mergeRequestsTemplate Sets the template for new merge requests in the project.
*
* @return builder
*
*/
public Builder mergeRequestsTemplate(@Nullable Output mergeRequestsTemplate) {
$.mergeRequestsTemplate = mergeRequestsTemplate;
return this;
}
/**
* @param mergeRequestsTemplate Sets the template for new merge requests in the project.
*
* @return builder
*
*/
public Builder mergeRequestsTemplate(String mergeRequestsTemplate) {
return mergeRequestsTemplate(Output.of(mergeRequestsTemplate));
}
/**
* @param mergeTrainsEnabled Enable or disable merge trains. Requires `merge_pipelines_enabled` to be set to `true` to take effect.
*
* @return builder
*
*/
public Builder mergeTrainsEnabled(@Nullable Output mergeTrainsEnabled) {
$.mergeTrainsEnabled = mergeTrainsEnabled;
return this;
}
/**
* @param mergeTrainsEnabled Enable or disable merge trains. Requires `merge_pipelines_enabled` to be set to `true` to take effect.
*
* @return builder
*
*/
public Builder mergeTrainsEnabled(Boolean mergeTrainsEnabled) {
return mergeTrainsEnabled(Output.of(mergeTrainsEnabled));
}
/**
* @param mirror Enable project pull mirror.
*
* @return builder
*
*/
public Builder mirror(@Nullable Output mirror) {
$.mirror = mirror;
return this;
}
/**
* @param mirror Enable project pull mirror.
*
* @return builder
*
*/
public Builder mirror(Boolean mirror) {
return mirror(Output.of(mirror));
}
/**
* @param mirrorOverwritesDivergedBranches Enable overwrite diverged branches for a mirrored project.
*
* @return builder
*
*/
public Builder mirrorOverwritesDivergedBranches(@Nullable Output mirrorOverwritesDivergedBranches) {
$.mirrorOverwritesDivergedBranches = mirrorOverwritesDivergedBranches;
return this;
}
/**
* @param mirrorOverwritesDivergedBranches Enable overwrite diverged branches for a mirrored project.
*
* @return builder
*
*/
public Builder mirrorOverwritesDivergedBranches(Boolean mirrorOverwritesDivergedBranches) {
return mirrorOverwritesDivergedBranches(Output.of(mirrorOverwritesDivergedBranches));
}
/**
* @param mirrorTriggerBuilds Enable trigger builds on pushes for a mirrored project.
*
* @return builder
*
*/
public Builder mirrorTriggerBuilds(@Nullable Output mirrorTriggerBuilds) {
$.mirrorTriggerBuilds = mirrorTriggerBuilds;
return this;
}
/**
* @param mirrorTriggerBuilds Enable trigger builds on pushes for a mirrored project.
*
* @return builder
*
*/
public Builder mirrorTriggerBuilds(Boolean mirrorTriggerBuilds) {
return mirrorTriggerBuilds(Output.of(mirrorTriggerBuilds));
}
/**
* @param modelExperimentsAccessLevel Set visibility of machine learning model experiments. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder modelExperimentsAccessLevel(@Nullable Output modelExperimentsAccessLevel) {
$.modelExperimentsAccessLevel = modelExperimentsAccessLevel;
return this;
}
/**
* @param modelExperimentsAccessLevel Set visibility of machine learning model experiments. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder modelExperimentsAccessLevel(String modelExperimentsAccessLevel) {
return modelExperimentsAccessLevel(Output.of(modelExperimentsAccessLevel));
}
/**
* @param modelRegistryAccessLevel Set visibility of machine learning model registry. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder modelRegistryAccessLevel(@Nullable Output modelRegistryAccessLevel) {
$.modelRegistryAccessLevel = modelRegistryAccessLevel;
return this;
}
/**
* @param modelRegistryAccessLevel Set visibility of machine learning model registry. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder modelRegistryAccessLevel(String modelRegistryAccessLevel) {
return modelRegistryAccessLevel(Output.of(modelRegistryAccessLevel));
}
/**
* @param monitorAccessLevel Set the monitor access level. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder monitorAccessLevel(@Nullable Output monitorAccessLevel) {
$.monitorAccessLevel = monitorAccessLevel;
return this;
}
/**
* @param monitorAccessLevel Set the monitor access level. Valid values are `disabled`, `private`, `enabled`.
*
* @return builder
*
*/
public Builder monitorAccessLevel(String monitorAccessLevel) {
return monitorAccessLevel(Output.of(monitorAccessLevel));
}
/**
* @param mrDefaultTargetSelf For forked projects, target merge requests to this project. If false, the target will be the upstream project.
*
* @return builder
*
*/
public Builder mrDefaultTargetSelf(@Nullable Output mrDefaultTargetSelf) {
$.mrDefaultTargetSelf = mrDefaultTargetSelf;
return this;
}
/**
* @param mrDefaultTargetSelf For forked projects, target merge requests to this project. If false, the target will be the upstream project.
*
* @return builder
*
*/
public Builder mrDefaultTargetSelf(Boolean mrDefaultTargetSelf) {
return mrDefaultTargetSelf(Output.of(mrDefaultTargetSelf));
}
/**
* @param name The name of the project.
*
* @return builder
*
*/
public Builder name(@Nullable Output