com.pulumi.gitlab.kotlin.MemberRoleArgs.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pulumi-gitlab-kotlin Show documentation
Show all versions of pulumi-gitlab-kotlin Show documentation
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
The newest version!
@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.MemberRoleArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
* The `gitlab.MemberRole` resource allows to manage the lifecycle of a custom member role.
* Custom roles allow an organization to create user roles with the precise privileges and permissions required for that organization’s needs.
* > This resource requires an Ultimate license.
* > Most custom roles are considered billable users that use a seat. [Custom roles billing and seat usage](https://docs.gitlab.com/ee/user/custom_roles.html#billing-and-seat-usage)
* > There can be only 10 custom roles on your instance or namespace. See [issue 450929](https://gitlab.com/gitlab-org/gitlab/-/issues/450929) for more details.
* **Upstream API**: [GitLab GraphQL API docs](https://docs.gitlab.com/ee/api/graphql/reference/#mutationmemberrolecreate)
* ## Import
* Starting in Terraform v1.5.0 you can use an import block to import `gitlab_member_role`. For example:
* terraform
* import {
* to = gitlab_member_role.example
* id = "see CLI command below for ID"
* }
* Import using the CLI is supported using the following syntax:
* GitLab member role can be imported using the id made up of `gid://gitlab/MemberRole/` e.g.
* ```sh
* $ pulumi import gitlab:index/memberRole:MemberRole example 'gid://gitlab/MemberRole/123'
* ```
* @property baseAccessLevel The base access level for the custom role. Valid values are: `DEVELOPER`, `GUEST`, `MAINTAINER`, `MINIMAL_ACCESS`, `OWNER`, `REPORTER`
* @property description Description for the member role.
* @property enabledPermissions All permissions enabled for the custom role. Valid values are: `ADMIN_CICD_VARIABLES`, `ADMIN_COMPLIANCE_FRAMEWORK`, `ADMIN_GROUP_MEMBER`, `ADMIN_INTEGRATIONS`, `ADMIN_MERGE_REQUEST`, `ADMIN_PUSH_RULES`, `ADMIN_RUNNERS`, `ADMIN_TERRAFORM_STATE`, `ADMIN_VULNERABILITY`, `ADMIN_WEB_HOOK`, `ARCHIVE_PROJECT`, `MANAGE_DEPLOY_TOKENS`, `MANAGE_GROUP_ACCESS_TOKENS`, `MANAGE_MERGE_REQUEST_SETTINGS`, `MANAGE_PROJECT_ACCESS_TOKENS`, `MANAGE_SECURITY_POLICY_LINK`, `READ_CODE`, `READ_CRM_CONTACT`, `READ_DEPENDENCY`, `READ_RUNNERS`, `READ_VULNERABILITY`, `REMOVE_GROUP`, `REMOVE_PROJECT`
* @property groupPath Full path of the namespace to create the member role in. **Required for SAAS** **Not allowed for self-managed**
* @property name Name for the member role.
*/
public data class MemberRoleArgs(
public val baseAccessLevel: Output? = null,
public val description: Output? = null,
public val enabledPermissions: Output>? = null,
public val groupPath: Output? = null,
public val name: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.gitlab.MemberRoleArgs =
com.pulumi.gitlab.MemberRoleArgs.builder()
.baseAccessLevel(baseAccessLevel?.applyValue({ args0 -> args0 }))
.description(description?.applyValue({ args0 -> args0 }))
.enabledPermissions(enabledPermissions?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.groupPath(groupPath?.applyValue({ args0 -> args0 }))
.name(name?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [MemberRoleArgs].
*/
@PulumiTagMarker
public class MemberRoleArgsBuilder internal constructor() {
private var baseAccessLevel: Output? = null
private var description: Output? = null
private var enabledPermissions: Output>? = null
private var groupPath: Output? = null
private var name: Output? = null
/**
* @param value The base access level for the custom role. Valid values are: `DEVELOPER`, `GUEST`, `MAINTAINER`, `MINIMAL_ACCESS`, `OWNER`, `REPORTER`
*/
@JvmName("qrihffuurwqqvgeb")
public suspend fun baseAccessLevel(`value`: Output) {
this.baseAccessLevel = value
}
/**
* @param value Description for the member role.
*/
@JvmName("wysbtdvmguaimgvh")
public suspend fun description(`value`: Output) {
this.description = value
}
/**
* @param value All permissions enabled for the custom role. Valid values are: `ADMIN_CICD_VARIABLES`, `ADMIN_COMPLIANCE_FRAMEWORK`, `ADMIN_GROUP_MEMBER`, `ADMIN_INTEGRATIONS`, `ADMIN_MERGE_REQUEST`, `ADMIN_PUSH_RULES`, `ADMIN_RUNNERS`, `ADMIN_TERRAFORM_STATE`, `ADMIN_VULNERABILITY`, `ADMIN_WEB_HOOK`, `ARCHIVE_PROJECT`, `MANAGE_DEPLOY_TOKENS`, `MANAGE_GROUP_ACCESS_TOKENS`, `MANAGE_MERGE_REQUEST_SETTINGS`, `MANAGE_PROJECT_ACCESS_TOKENS`, `MANAGE_SECURITY_POLICY_LINK`, `READ_CODE`, `READ_CRM_CONTACT`, `READ_DEPENDENCY`, `READ_RUNNERS`, `READ_VULNERABILITY`, `REMOVE_GROUP`, `REMOVE_PROJECT`
*/
@JvmName("hlnlsprrfilrydpq")
public suspend fun enabledPermissions(`value`: Output>) {
this.enabledPermissions = value
}
@JvmName("unjrrtmnyjgihoic")
public suspend fun enabledPermissions(vararg values: Output) {
this.enabledPermissions = Output.all(values.asList())
}
/**
* @param values All permissions enabled for the custom role. Valid values are: `ADMIN_CICD_VARIABLES`, `ADMIN_COMPLIANCE_FRAMEWORK`, `ADMIN_GROUP_MEMBER`, `ADMIN_INTEGRATIONS`, `ADMIN_MERGE_REQUEST`, `ADMIN_PUSH_RULES`, `ADMIN_RUNNERS`, `ADMIN_TERRAFORM_STATE`, `ADMIN_VULNERABILITY`, `ADMIN_WEB_HOOK`, `ARCHIVE_PROJECT`, `MANAGE_DEPLOY_TOKENS`, `MANAGE_GROUP_ACCESS_TOKENS`, `MANAGE_MERGE_REQUEST_SETTINGS`, `MANAGE_PROJECT_ACCESS_TOKENS`, `MANAGE_SECURITY_POLICY_LINK`, `READ_CODE`, `READ_CRM_CONTACT`, `READ_DEPENDENCY`, `READ_RUNNERS`, `READ_VULNERABILITY`, `REMOVE_GROUP`, `REMOVE_PROJECT`
*/
@JvmName("himvqsnqsoqsblls")
public suspend fun enabledPermissions(values: List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy