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.
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.gitlab.kotlin
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gitlab.GroupProtectedEnvironmentArgs.builder
import com.pulumi.gitlab.kotlin.inputs.GroupProtectedEnvironmentApprovalRuleArgs
import com.pulumi.gitlab.kotlin.inputs.GroupProtectedEnvironmentApprovalRuleArgsBuilder
import com.pulumi.gitlab.kotlin.inputs.GroupProtectedEnvironmentDeployAccessLevelArgs
import com.pulumi.gitlab.kotlin.inputs.GroupProtectedEnvironmentDeployAccessLevelArgsBuilder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
* The `gitlab.GroupProtectedEnvironment` resource allows to manage the lifecycle of a protected environment in a group.
* > In order to use a user_id in the `deploy_access_levels` configuration,
* you need to make sure that users have access to the group with Maintainer role or higher.
* In order to use a group_id in the `deploy_access_levels` configuration,
* the group_id must be a sub-group under the given group.
* **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/ee/api/group_protected_environments.html)
* ## Import
* Starting in Terraform v1.5.0 you can use an import block to import `gitlab_group_protected_environment`. For example:
* terraform
* import {
* to = gitlab_group_protected_environment.example
* id = "see CLI command below for ID"
* }
* Import using the CLI is supported using the following syntax:
* GitLab group protected environments can be imported using an id made up of `groupId:environmentName`, e.g.
* ```sh
* $ pulumi import gitlab:index/groupProtectedEnvironment:GroupProtectedEnvironment bar 123:production
* ```
* @property approvalRules Array of approval rules to deploy, with each described by a hash. Elements in the `approval_rules` should be one of `user_id`, `group_id` or `access_level`.
* @property deployAccessLevels Array of access levels allowed to deploy, with each described by a hash. Elements in the `deploy_access_levels` should be one of `user_id`, `group_id` or `access_level`.
* @property environment The deployment tier of the environment. Valid values are `production`, `staging`, `testing`, `development`, `other`.
* @property group The ID or full path of the group which the protected environment is created against.
*/
public data class GroupProtectedEnvironmentArgs(
public val approvalRules: Output>? = null,
public val deployAccessLevels: Output>? =
null,
public val environment: Output? = null,
public val group: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.gitlab.GroupProtectedEnvironmentArgs =
com.pulumi.gitlab.GroupProtectedEnvironmentArgs.builder()
.approvalRules(
approvalRules?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.deployAccessLevels(
deployAccessLevels?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 -> args0.toJava() })
})
}),
)
.environment(environment?.applyValue({ args0 -> args0 }))
.group(group?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [GroupProtectedEnvironmentArgs].
*/
@PulumiTagMarker
public class GroupProtectedEnvironmentArgsBuilder internal constructor() {
private var approvalRules: Output>? = null
private var deployAccessLevels: Output>? =
null
private var environment: Output? = null
private var group: Output? = null
/**
* @param value Array of approval rules to deploy, with each described by a hash. Elements in the `approval_rules` should be one of `user_id`, `group_id` or `access_level`.
*/
@JvmName("pbnfjdmuxoqbsxbx")
public suspend fun approvalRules(`value`: Output>) {
this.approvalRules = value
}
@JvmName("icxcgwioihikwbrb")
public suspend fun approvalRules(vararg values: Output) {
this.approvalRules = Output.all(values.asList())
}
/**
* @param values Array of approval rules to deploy, with each described by a hash. Elements in the `approval_rules` should be one of `user_id`, `group_id` or `access_level`.
*/
@JvmName("pyvxjiexpvnyrisu")
public suspend fun approvalRules(values: List