gitlab.DeployKeyEnable
Explore with Pulumi AI
The gitlab.DeployKeyEnable
resource allows to enable an already existing deploy key (see gitlab.DeployKey resource
) for a specific project.
Upstream API: GitLab REST API docs
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as gitlab from "@pulumi/gitlab";
// A repo to host the deployment key
const parent = new gitlab.Project("parent", {name: "parent_project"});
// A second repo to use the deployment key from the parent project
const foo = new gitlab.Project("foo", {name: "foo_project"});
// Upload a deployment key for the parent repo
const parentDeployKey = new gitlab.DeployKey("parent", {
project: parent.id,
title: "Example deploy key",
key: "ssh-ed25519 AAAA...",
});
// Enable the deployment key on the second repo
const fooDeployKeyEnable = new gitlab.DeployKeyEnable("foo", {
project: foo.id,
keyId: parentDeployKey.deployKeyId,
});
import pulumi
import pulumi_gitlab as gitlab
# A repo to host the deployment key
parent = gitlab.Project("parent", name="parent_project")
# A second repo to use the deployment key from the parent project
foo = gitlab.Project("foo", name="foo_project")
# Upload a deployment key for the parent repo
parent_deploy_key = gitlab.DeployKey("parent",
project=parent.id,
title="Example deploy key",
key="ssh-ed25519 AAAA...")
# Enable the deployment key on the second repo
foo_deploy_key_enable = gitlab.DeployKeyEnable("foo",
project=foo.id,
key_id=parent_deploy_key.deploy_key_id)
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 {
// A repo to host the deployment key
parent, err := gitlab.NewProject(ctx, "parent", &gitlab.ProjectArgs{
Name: pulumi.String("parent_project"),
})
if err != nil {
return err
}
// A second repo to use the deployment key from the parent project
foo, err := gitlab.NewProject(ctx, "foo", &gitlab.ProjectArgs{
Name: pulumi.String("foo_project"),
})
if err != nil {
return err
}
// Upload a deployment key for the parent repo
parentDeployKey, err := gitlab.NewDeployKey(ctx, "parent", &gitlab.DeployKeyArgs{
Project: parent.ID(),
Title: pulumi.String("Example deploy key"),
Key: pulumi.String("ssh-ed25519 AAAA..."),
})
if err != nil {
return err
}
// Enable the deployment key on the second repo
_, err = gitlab.NewDeployKeyEnable(ctx, "foo", &gitlab.DeployKeyEnableArgs{
Project: foo.ID(),
KeyId: parentDeployKey.DeployKeyId,
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using GitLab = Pulumi.GitLab;
return await Deployment.RunAsync(() =>
{
// A repo to host the deployment key
var parent = new GitLab.Project("parent", new()
{
Name = "parent_project",
});
// A second repo to use the deployment key from the parent project
var foo = new GitLab.Project("foo", new()
{
Name = "foo_project",
});
// Upload a deployment key for the parent repo
var parentDeployKey = new GitLab.DeployKey("parent", new()
{
Project = parent.Id,
Title = "Example deploy key",
Key = "ssh-ed25519 AAAA...",
});
// Enable the deployment key on the second repo
var fooDeployKeyEnable = new GitLab.DeployKeyEnable("foo", new()
{
Project = foo.Id,
KeyId = parentDeployKey.DeployKeyId,
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gitlab.Project;
import com.pulumi.gitlab.ProjectArgs;
import com.pulumi.gitlab.DeployKey;
import com.pulumi.gitlab.DeployKeyArgs;
import com.pulumi.gitlab.DeployKeyEnable;
import com.pulumi.gitlab.DeployKeyEnableArgs;
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) {
// A repo to host the deployment key
var parent = new Project("parent", ProjectArgs.builder()
.name("parent_project")
.build());
// A second repo to use the deployment key from the parent project
var foo = new Project("foo", ProjectArgs.builder()
.name("foo_project")
.build());
// Upload a deployment key for the parent repo
var parentDeployKey = new DeployKey("parentDeployKey", DeployKeyArgs.builder()
.project(parent.id())
.title("Example deploy key")
.key("ssh-ed25519 AAAA...")
.build());
// Enable the deployment key on the second repo
var fooDeployKeyEnable = new DeployKeyEnable("fooDeployKeyEnable", DeployKeyEnableArgs.builder()
.project(foo.id())
.keyId(parentDeployKey.deployKeyId())
.build());
}
}
resources:
# A repo to host the deployment key
parent:
type: gitlab:Project
properties:
name: parent_project
# A second repo to use the deployment key from the parent project
foo:
type: gitlab:Project
properties:
name: foo_project
# Upload a deployment key for the parent repo
parentDeployKey:
type: gitlab:DeployKey
name: parent
properties:
project: ${parent.id}
title: Example deploy key
key: ssh-ed25519 AAAA...
# Enable the deployment key on the second repo
fooDeployKeyEnable:
type: gitlab:DeployKeyEnable
name: foo
properties:
project: ${foo.id}
keyId: ${parentDeployKey.deployKeyId}
Create DeployKeyEnable Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new DeployKeyEnable(name: string, args: DeployKeyEnableArgs, opts?: CustomResourceOptions);
@overload
def DeployKeyEnable(resource_name: str,
args: DeployKeyEnableArgs,
opts: Optional[ResourceOptions] = None)
@overload
def DeployKeyEnable(resource_name: str,
opts: Optional[ResourceOptions] = None,
key_id: Optional[str] = None,
project: Optional[str] = None,
can_push: Optional[bool] = None,
key: Optional[str] = None,
title: Optional[str] = None)
func NewDeployKeyEnable(ctx *Context, name string, args DeployKeyEnableArgs, opts ...ResourceOption) (*DeployKeyEnable, error)
public DeployKeyEnable(string name, DeployKeyEnableArgs args, CustomResourceOptions? opts = null)
public DeployKeyEnable(String name, DeployKeyEnableArgs args)
public DeployKeyEnable(String name, DeployKeyEnableArgs args, CustomResourceOptions options)
type: gitlab:DeployKeyEnable
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args DeployKeyEnableArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args DeployKeyEnableArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args DeployKeyEnableArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args DeployKeyEnableArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args DeployKeyEnableArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var deployKeyEnableResource = new GitLab.DeployKeyEnable("deployKeyEnableResource", new()
{
KeyId = "string",
Project = "string",
CanPush = false,
Key = "string",
Title = "string",
});
example, err := gitlab.NewDeployKeyEnable(ctx, "deployKeyEnableResource", &gitlab.DeployKeyEnableArgs{
KeyId: pulumi.String("string"),
Project: pulumi.String("string"),
CanPush: pulumi.Bool(false),
Key: pulumi.String("string"),
Title: pulumi.String("string"),
})
var deployKeyEnableResource = new DeployKeyEnable("deployKeyEnableResource", DeployKeyEnableArgs.builder()
.keyId("string")
.project("string")
.canPush(false)
.key("string")
.title("string")
.build());
deploy_key_enable_resource = gitlab.DeployKeyEnable("deployKeyEnableResource",
key_id="string",
project="string",
can_push=False,
key="string",
title="string")
const deployKeyEnableResource = new gitlab.DeployKeyEnable("deployKeyEnableResource", {
keyId: "string",
project: "string",
canPush: false,
key: "string",
title: "string",
});
type: gitlab:DeployKeyEnable
properties:
canPush: false
key: string
keyId: string
project: string
title: string
DeployKeyEnable Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The DeployKeyEnable resource accepts the following input properties:
Outputs
All input properties are implicitly available as output properties. Additionally, the DeployKeyEnable resource produces the following output properties:
- Id string
- The provider-assigned unique ID for this managed resource.
- Id string
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
- id string
- The provider-assigned unique ID for this managed resource.
- id str
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
Look up Existing DeployKeyEnable Resource
Get an existing DeployKeyEnable resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: DeployKeyEnableState, opts?: CustomResourceOptions): DeployKeyEnable
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
can_push: Optional[bool] = None,
key: Optional[str] = None,
key_id: Optional[str] = None,
project: Optional[str] = None,
title: Optional[str] = None) -> DeployKeyEnable
func GetDeployKeyEnable(ctx *Context, name string, id IDInput, state *DeployKeyEnableState, opts ...ResourceOption) (*DeployKeyEnable, error)
public static DeployKeyEnable Get(string name, Input<string> id, DeployKeyEnableState? state, CustomResourceOptions? opts = null)
public static DeployKeyEnable get(String name, Output<String> id, DeployKeyEnableState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
Import
Starting in Terraform v1.5.0 you can use an import block to import gitlab_deploy_key_enable
. For example:
terraform
import {
to = gitlab_deploy_key_enable.example
id = “see CLI command below for ID”
}
Import using the CLI is supported using the following syntax:
GitLab enabled deploy keys can be imported using an id made up of {project_id}:{deploy_key_id}
, e.g.
project_id
can be whatever the [get single project api][get_single_project] takes for
its :id
value, so for example:
$ pulumi import gitlab:index/deployKeyEnable:DeployKeyEnable example 12345:67890
$ pulumi import gitlab:index/deployKeyEnable:DeployKeyEnable example richardc/example:67890
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- GitLab pulumi/pulumi-gitlab
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
gitlab
Terraform Provider.