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.ProjectProtectedEnvironmentArgs.builder
import com.pulumi.gitlab.kotlin.inputs.ProjectProtectedEnvironmentApprovalRuleArgs
import com.pulumi.gitlab.kotlin.inputs.ProjectProtectedEnvironmentApprovalRuleArgsBuilder
import com.pulumi.gitlab.kotlin.inputs.ProjectProtectedEnvironmentDeployAccessLevelArgs
import com.pulumi.gitlab.kotlin.inputs.ProjectProtectedEnvironmentDeployAccessLevelArgsBuilder
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.ProjectProtectedEnvironment` resource allows to manage the lifecycle of a protected environment in a project.
* > In order to use a user or group in the `deploy_access_levels` configuration,
* you need to make sure that users have access to the project and groups must have this project shared.
* You may use the `gitlab.ProjectMembership` and `gitlab_project_shared_group` resources to achieve this.
* Unfortunately, the GitLab API does not complain about users and groups without access to the project and just ignores those.
* In case this happens you will get perpetual state diffs.
* **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/ee/api/protected_environments.html)
* ## Import
* GitLab protected environments can be imported using an id made up of `projectId:environmentName`, e.g.
* ```sh
* $ pulumi import gitlab:index/projectProtectedEnvironment:ProjectProtectedEnvironment 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 name of the environment.
* @property project The ID or full path of the project which the protected environment is created against.
*/
public data class ProjectProtectedEnvironmentArgs(
public val approvalRules: Output>? = null,
public val deployAccessLevels: Output>? =
null,
public val environment: Output? = null,
public val project: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.gitlab.ProjectProtectedEnvironmentArgs =
com.pulumi.gitlab.ProjectProtectedEnvironmentArgs.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 }))
.project(project?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [ProjectProtectedEnvironmentArgs].
*/
@PulumiTagMarker
public class ProjectProtectedEnvironmentArgsBuilder internal constructor() {
private var approvalRules: Output>? = null
private var deployAccessLevels: Output>? =
null
private var environment: Output? = null
private var project: 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("lxnqvldywhplirwg")
public suspend fun approvalRules(`value`: Output>) {
this.approvalRules = value
}
@JvmName("iedtgoufpejqicbh")
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("ydbynfcxgcrynofi")
public suspend fun approvalRules(values: List