project

package
v3.0.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 8, 2022 License: MPL-2.0 Imports: 7 Imported by: 0

README

gitlab_project

Refer to the Terraform Registory for docs: gitlab_project.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewProjectContainerExpirationPolicyOutputReference_Override

func NewProjectContainerExpirationPolicyOutputReference_Override(p ProjectContainerExpirationPolicyOutputReference, terraformResource cdktf.IInterpolatingParent, terraformAttribute *string)

func NewProjectPushRulesOutputReference_Override

func NewProjectPushRulesOutputReference_Override(p ProjectPushRulesOutputReference, terraformResource cdktf.IInterpolatingParent, terraformAttribute *string)

func NewProject_Override

func NewProject_Override(p Project, scope constructs.Construct, id *string, config *ProjectConfig)

Create a new {@link https://www.terraform.io/docs/providers/gitlab/r/project gitlab_project} Resource.

func Project_IsConstruct

func Project_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`.

func Project_TfResourceType

func Project_TfResourceType() *string

Types

type Project

type Project interface {
	cdktf.TerraformResource
	AllowMergeOnSkippedPipeline() interface{}
	SetAllowMergeOnSkippedPipeline(val interface{})
	AllowMergeOnSkippedPipelineInput() interface{}
	AnalyticsAccessLevel() *string
	SetAnalyticsAccessLevel(val *string)
	AnalyticsAccessLevelInput() *string
	ApprovalsBeforeMerge() *float64
	SetApprovalsBeforeMerge(val *float64)
	ApprovalsBeforeMergeInput() *float64
	Archived() interface{}
	SetArchived(val interface{})
	ArchivedInput() interface{}
	ArchiveOnDestroy() interface{}
	SetArchiveOnDestroy(val interface{})
	ArchiveOnDestroyInput() interface{}
	AutoCancelPendingPipelines() *string
	SetAutoCancelPendingPipelines(val *string)
	AutoCancelPendingPipelinesInput() *string
	AutocloseReferencedIssues() interface{}
	SetAutocloseReferencedIssues(val interface{})
	AutocloseReferencedIssuesInput() interface{}
	AutoDevopsDeployStrategy() *string
	SetAutoDevopsDeployStrategy(val *string)
	AutoDevopsDeployStrategyInput() *string
	AutoDevopsEnabled() interface{}
	SetAutoDevopsEnabled(val interface{})
	AutoDevopsEnabledInput() interface{}
	BuildCoverageRegex() *string
	SetBuildCoverageRegex(val *string)
	BuildCoverageRegexInput() *string
	BuildGitStrategy() *string
	SetBuildGitStrategy(val *string)
	BuildGitStrategyInput() *string
	BuildsAccessLevel() *string
	SetBuildsAccessLevel(val *string)
	BuildsAccessLevelInput() *string
	BuildTimeout() *float64
	SetBuildTimeout(val *float64)
	BuildTimeoutInput() *float64
	// Experimental.
	CdktfStack() cdktf.TerraformStack
	CiConfigPath() *string
	SetCiConfigPath(val *string)
	CiConfigPathInput() *string
	CiDefaultGitDepth() *float64
	SetCiDefaultGitDepth(val *float64)
	CiDefaultGitDepthInput() *float64
	CiForwardDeploymentEnabled() interface{}
	SetCiForwardDeploymentEnabled(val interface{})
	CiForwardDeploymentEnabledInput() interface{}
	// Experimental.
	Connection() interface{}
	// Experimental.
	SetConnection(val interface{})
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	ContainerExpirationPolicy() ProjectContainerExpirationPolicyOutputReference
	ContainerExpirationPolicyInput() *ProjectContainerExpirationPolicy
	ContainerRegistryAccessLevel() *string
	SetContainerRegistryAccessLevel(val *string)
	ContainerRegistryAccessLevelInput() *string
	ContainerRegistryEnabled() interface{}
	SetContainerRegistryEnabled(val interface{})
	ContainerRegistryEnabledInput() interface{}
	// Experimental.
	Count() *float64
	// Experimental.
	SetCount(val *float64)
	DefaultBranch() *string
	SetDefaultBranch(val *string)
	DefaultBranchInput() *string
	// Experimental.
	DependsOn() *[]*string
	// Experimental.
	SetDependsOn(val *[]*string)
	Description() *string
	SetDescription(val *string)
	DescriptionInput() *string
	EmailsDisabled() interface{}
	SetEmailsDisabled(val interface{})
	EmailsDisabledInput() interface{}
	ExternalAuthorizationClassificationLabel() *string
	SetExternalAuthorizationClassificationLabel(val *string)
	ExternalAuthorizationClassificationLabelInput() *string
	// Experimental.
	ForEach() cdktf.ITerraformIterator
	// Experimental.
	SetForEach(val cdktf.ITerraformIterator)
	ForkingAccessLevel() *string
	SetForkingAccessLevel(val *string)
	ForkingAccessLevelInput() *string
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	GroupWithProjectTemplatesId() *float64
	SetGroupWithProjectTemplatesId(val *float64)
	GroupWithProjectTemplatesIdInput() *float64
	HttpUrlToRepo() *string
	Id() *string
	SetId(val *string)
	IdInput() *string
	ImportUrl() *string
	SetImportUrl(val *string)
	ImportUrlInput() *string
	InitializeWithReadme() interface{}
	SetInitializeWithReadme(val interface{})
	InitializeWithReadmeInput() interface{}
	IssuesAccessLevel() *string
	SetIssuesAccessLevel(val *string)
	IssuesAccessLevelInput() *string
	IssuesEnabled() interface{}
	SetIssuesEnabled(val interface{})
	IssuesEnabledInput() interface{}
	IssuesTemplate() *string
	SetIssuesTemplate(val *string)
	IssuesTemplateInput() *string
	LfsEnabled() interface{}
	SetLfsEnabled(val interface{})
	LfsEnabledInput() interface{}
	// Experimental.
	Lifecycle() *cdktf.TerraformResourceLifecycle
	// Experimental.
	SetLifecycle(val *cdktf.TerraformResourceLifecycle)
	MergeCommitTemplate() *string
	SetMergeCommitTemplate(val *string)
	MergeCommitTemplateInput() *string
	MergeMethod() *string
	SetMergeMethod(val *string)
	MergeMethodInput() *string
	MergePipelinesEnabled() interface{}
	SetMergePipelinesEnabled(val interface{})
	MergePipelinesEnabledInput() interface{}
	MergeRequestsAccessLevel() *string
	SetMergeRequestsAccessLevel(val *string)
	MergeRequestsAccessLevelInput() *string
	MergeRequestsEnabled() interface{}
	SetMergeRequestsEnabled(val interface{})
	MergeRequestsEnabledInput() interface{}
	MergeRequestsTemplate() *string
	SetMergeRequestsTemplate(val *string)
	MergeRequestsTemplateInput() *string
	MergeTrainsEnabled() interface{}
	SetMergeTrainsEnabled(val interface{})
	MergeTrainsEnabledInput() interface{}
	Mirror() interface{}
	SetMirror(val interface{})
	MirrorInput() interface{}
	MirrorOverwritesDivergedBranches() interface{}
	SetMirrorOverwritesDivergedBranches(val interface{})
	MirrorOverwritesDivergedBranchesInput() interface{}
	MirrorTriggerBuilds() interface{}
	SetMirrorTriggerBuilds(val interface{})
	MirrorTriggerBuildsInput() interface{}
	Name() *string
	SetName(val *string)
	NameInput() *string
	NamespaceId() *float64
	SetNamespaceId(val *float64)
	NamespaceIdInput() *float64
	// The tree node.
	Node() constructs.Node
	OnlyAllowMergeIfAllDiscussionsAreResolved() interface{}
	SetOnlyAllowMergeIfAllDiscussionsAreResolved(val interface{})
	OnlyAllowMergeIfAllDiscussionsAreResolvedInput() interface{}
	OnlyAllowMergeIfPipelineSucceeds() interface{}
	SetOnlyAllowMergeIfPipelineSucceeds(val interface{})
	OnlyAllowMergeIfPipelineSucceedsInput() interface{}
	OnlyMirrorProtectedBranches() interface{}
	SetOnlyMirrorProtectedBranches(val interface{})
	OnlyMirrorProtectedBranchesInput() interface{}
	OperationsAccessLevel() *string
	SetOperationsAccessLevel(val *string)
	OperationsAccessLevelInput() *string
	PackagesEnabled() interface{}
	SetPackagesEnabled(val interface{})
	PackagesEnabledInput() interface{}
	PagesAccessLevel() *string
	SetPagesAccessLevel(val *string)
	PagesAccessLevelInput() *string
	Path() *string
	SetPath(val *string)
	PathInput() *string
	PathWithNamespace() *string
	PipelinesEnabled() interface{}
	SetPipelinesEnabled(val interface{})
	PipelinesEnabledInput() interface{}
	PrintingMergeRequestLinkEnabled() interface{}
	SetPrintingMergeRequestLinkEnabled(val interface{})
	PrintingMergeRequestLinkEnabledInput() interface{}
	// Experimental.
	Provider() cdktf.TerraformProvider
	// Experimental.
	SetProvider(val cdktf.TerraformProvider)
	// Experimental.
	Provisioners() *[]interface{}
	// Experimental.
	SetProvisioners(val *[]interface{})
	PublicBuilds() interface{}
	SetPublicBuilds(val interface{})
	PublicBuildsInput() interface{}
	PushRules() ProjectPushRulesOutputReference
	PushRulesInput() *ProjectPushRules
	// Experimental.
	RawOverrides() interface{}
	RemoveSourceBranchAfterMerge() interface{}
	SetRemoveSourceBranchAfterMerge(val interface{})
	RemoveSourceBranchAfterMergeInput() interface{}
	RepositoryAccessLevel() *string
	SetRepositoryAccessLevel(val *string)
	RepositoryAccessLevelInput() *string
	RepositoryStorage() *string
	SetRepositoryStorage(val *string)
	RepositoryStorageInput() *string
	RequestAccessEnabled() interface{}
	SetRequestAccessEnabled(val interface{})
	RequestAccessEnabledInput() interface{}
	RequirementsAccessLevel() *string
	SetRequirementsAccessLevel(val *string)
	RequirementsAccessLevelInput() *string
	ResolveOutdatedDiffDiscussions() interface{}
	SetResolveOutdatedDiffDiscussions(val interface{})
	ResolveOutdatedDiffDiscussionsInput() interface{}
	RunnersToken() *string
	SecurityAndComplianceAccessLevel() *string
	SetSecurityAndComplianceAccessLevel(val *string)
	SecurityAndComplianceAccessLevelInput() *string
	SharedRunnersEnabled() interface{}
	SetSharedRunnersEnabled(val interface{})
	SharedRunnersEnabledInput() interface{}
	SkipWaitForDefaultBranchProtection() interface{}
	SetSkipWaitForDefaultBranchProtection(val interface{})
	SkipWaitForDefaultBranchProtectionInput() interface{}
	SnippetsAccessLevel() *string
	SetSnippetsAccessLevel(val *string)
	SnippetsAccessLevelInput() *string
	SnippetsEnabled() interface{}
	SetSnippetsEnabled(val interface{})
	SnippetsEnabledInput() interface{}
	SquashCommitTemplate() *string
	SetSquashCommitTemplate(val *string)
	SquashCommitTemplateInput() *string
	SquashOption() *string
	SetSquashOption(val *string)
	SquashOptionInput() *string
	SshUrlToRepo() *string
	Tags() *[]*string
	SetTags(val *[]*string)
	TagsInput() *[]*string
	TemplateName() *string
	SetTemplateName(val *string)
	TemplateNameInput() *string
	TemplateProjectId() *float64
	SetTemplateProjectId(val *float64)
	TemplateProjectIdInput() *float64
	// Experimental.
	TerraformGeneratorMetadata() *cdktf.TerraformProviderGeneratorMetadata
	// Experimental.
	TerraformMetaArguments() *map[string]interface{}
	// Experimental.
	TerraformResourceType() *string
	Topics() *[]*string
	SetTopics(val *[]*string)
	TopicsInput() *[]*string
	UseCustomTemplate() interface{}
	SetUseCustomTemplate(val interface{})
	UseCustomTemplateInput() interface{}
	VisibilityLevel() *string
	SetVisibilityLevel(val *string)
	VisibilityLevelInput() *string
	WebUrl() *string
	WikiAccessLevel() *string
	SetWikiAccessLevel(val *string)
	WikiAccessLevelInput() *string
	WikiEnabled() interface{}
	SetWikiEnabled(val interface{})
	WikiEnabledInput() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Experimental.
	GetAnyMapAttribute(terraformAttribute *string) *map[string]interface{}
	// Experimental.
	GetBooleanAttribute(terraformAttribute *string) cdktf.IResolvable
	// Experimental.
	GetBooleanMapAttribute(terraformAttribute *string) *map[string]*bool
	// Experimental.
	GetListAttribute(terraformAttribute *string) *[]*string
	// Experimental.
	GetNumberAttribute(terraformAttribute *string) *float64
	// Experimental.
	GetNumberListAttribute(terraformAttribute *string) *[]*float64
	// Experimental.
	GetNumberMapAttribute(terraformAttribute *string) *map[string]*float64
	// Experimental.
	GetStringAttribute(terraformAttribute *string) *string
	// Experimental.
	GetStringMapAttribute(terraformAttribute *string) *map[string]*string
	// Experimental.
	InterpolationForAttribute(terraformAttribute *string) cdktf.IResolvable
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	PutContainerExpirationPolicy(value *ProjectContainerExpirationPolicy)
	PutPushRules(value *ProjectPushRules)
	ResetAllowMergeOnSkippedPipeline()
	ResetAnalyticsAccessLevel()
	ResetApprovalsBeforeMerge()
	ResetArchived()
	ResetArchiveOnDestroy()
	ResetAutoCancelPendingPipelines()
	ResetAutocloseReferencedIssues()
	ResetAutoDevopsDeployStrategy()
	ResetAutoDevopsEnabled()
	ResetBuildCoverageRegex()
	ResetBuildGitStrategy()
	ResetBuildsAccessLevel()
	ResetBuildTimeout()
	ResetCiConfigPath()
	ResetCiDefaultGitDepth()
	ResetCiForwardDeploymentEnabled()
	ResetContainerExpirationPolicy()
	ResetContainerRegistryAccessLevel()
	ResetContainerRegistryEnabled()
	ResetDefaultBranch()
	ResetDescription()
	ResetEmailsDisabled()
	ResetExternalAuthorizationClassificationLabel()
	ResetForkingAccessLevel()
	ResetGroupWithProjectTemplatesId()
	ResetId()
	ResetImportUrl()
	ResetInitializeWithReadme()
	ResetIssuesAccessLevel()
	ResetIssuesEnabled()
	ResetIssuesTemplate()
	ResetLfsEnabled()
	ResetMergeCommitTemplate()
	ResetMergeMethod()
	ResetMergePipelinesEnabled()
	ResetMergeRequestsAccessLevel()
	ResetMergeRequestsEnabled()
	ResetMergeRequestsTemplate()
	ResetMergeTrainsEnabled()
	ResetMirror()
	ResetMirrorOverwritesDivergedBranches()
	ResetMirrorTriggerBuilds()
	ResetNamespaceId()
	ResetOnlyAllowMergeIfAllDiscussionsAreResolved()
	ResetOnlyAllowMergeIfPipelineSucceeds()
	ResetOnlyMirrorProtectedBranches()
	ResetOperationsAccessLevel()
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	ResetPackagesEnabled()
	ResetPagesAccessLevel()
	ResetPath()
	ResetPipelinesEnabled()
	ResetPrintingMergeRequestLinkEnabled()
	ResetPublicBuilds()
	ResetPushRules()
	ResetRemoveSourceBranchAfterMerge()
	ResetRepositoryAccessLevel()
	ResetRepositoryStorage()
	ResetRequestAccessEnabled()
	ResetRequirementsAccessLevel()
	ResetResolveOutdatedDiffDiscussions()
	ResetSecurityAndComplianceAccessLevel()
	ResetSharedRunnersEnabled()
	ResetSkipWaitForDefaultBranchProtection()
	ResetSnippetsAccessLevel()
	ResetSnippetsEnabled()
	ResetSquashCommitTemplate()
	ResetSquashOption()
	ResetTags()
	ResetTemplateName()
	ResetTemplateProjectId()
	ResetTopics()
	ResetUseCustomTemplate()
	ResetVisibilityLevel()
	ResetWikiAccessLevel()
	ResetWikiEnabled()
	SynthesizeAttributes() *map[string]interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Represents a {@link https://www.terraform.io/docs/providers/gitlab/r/project gitlab_project}.

func NewProject

func NewProject(scope constructs.Construct, id *string, config *ProjectConfig) Project

Create a new {@link https://www.terraform.io/docs/providers/gitlab/r/project gitlab_project} Resource.

type ProjectConfig

type ProjectConfig struct {
	// Experimental.
	Connection interface{} `field:"optional" json:"connection" yaml:"connection"`
	// Experimental.
	Count *float64 `field:"optional" json:"count" yaml:"count"`
	// Experimental.
	DependsOn *[]cdktf.ITerraformDependable `field:"optional" json:"dependsOn" yaml:"dependsOn"`
	// Experimental.
	ForEach cdktf.ITerraformIterator `field:"optional" json:"forEach" yaml:"forEach"`
	// Experimental.
	Lifecycle *cdktf.TerraformResourceLifecycle `field:"optional" json:"lifecycle" yaml:"lifecycle"`
	// Experimental.
	Provider cdktf.TerraformProvider `field:"optional" json:"provider" yaml:"provider"`
	// Experimental.
	Provisioners *[]interface{} `field:"optional" json:"provisioners" yaml:"provisioners"`
	// The name of the project.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#name Project#name}
	Name *string `field:"required" json:"name" yaml:"name"`
	// Set to true if you want to treat skipped pipelines as if they finished with success.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#allow_merge_on_skipped_pipeline Project#allow_merge_on_skipped_pipeline}
	AllowMergeOnSkippedPipeline interface{} `field:"optional" json:"allowMergeOnSkippedPipeline" yaml:"allowMergeOnSkippedPipeline"`
	// Set the analytics access level. Valid values are `disabled`, `private`, `enabled`.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#analytics_access_level Project#analytics_access_level}
	AnalyticsAccessLevel *string `field:"optional" json:"analyticsAccessLevel" yaml:"analyticsAccessLevel"`
	// Number of merge request approvals required for merging.
	//
	// Default is 0.
	// This field **does not** work well in combination with the `gitlab_project_approval_rule` 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_project_approval_rule` instead.
	//
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#approvals_before_merge Project#approvals_before_merge}
	ApprovalsBeforeMerge *float64 `field:"optional" json:"approvalsBeforeMerge" yaml:"approvalsBeforeMerge"`
	// Whether the project is in read-only mode (archived). Repositories can be archived/unarchived by toggling this parameter.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#archived Project#archived}
	Archived interface{} `field:"optional" json:"archived" yaml:"archived"`
	// Set to `true` to archive the project instead of deleting on destroy.
	//
	// If set to `true` it will entire omit the `DELETE` operation.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#archive_on_destroy Project#archive_on_destroy}
	ArchiveOnDestroy interface{} `field:"optional" json:"archiveOnDestroy" yaml:"archiveOnDestroy"`
	// Auto-cancel pending pipelines. This isn’t a boolean, but enabled/disabled.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#auto_cancel_pending_pipelines Project#auto_cancel_pending_pipelines}
	AutoCancelPendingPipelines *string `field:"optional" json:"autoCancelPendingPipelines" yaml:"autoCancelPendingPipelines"`
	// Set whether auto-closing referenced issues on default branch.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#autoclose_referenced_issues Project#autoclose_referenced_issues}
	AutocloseReferencedIssues interface{} `field:"optional" json:"autocloseReferencedIssues" yaml:"autocloseReferencedIssues"`
	// Auto Deploy strategy. Valid values are `continuous`, `manual`, `timed_incremental`.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#auto_devops_deploy_strategy Project#auto_devops_deploy_strategy}
	AutoDevopsDeployStrategy *string `field:"optional" json:"autoDevopsDeployStrategy" yaml:"autoDevopsDeployStrategy"`
	// Enable Auto DevOps for this project.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#auto_devops_enabled Project#auto_devops_enabled}
	AutoDevopsEnabled interface{} `field:"optional" json:"autoDevopsEnabled" yaml:"autoDevopsEnabled"`
	// Test coverage parsing for the project. This is deprecated feature in GitLab 15.0.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#build_coverage_regex Project#build_coverage_regex}
	BuildCoverageRegex *string `field:"optional" json:"buildCoverageRegex" yaml:"buildCoverageRegex"`
	// The Git strategy. Defaults to fetch.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#build_git_strategy Project#build_git_strategy}
	BuildGitStrategy *string `field:"optional" json:"buildGitStrategy" yaml:"buildGitStrategy"`
	// Set the builds access level. Valid values are `disabled`, `private`, `enabled`.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#builds_access_level Project#builds_access_level}
	BuildsAccessLevel *string `field:"optional" json:"buildsAccessLevel" yaml:"buildsAccessLevel"`
	// The maximum amount of time, in seconds, that a job can run.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#build_timeout Project#build_timeout}
	BuildTimeout *float64 `field:"optional" json:"buildTimeout" yaml:"buildTimeout"`
	// Custom Path to CI config file.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#ci_config_path Project#ci_config_path}
	CiConfigPath *string `field:"optional" json:"ciConfigPath" yaml:"ciConfigPath"`
	// Default number of revisions for shallow cloning.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#ci_default_git_depth Project#ci_default_git_depth}
	CiDefaultGitDepth *float64 `field:"optional" json:"ciDefaultGitDepth" yaml:"ciDefaultGitDepth"`
	// When a new deployment job starts, skip older deployment jobs that are still pending.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#ci_forward_deployment_enabled Project#ci_forward_deployment_enabled}
	CiForwardDeploymentEnabled interface{} `field:"optional" json:"ciForwardDeploymentEnabled" yaml:"ciForwardDeploymentEnabled"`
	// container_expiration_policy block.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#container_expiration_policy Project#container_expiration_policy}
	ContainerExpirationPolicy *ProjectContainerExpirationPolicy `field:"optional" json:"containerExpirationPolicy" yaml:"containerExpirationPolicy"`
	// Set visibility of container registry, for this project. Valid values are `disabled`, `private`, `enabled`.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#container_registry_access_level Project#container_registry_access_level}
	ContainerRegistryAccessLevel *string `field:"optional" json:"containerRegistryAccessLevel" yaml:"containerRegistryAccessLevel"`
	// Enable container registry for the project.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#container_registry_enabled Project#container_registry_enabled}
	ContainerRegistryEnabled interface{} `field:"optional" json:"containerRegistryEnabled" yaml:"containerRegistryEnabled"`
	// The default branch for the project.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#default_branch Project#default_branch}
	DefaultBranch *string `field:"optional" json:"defaultBranch" yaml:"defaultBranch"`
	// A description of the project.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#description Project#description}
	Description *string `field:"optional" json:"description" yaml:"description"`
	// Disable email notifications.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#emails_disabled Project#emails_disabled}
	EmailsDisabled interface{} `field:"optional" json:"emailsDisabled" yaml:"emailsDisabled"`
	// The classification label for the project.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#external_authorization_classification_label Project#external_authorization_classification_label}
	ExternalAuthorizationClassificationLabel *string `field:"optional" json:"externalAuthorizationClassificationLabel" yaml:"externalAuthorizationClassificationLabel"`
	// Set the forking access level. Valid values are `disabled`, `private`, `enabled`.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#forking_access_level Project#forking_access_level}
	ForkingAccessLevel *string `field:"optional" json:"forkingAccessLevel" yaml:"forkingAccessLevel"`
	// 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).
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#group_with_project_templates_id Project#group_with_project_templates_id}
	GroupWithProjectTemplatesId *float64 `field:"optional" json:"groupWithProjectTemplatesId" yaml:"groupWithProjectTemplatesId"`
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#id Project#id}.
	//
	// Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
	// If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
	Id *string `field:"optional" json:"id" yaml:"id"`
	// Git URL to a repository to be imported.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#import_url Project#import_url}
	ImportUrl *string `field:"optional" json:"importUrl" yaml:"importUrl"`
	// Create main branch with first commit containing a README.md file.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#initialize_with_readme Project#initialize_with_readme}
	InitializeWithReadme interface{} `field:"optional" json:"initializeWithReadme" yaml:"initializeWithReadme"`
	// Set the issues access level. Valid values are `disabled`, `private`, `enabled`.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#issues_access_level Project#issues_access_level}
	IssuesAccessLevel *string `field:"optional" json:"issuesAccessLevel" yaml:"issuesAccessLevel"`
	// Enable issue tracking for the project.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#issues_enabled Project#issues_enabled}
	IssuesEnabled interface{} `field:"optional" json:"issuesEnabled" yaml:"issuesEnabled"`
	// Sets the template for new issues in the project.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#issues_template Project#issues_template}
	IssuesTemplate *string `field:"optional" json:"issuesTemplate" yaml:"issuesTemplate"`
	// Enable LFS for the project.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#lfs_enabled Project#lfs_enabled}
	LfsEnabled interface{} `field:"optional" json:"lfsEnabled" yaml:"lfsEnabled"`
	// Template used to create merge commit message in merge requests. (Introduced in GitLab 14.5.).
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#merge_commit_template Project#merge_commit_template}
	MergeCommitTemplate *string `field:"optional" json:"mergeCommitTemplate" yaml:"mergeCommitTemplate"`
	// Set to `ff` to create fast-forward merges.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#merge_method Project#merge_method}
	MergeMethod *string `field:"optional" json:"mergeMethod" yaml:"mergeMethod"`
	// Enable or disable merge pipelines.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#merge_pipelines_enabled Project#merge_pipelines_enabled}
	MergePipelinesEnabled interface{} `field:"optional" json:"mergePipelinesEnabled" yaml:"mergePipelinesEnabled"`
	// Set the merge requests access level. Valid values are `disabled`, `private`, `enabled`.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#merge_requests_access_level Project#merge_requests_access_level}
	MergeRequestsAccessLevel *string `field:"optional" json:"mergeRequestsAccessLevel" yaml:"mergeRequestsAccessLevel"`
	// Enable merge requests for the project.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#merge_requests_enabled Project#merge_requests_enabled}
	MergeRequestsEnabled interface{} `field:"optional" json:"mergeRequestsEnabled" yaml:"mergeRequestsEnabled"`
	// Sets the template for new merge requests in the project.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#merge_requests_template Project#merge_requests_template}
	MergeRequestsTemplate *string `field:"optional" json:"mergeRequestsTemplate" yaml:"mergeRequestsTemplate"`
	// Enable or disable merge trains. Requires `merge_pipelines_enabled` to be set to `true` to take effect.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#merge_trains_enabled Project#merge_trains_enabled}
	MergeTrainsEnabled interface{} `field:"optional" json:"mergeTrainsEnabled" yaml:"mergeTrainsEnabled"`
	// Enable project pull mirror.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#mirror Project#mirror}
	Mirror interface{} `field:"optional" json:"mirror" yaml:"mirror"`
	// Enable overwrite diverged branches for a mirrored project.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#mirror_overwrites_diverged_branches Project#mirror_overwrites_diverged_branches}
	MirrorOverwritesDivergedBranches interface{} `field:"optional" json:"mirrorOverwritesDivergedBranches" yaml:"mirrorOverwritesDivergedBranches"`
	// Enable trigger builds on pushes for a mirrored project.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#mirror_trigger_builds Project#mirror_trigger_builds}
	MirrorTriggerBuilds interface{} `field:"optional" json:"mirrorTriggerBuilds" yaml:"mirrorTriggerBuilds"`
	// The namespace (group or user) of the project. Defaults to your user.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#namespace_id Project#namespace_id}
	NamespaceId *float64 `field:"optional" json:"namespaceId" yaml:"namespaceId"`
	// Set to true if you want allow merges only if all discussions are resolved.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#only_allow_merge_if_all_discussions_are_resolved Project#only_allow_merge_if_all_discussions_are_resolved}
	OnlyAllowMergeIfAllDiscussionsAreResolved interface{} `field:"optional" json:"onlyAllowMergeIfAllDiscussionsAreResolved" yaml:"onlyAllowMergeIfAllDiscussionsAreResolved"`
	// Set to true if you want allow merges only if a pipeline succeeds.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#only_allow_merge_if_pipeline_succeeds Project#only_allow_merge_if_pipeline_succeeds}
	OnlyAllowMergeIfPipelineSucceeds interface{} `field:"optional" json:"onlyAllowMergeIfPipelineSucceeds" yaml:"onlyAllowMergeIfPipelineSucceeds"`
	// Enable only mirror protected branches for a mirrored project.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#only_mirror_protected_branches Project#only_mirror_protected_branches}
	OnlyMirrorProtectedBranches interface{} `field:"optional" json:"onlyMirrorProtectedBranches" yaml:"onlyMirrorProtectedBranches"`
	// Set the operations access level. Valid values are `disabled`, `private`, `enabled`.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#operations_access_level Project#operations_access_level}
	OperationsAccessLevel *string `field:"optional" json:"operationsAccessLevel" yaml:"operationsAccessLevel"`
	// Enable packages repository for the project.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#packages_enabled Project#packages_enabled}
	PackagesEnabled interface{} `field:"optional" json:"packagesEnabled" yaml:"packagesEnabled"`
	// Enable pages access control.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#pages_access_level Project#pages_access_level}
	PagesAccessLevel *string `field:"optional" json:"pagesAccessLevel" yaml:"pagesAccessLevel"`
	// The path of the repository.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#path Project#path}
	Path *string `field:"optional" json:"path" yaml:"path"`
	// Enable pipelines for the project.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#pipelines_enabled Project#pipelines_enabled}
	PipelinesEnabled interface{} `field:"optional" json:"pipelinesEnabled" yaml:"pipelinesEnabled"`
	// Show link to create/view merge request when pushing from the command line.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#printing_merge_request_link_enabled Project#printing_merge_request_link_enabled}
	PrintingMergeRequestLinkEnabled interface{} `field:"optional" json:"printingMergeRequestLinkEnabled" yaml:"printingMergeRequestLinkEnabled"`
	// If true, jobs can be viewed by non-project members.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#public_builds Project#public_builds}
	PublicBuilds interface{} `field:"optional" json:"publicBuilds" yaml:"publicBuilds"`
	// push_rules block.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#push_rules Project#push_rules}
	PushRules *ProjectPushRules `field:"optional" json:"pushRules" yaml:"pushRules"`
	// Enable `Delete source branch` option by default for all new merge requests.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#remove_source_branch_after_merge Project#remove_source_branch_after_merge}
	RemoveSourceBranchAfterMerge interface{} `field:"optional" json:"removeSourceBranchAfterMerge" yaml:"removeSourceBranchAfterMerge"`
	// Set the repository access level. Valid values are `disabled`, `private`, `enabled`.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#repository_access_level Project#repository_access_level}
	RepositoryAccessLevel *string `field:"optional" json:"repositoryAccessLevel" yaml:"repositoryAccessLevel"`
	// Which storage shard the repository is on. (administrator only).
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#repository_storage Project#repository_storage}
	RepositoryStorage *string `field:"optional" json:"repositoryStorage" yaml:"repositoryStorage"`
	// Allow users to request member access.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#request_access_enabled Project#request_access_enabled}
	RequestAccessEnabled interface{} `field:"optional" json:"requestAccessEnabled" yaml:"requestAccessEnabled"`
	// Set the requirements access level. Valid values are `disabled`, `private`, `enabled`.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#requirements_access_level Project#requirements_access_level}
	RequirementsAccessLevel *string `field:"optional" json:"requirementsAccessLevel" yaml:"requirementsAccessLevel"`
	// Automatically resolve merge request diffs discussions on lines changed with a push.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#resolve_outdated_diff_discussions Project#resolve_outdated_diff_discussions}
	ResolveOutdatedDiffDiscussions interface{} `field:"optional" json:"resolveOutdatedDiffDiscussions" yaml:"resolveOutdatedDiffDiscussions"`
	// Set the security and compliance access level. Valid values are `disabled`, `private`, `enabled`.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#security_and_compliance_access_level Project#security_and_compliance_access_level}
	SecurityAndComplianceAccessLevel *string `field:"optional" json:"securityAndComplianceAccessLevel" yaml:"securityAndComplianceAccessLevel"`
	// Enable shared runners for this project.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#shared_runners_enabled Project#shared_runners_enabled}
	SharedRunnersEnabled interface{} `field:"optional" json:"sharedRunnersEnabled" yaml:"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.
	//
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#skip_wait_for_default_branch_protection Project#skip_wait_for_default_branch_protection}
	SkipWaitForDefaultBranchProtection interface{} `field:"optional" json:"skipWaitForDefaultBranchProtection" yaml:"skipWaitForDefaultBranchProtection"`
	// Set the snippets access level. Valid values are `disabled`, `private`, `enabled`.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#snippets_access_level Project#snippets_access_level}
	SnippetsAccessLevel *string `field:"optional" json:"snippetsAccessLevel" yaml:"snippetsAccessLevel"`
	// Enable snippets for the project.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#snippets_enabled Project#snippets_enabled}
	SnippetsEnabled interface{} `field:"optional" json:"snippetsEnabled" yaml:"snippetsEnabled"`
	// Template used to create squash commit message in merge requests. (Introduced in GitLab 14.6.).
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#squash_commit_template Project#squash_commit_template}
	SquashCommitTemplate *string `field:"optional" json:"squashCommitTemplate" yaml:"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]
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#squash_option Project#squash_option}
	SquashOption *string `field:"optional" json:"squashOption" yaml:"squashOption"`
	// The list of tags for a project;
	//
	// put array of tags, that should be finally assigned to a project. Use topics instead.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#tags Project#tags}
	Tags *[]*string `field:"optional" json:"tags" yaml:"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`.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#template_name Project#template_name}
	TemplateName *string `field:"optional" json:"templateName" yaml:"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_group_project_file_template` 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.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#template_project_id Project#template_project_id}
	TemplateProjectId *float64 `field:"optional" json:"templateProjectId" yaml:"templateProjectId"`
	// The list of topics for the project.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#topics Project#topics}
	Topics *[]*string `field:"optional" json:"topics" yaml:"topics"`
	// Use either custom instance or group (with group_with_project_templates_id) project template (enterprise edition).
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#use_custom_template Project#use_custom_template}
	UseCustomTemplate interface{} `field:"optional" json:"useCustomTemplate" yaml:"useCustomTemplate"`
	// Set to `public` to create a public project.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#visibility_level Project#visibility_level}
	VisibilityLevel *string `field:"optional" json:"visibilityLevel" yaml:"visibilityLevel"`
	// Set the wiki access level. Valid values are `disabled`, `private`, `enabled`.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#wiki_access_level Project#wiki_access_level}
	WikiAccessLevel *string `field:"optional" json:"wikiAccessLevel" yaml:"wikiAccessLevel"`
	// Enable wiki for the project.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#wiki_enabled Project#wiki_enabled}
	WikiEnabled interface{} `field:"optional" json:"wikiEnabled" yaml:"wikiEnabled"`
}

type ProjectContainerExpirationPolicy

type ProjectContainerExpirationPolicy struct {
	// The cadence of the policy. Valid values are: `1d`, `7d`, `14d`, `1month`, `3month`.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#cadence Project#cadence}
	Cadence *string `field:"optional" json:"cadence" yaml:"cadence"`
	// If true, the policy is enabled.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#enabled Project#enabled}
	Enabled interface{} `field:"optional" json:"enabled" yaml:"enabled"`
	// The number of images to keep.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#keep_n Project#keep_n}
	KeepN *float64 `field:"optional" json:"keepN" yaml:"keepN"`
	// The regular expression to match image names to delete.
	//
	// **Note**: the upstream API has some inconsistencies with the `name_regex` field here. It's basically unusable at the moment.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#name_regex_delete Project#name_regex_delete}
	NameRegexDelete *string `field:"optional" json:"nameRegexDelete" yaml:"nameRegexDelete"`
	// The regular expression to match image names to keep.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#name_regex_keep Project#name_regex_keep}
	NameRegexKeep *string `field:"optional" json:"nameRegexKeep" yaml:"nameRegexKeep"`
	// The number of days to keep images.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#older_than Project#older_than}
	OlderThan *string `field:"optional" json:"olderThan" yaml:"olderThan"`
}

type ProjectContainerExpirationPolicyOutputReference

type ProjectContainerExpirationPolicyOutputReference interface {
	cdktf.ComplexObject
	Cadence() *string
	SetCadence(val *string)
	CadenceInput() *string
	// the index of the complex object in a list.
	// Experimental.
	ComplexObjectIndex() interface{}
	// Experimental.
	SetComplexObjectIndex(val interface{})
	// set to true if this item is from inside a set and needs tolist() for accessing it set to "0" for single list items.
	// Experimental.
	ComplexObjectIsFromSet() *bool
	// Experimental.
	SetComplexObjectIsFromSet(val *bool)
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
	Enabled() interface{}
	SetEnabled(val interface{})
	EnabledInput() interface{}
	// Experimental.
	Fqn() *string
	InternalValue() *ProjectContainerExpirationPolicy
	SetInternalValue(val *ProjectContainerExpirationPolicy)
	KeepN() *float64
	SetKeepN(val *float64)
	KeepNInput() *float64
	NameRegexDelete() *string
	SetNameRegexDelete(val *string)
	NameRegexDeleteInput() *string
	NameRegexKeep() *string
	SetNameRegexKeep(val *string)
	NameRegexKeepInput() *string
	NextRunAt() *string
	OlderThan() *string
	SetOlderThan(val *string)
	OlderThanInput() *string
	// Experimental.
	TerraformAttribute() *string
	// Experimental.
	SetTerraformAttribute(val *string)
	// Experimental.
	TerraformResource() cdktf.IInterpolatingParent
	// Experimental.
	SetTerraformResource(val cdktf.IInterpolatingParent)
	// Experimental.
	ComputeFqn() *string
	// Experimental.
	GetAnyMapAttribute(terraformAttribute *string) *map[string]interface{}
	// Experimental.
	GetBooleanAttribute(terraformAttribute *string) cdktf.IResolvable
	// Experimental.
	GetBooleanMapAttribute(terraformAttribute *string) *map[string]*bool
	// Experimental.
	GetListAttribute(terraformAttribute *string) *[]*string
	// Experimental.
	GetNumberAttribute(terraformAttribute *string) *float64
	// Experimental.
	GetNumberListAttribute(terraformAttribute *string) *[]*float64
	// Experimental.
	GetNumberMapAttribute(terraformAttribute *string) *map[string]*float64
	// Experimental.
	GetStringAttribute(terraformAttribute *string) *string
	// Experimental.
	GetStringMapAttribute(terraformAttribute *string) *map[string]*string
	// Experimental.
	InterpolationAsList() cdktf.IResolvable
	// Experimental.
	InterpolationForAttribute(property *string) cdktf.IResolvable
	ResetCadence()
	ResetEnabled()
	ResetKeepN()
	ResetNameRegexDelete()
	ResetNameRegexKeep()
	ResetOlderThan()
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(_context cdktf.IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
}

func NewProjectContainerExpirationPolicyOutputReference

func NewProjectContainerExpirationPolicyOutputReference(terraformResource cdktf.IInterpolatingParent, terraformAttribute *string) ProjectContainerExpirationPolicyOutputReference

type ProjectPushRules

type ProjectPushRules struct {
	// All commit author emails must match this regex, e.g. `@my-company.com$`.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#author_email_regex Project#author_email_regex}
	AuthorEmailRegex *string `field:"optional" json:"authorEmailRegex" yaml:"authorEmailRegex"`
	// All branch names must match this regex, e.g. `(feature|hotfix)\/*`.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#branch_name_regex Project#branch_name_regex}
	BranchNameRegex *string `field:"optional" json:"branchNameRegex" yaml:"branchNameRegex"`
	// Users can only push commits to this repository that were committed with one of their own verified emails.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#commit_committer_check Project#commit_committer_check}
	CommitCommitterCheck interface{} `field:"optional" json:"commitCommitterCheck" yaml:"commitCommitterCheck"`
	// No commit message is allowed to match this regex, for example `ssh\:\/\/`.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#commit_message_negative_regex Project#commit_message_negative_regex}
	CommitMessageNegativeRegex *string `field:"optional" json:"commitMessageNegativeRegex" yaml:"commitMessageNegativeRegex"`
	// All commit messages must match this regex, e.g. `Fixed \d+\..*`.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#commit_message_regex Project#commit_message_regex}
	CommitMessageRegex *string `field:"optional" json:"commitMessageRegex" yaml:"commitMessageRegex"`
	// Deny deleting a tag.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#deny_delete_tag Project#deny_delete_tag}
	DenyDeleteTag interface{} `field:"optional" json:"denyDeleteTag" yaml:"denyDeleteTag"`
	// All commited filenames must not match this regex, e.g. `(jar|exe)$`.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#file_name_regex Project#file_name_regex}
	FileNameRegex *string `field:"optional" json:"fileNameRegex" yaml:"fileNameRegex"`
	// Maximum file size (MB).
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#max_file_size Project#max_file_size}
	MaxFileSize *float64 `field:"optional" json:"maxFileSize" yaml:"maxFileSize"`
	// Restrict commits by author (email) to existing GitLab users.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#member_check Project#member_check}
	MemberCheck interface{} `field:"optional" json:"memberCheck" yaml:"memberCheck"`
	// GitLab will reject any files that are likely to contain secrets.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#prevent_secrets Project#prevent_secrets}
	PreventSecrets interface{} `field:"optional" json:"preventSecrets" yaml:"preventSecrets"`
	// Reject commit when it’s not signed through GPG.
	//
	// Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/gitlab/r/project#reject_unsigned_commits Project#reject_unsigned_commits}
	RejectUnsignedCommits interface{} `field:"optional" json:"rejectUnsignedCommits" yaml:"rejectUnsignedCommits"`
}

type ProjectPushRulesOutputReference

type ProjectPushRulesOutputReference interface {
	cdktf.ComplexObject
	AuthorEmailRegex() *string
	SetAuthorEmailRegex(val *string)
	AuthorEmailRegexInput() *string
	BranchNameRegex() *string
	SetBranchNameRegex(val *string)
	BranchNameRegexInput() *string
	CommitCommitterCheck() interface{}
	SetCommitCommitterCheck(val interface{})
	CommitCommitterCheckInput() interface{}
	CommitMessageNegativeRegex() *string
	SetCommitMessageNegativeRegex(val *string)
	CommitMessageNegativeRegexInput() *string
	CommitMessageRegex() *string
	SetCommitMessageRegex(val *string)
	CommitMessageRegexInput() *string
	// the index of the complex object in a list.
	// Experimental.
	ComplexObjectIndex() interface{}
	// Experimental.
	SetComplexObjectIndex(val interface{})
	// set to true if this item is from inside a set and needs tolist() for accessing it set to "0" for single list items.
	// Experimental.
	ComplexObjectIsFromSet() *bool
	// Experimental.
	SetComplexObjectIsFromSet(val *bool)
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
	DenyDeleteTag() interface{}
	SetDenyDeleteTag(val interface{})
	DenyDeleteTagInput() interface{}
	FileNameRegex() *string
	SetFileNameRegex(val *string)
	FileNameRegexInput() *string
	// Experimental.
	Fqn() *string
	InternalValue() *ProjectPushRules
	SetInternalValue(val *ProjectPushRules)
	MaxFileSize() *float64
	SetMaxFileSize(val *float64)
	MaxFileSizeInput() *float64
	MemberCheck() interface{}
	SetMemberCheck(val interface{})
	MemberCheckInput() interface{}
	PreventSecrets() interface{}
	SetPreventSecrets(val interface{})
	PreventSecretsInput() interface{}
	RejectUnsignedCommits() interface{}
	SetRejectUnsignedCommits(val interface{})
	RejectUnsignedCommitsInput() interface{}
	// Experimental.
	TerraformAttribute() *string
	// Experimental.
	SetTerraformAttribute(val *string)
	// Experimental.
	TerraformResource() cdktf.IInterpolatingParent
	// Experimental.
	SetTerraformResource(val cdktf.IInterpolatingParent)
	// Experimental.
	ComputeFqn() *string
	// Experimental.
	GetAnyMapAttribute(terraformAttribute *string) *map[string]interface{}
	// Experimental.
	GetBooleanAttribute(terraformAttribute *string) cdktf.IResolvable
	// Experimental.
	GetBooleanMapAttribute(terraformAttribute *string) *map[string]*bool
	// Experimental.
	GetListAttribute(terraformAttribute *string) *[]*string
	// Experimental.
	GetNumberAttribute(terraformAttribute *string) *float64
	// Experimental.
	GetNumberListAttribute(terraformAttribute *string) *[]*float64
	// Experimental.
	GetNumberMapAttribute(terraformAttribute *string) *map[string]*float64
	// Experimental.
	GetStringAttribute(terraformAttribute *string) *string
	// Experimental.
	GetStringMapAttribute(terraformAttribute *string) *map[string]*string
	// Experimental.
	InterpolationAsList() cdktf.IResolvable
	// Experimental.
	InterpolationForAttribute(property *string) cdktf.IResolvable
	ResetAuthorEmailRegex()
	ResetBranchNameRegex()
	ResetCommitCommitterCheck()
	ResetCommitMessageNegativeRegex()
	ResetCommitMessageRegex()
	ResetDenyDeleteTag()
	ResetFileNameRegex()
	ResetMaxFileSize()
	ResetMemberCheck()
	ResetPreventSecrets()
	ResetRejectUnsignedCommits()
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(_context cdktf.IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
}

func NewProjectPushRulesOutputReference

func NewProjectPushRulesOutputReference(terraformResource cdktf.IInterpolatingParent, terraformAttribute *string) ProjectPushRulesOutputReference

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL