com.pulumi.gitlab.kotlin.PersonalAccessTokenArgs.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.PersonalAccessTokenArgs.builder
import com.pulumi.gitlab.kotlin.inputs.PersonalAccessTokenRotationConfigurationArgs
import com.pulumi.gitlab.kotlin.inputs.PersonalAccessTokenRotationConfigurationArgsBuilder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
* The `gitlab.PersonalAccessToken` resource allows to manage the lifecycle of a personal access token.
* > This resource requires administration privileges.
* > Use of the `timestamp()` function with expires_at will cause the resource to be re-created with every apply, it's recommended to use `plantimestamp()` or a static value instead.
* > Observability scopes are in beta and may not work on all instances. See more details in [the documentation](https://docs.gitlab.com/ee/operations/tracing.html)
* > Use `rotation_configuration` to automatically rotate tokens instead of using `timestamp()` as timestamp will cause changes with every plan. `pulumi up` must still be run to rotate the token.
* > Due to [Automatic reuse detection](https://docs.gitlab.com/ee/api/personal_access_tokens.html#automatic-reuse-detection) it's possible that a new Personal Access Token will immediately be revoked. Check if an old process using the old token is running if this happens.
* **Upstream API**: [GitLab API docs](https://docs.gitlab.com/ee/api/personal_access_tokens.html)
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gitlab from "@pulumi/gitlab";
* const example = new gitlab.PersonalAccessToken("example", {
* userId: 25,
* name: "Example personal access token",
* expiresAt: "2020-03-14",
* scopes: ["api"],
* });
* const exampleProjectVariable = new gitlab.ProjectVariable("example", {
* project: exampleGitlabProject.id,
* key: "pat",
* value: example.token,
* });
* ```
* ```python
* import pulumi
* import pulumi_gitlab as gitlab
* example = gitlab.PersonalAccessToken("example",
* user_id=25,
* name="Example personal access token",
* expires_at="2020-03-14",
* scopes=["api"])
* example_project_variable = gitlab.ProjectVariable("example",
* project=example_gitlab_project["id"],
* key="pat",
* value=example.token)
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using GitLab = Pulumi.GitLab;
* return await Deployment.RunAsync(() =>
* {
* var example = new GitLab.PersonalAccessToken("example", new()
* {
* UserId = 25,
* Name = "Example personal access token",
* ExpiresAt = "2020-03-14",
* Scopes = new[]
* {
* "api",
* },
* });
* var exampleProjectVariable = new GitLab.ProjectVariable("example", new()
* {
* Project = exampleGitlabProject.Id,
* Key = "pat",
* Value = example.Token,
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-gitlab/sdk/v8/go/gitlab"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* example, err := gitlab.NewPersonalAccessToken(ctx, "example", &gitlab.PersonalAccessTokenArgs{
* UserId: pulumi.Int(25),
* Name: pulumi.String("Example personal access token"),
* ExpiresAt: pulumi.String("2020-03-14"),
* Scopes: pulumi.StringArray{
* pulumi.String("api"),
* },
* })
* if err != nil {
* return err
* }
* _, err = gitlab.NewProjectVariable(ctx, "example", &gitlab.ProjectVariableArgs{
* Project: pulumi.Any(exampleGitlabProject.Id),
* Key: pulumi.String("pat"),
* Value: example.Token,
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.gitlab.PersonalAccessToken;
* import com.pulumi.gitlab.PersonalAccessTokenArgs;
* import com.pulumi.gitlab.ProjectVariable;
* import com.pulumi.gitlab.ProjectVariableArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }
* public static void stack(Context ctx) {
* var example = new PersonalAccessToken("example", PersonalAccessTokenArgs.builder()
* .userId("25")
* .name("Example personal access token")
* .expiresAt("2020-03-14")
* .scopes("api")
* .build());
* var exampleProjectVariable = new ProjectVariable("exampleProjectVariable", ProjectVariableArgs.builder()
* .project(exampleGitlabProject.id())
* .key("pat")
* .value(example.token())
* .build());
* }
* }
* ```
* ```yaml
* resources:
* example:
* type: gitlab:PersonalAccessToken
* properties:
* userId: '25'
* name: Example personal access token
* expiresAt: 2020-03-14
* scopes:
* - api
* exampleProjectVariable:
* type: gitlab:ProjectVariable
* name: example
* properties:
* project: ${exampleGitlabProject.id}
* key: pat
* value: ${example.token}
* ```
*
* ## Import
* Starting in Terraform v1.5.0 you can use an import block to import `gitlab_personal_access_token`. For example:
* terraform
* import {
* to = gitlab_personal_access_token.example
* id = "see CLI command below for ID"
* }
* Import using the CLI is supported using the following syntax:
* A GitLab Personal Access Token can be imported using a key composed of `:`, e.g.
* ```sh
* $ pulumi import gitlab:index/personalAccessToken:PersonalAccessToken example "12345:1"
* ```
* NOTE: the `token` resource attribute is not available for imported resources as this information cannot be read from the GitLab API.
* @property expiresAt When the token will expire, YYYY-MM-DD format. Is automatically set when `rotation_configuration` is used.
* @property name The name of the personal access token.
* @property rotationConfiguration The configuration for when to rotate a token automatically. Will not rotate a token until `pulumi up` is run.
* @property scopes The scopes of the personal access token. valid values are: `api`, `read_user`, `read_api`, `read_repository`, `write_repository`, `read_registry`, `write_registry`, `sudo`, `admin_mode`, `create_runner`, `manage_runner`, `ai_features`, `k8s_proxy`, `read_service_ping`
* @property userId The ID of the user.
*/
public data class PersonalAccessTokenArgs(
public val expiresAt: Output? = null,
public val name: Output? = null,
public val rotationConfiguration: Output? = null,
public val scopes: Output>? = null,
public val userId: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.gitlab.PersonalAccessTokenArgs =
com.pulumi.gitlab.PersonalAccessTokenArgs.builder()
.expiresAt(expiresAt?.applyValue({ args0 -> args0 }))
.name(name?.applyValue({ args0 -> args0 }))
.rotationConfiguration(
rotationConfiguration?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.scopes(scopes?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.userId(userId?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [PersonalAccessTokenArgs].
*/
@PulumiTagMarker
public class PersonalAccessTokenArgsBuilder internal constructor() {
private var expiresAt: Output? = null
private var name: Output? = null
private var rotationConfiguration: Output? = null
private var scopes: Output>? = null
private var userId: Output? = null
/**
* @param value When the token will expire, YYYY-MM-DD format. Is automatically set when `rotation_configuration` is used.
*/
@JvmName("fodwlnhonmjqopoi")
public suspend fun expiresAt(`value`: Output) {
this.expiresAt = value
}
/**
* @param value The name of the personal access token.
*/
@JvmName("ymshvlxojqiejkhj")
public suspend fun name(`value`: Output) {
this.name = value
}
/**
* @param value The configuration for when to rotate a token automatically. Will not rotate a token until `pulumi up` is run.
*/
@JvmName("cjhecdwsehonebat")
public suspend fun rotationConfiguration(`value`: Output) {
this.rotationConfiguration = value
}
/**
* @param value The scopes of the personal access token. valid values are: `api`, `read_user`, `read_api`, `read_repository`, `write_repository`, `read_registry`, `write_registry`, `sudo`, `admin_mode`, `create_runner`, `manage_runner`, `ai_features`, `k8s_proxy`, `read_service_ping`
*/
@JvmName("pdlxofvpuqeonxxb")
public suspend fun scopes(`value`: Output>) {
this.scopes = value
}
@JvmName("sijyagvlbkgirtsn")
public suspend fun scopes(vararg values: Output) {
this.scopes = Output.all(values.asList())
}
/**
* @param values The scopes of the personal access token. valid values are: `api`, `read_user`, `read_api`, `read_repository`, `write_repository`, `read_registry`, `write_registry`, `sudo`, `admin_mode`, `create_runner`, `manage_runner`, `ai_features`, `k8s_proxy`, `read_service_ping`
*/
@JvmName("psimcaytxayuqwti")
public suspend fun scopes(values: List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy