1. Packages
  2. Buildkite
  3. API Docs
  4. Cluster
  5. ClusterMaintainer
Viewing docs for Buildkite v3.2.0
published on Monday, Feb 23, 2026 by Pulumiverse
buildkite logo
Viewing docs for Buildkite v3.2.0
published on Monday, Feb 23, 2026 by Pulumiverse

    This resource allows you to manage cluster maintainers in Buildkite. Maintainers can be either users or teams that have permission to manage a specific cluster. Find out more information in our documentation.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as buildkite from "@pulumiverse/buildkite";
    
    // Add a user as a cluster maintainer
    const userMaintainer = new buildkite.cluster.ClusterMaintainer("user_maintainer", {
        clusterUuid: primary.uuid,
        userUuid: "01234567-89ab-cdef-0123-456789abcdef",
    });
    // Add a team as a cluster maintainer
    const teamMaintainer = new buildkite.cluster.ClusterMaintainer("team_maintainer", {
        clusterUuid: primary.uuid,
        teamUuid: "01234567-89ab-cdef-0123-456789abcdef",
    });
    
    import pulumi
    import pulumiverse_buildkite as buildkite
    
    # Add a user as a cluster maintainer
    user_maintainer = buildkite.cluster.ClusterMaintainer("user_maintainer",
        cluster_uuid=primary["uuid"],
        user_uuid="01234567-89ab-cdef-0123-456789abcdef")
    # Add a team as a cluster maintainer
    team_maintainer = buildkite.cluster.ClusterMaintainer("team_maintainer",
        cluster_uuid=primary["uuid"],
        team_uuid="01234567-89ab-cdef-0123-456789abcdef")
    
    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-buildkite/sdk/v3/go/buildkite/cluster"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		// Add a user as a cluster maintainer
    		_, err := cluster.NewClusterMaintainer(ctx, "user_maintainer", &cluster.ClusterMaintainerArgs{
    			ClusterUuid: pulumi.Any(primary.Uuid),
    			UserUuid:    pulumi.String("01234567-89ab-cdef-0123-456789abcdef"),
    		})
    		if err != nil {
    			return err
    		}
    		// Add a team as a cluster maintainer
    		_, err = cluster.NewClusterMaintainer(ctx, "team_maintainer", &cluster.ClusterMaintainerArgs{
    			ClusterUuid: pulumi.Any(primary.Uuid),
    			TeamUuid:    pulumi.String("01234567-89ab-cdef-0123-456789abcdef"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Buildkite = Pulumiverse.Buildkite;
    
    return await Deployment.RunAsync(() => 
    {
        // Add a user as a cluster maintainer
        var userMaintainer = new Buildkite.Cluster.ClusterMaintainer("user_maintainer", new()
        {
            ClusterUuid = primary.Uuid,
            UserUuid = "01234567-89ab-cdef-0123-456789abcdef",
        });
    
        // Add a team as a cluster maintainer
        var teamMaintainer = new Buildkite.Cluster.ClusterMaintainer("team_maintainer", new()
        {
            ClusterUuid = primary.Uuid,
            TeamUuid = "01234567-89ab-cdef-0123-456789abcdef",
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.buildkite.Cluster.ClusterMaintainer;
    import com.pulumi.buildkite.Cluster.ClusterMaintainerArgs;
    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) {
            // Add a user as a cluster maintainer
            var userMaintainer = new ClusterMaintainer("userMaintainer", ClusterMaintainerArgs.builder()
                .clusterUuid(primary.uuid())
                .userUuid("01234567-89ab-cdef-0123-456789abcdef")
                .build());
    
            // Add a team as a cluster maintainer
            var teamMaintainer = new ClusterMaintainer("teamMaintainer", ClusterMaintainerArgs.builder()
                .clusterUuid(primary.uuid())
                .teamUuid("01234567-89ab-cdef-0123-456789abcdef")
                .build());
    
        }
    }
    
    resources:
      # Add a user as a cluster maintainer
      userMaintainer:
        type: buildkite:Cluster:ClusterMaintainer
        name: user_maintainer
        properties:
          clusterUuid: ${primary.uuid}
          userUuid: 01234567-89ab-cdef-0123-456789abcdef
      # Add a team as a cluster maintainer
      teamMaintainer:
        type: buildkite:Cluster:ClusterMaintainer
        name: team_maintainer
        properties:
          clusterUuid: ${primary.uuid}
          teamUuid: 01234567-89ab-cdef-0123-456789abcdef
    

    Create ClusterMaintainer Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new ClusterMaintainer(name: string, args: ClusterMaintainerArgs, opts?: CustomResourceOptions);
    @overload
    def ClusterMaintainer(resource_name: str,
                          args: ClusterMaintainerArgs,
                          opts: Optional[ResourceOptions] = None)
    
    @overload
    def ClusterMaintainer(resource_name: str,
                          opts: Optional[ResourceOptions] = None,
                          cluster_uuid: Optional[str] = None,
                          team_uuid: Optional[str] = None,
                          user_uuid: Optional[str] = None)
    func NewClusterMaintainer(ctx *Context, name string, args ClusterMaintainerArgs, opts ...ResourceOption) (*ClusterMaintainer, error)
    public ClusterMaintainer(string name, ClusterMaintainerArgs args, CustomResourceOptions? opts = null)
    public ClusterMaintainer(String name, ClusterMaintainerArgs args)
    public ClusterMaintainer(String name, ClusterMaintainerArgs args, CustomResourceOptions options)
    
    type: buildkite:Cluster:ClusterMaintainer
    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 ClusterMaintainerArgs
    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 ClusterMaintainerArgs
    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 ClusterMaintainerArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ClusterMaintainerArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ClusterMaintainerArgs
    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 clusterMaintainerResource = new Buildkite.Cluster.ClusterMaintainer("clusterMaintainerResource", new()
    {
        ClusterUuid = "string",
        TeamUuid = "string",
        UserUuid = "string",
    });
    
    example, err := cluster.NewClusterMaintainer(ctx, "clusterMaintainerResource", &cluster.ClusterMaintainerArgs{
    	ClusterUuid: pulumi.String("string"),
    	TeamUuid:    pulumi.String("string"),
    	UserUuid:    pulumi.String("string"),
    })
    
    var clusterMaintainerResource = new ClusterMaintainer("clusterMaintainerResource", ClusterMaintainerArgs.builder()
        .clusterUuid("string")
        .teamUuid("string")
        .userUuid("string")
        .build());
    
    cluster_maintainer_resource = buildkite.cluster.ClusterMaintainer("clusterMaintainerResource",
        cluster_uuid="string",
        team_uuid="string",
        user_uuid="string")
    
    const clusterMaintainerResource = new buildkite.cluster.ClusterMaintainer("clusterMaintainerResource", {
        clusterUuid: "string",
        teamUuid: "string",
        userUuid: "string",
    });
    
    type: buildkite:Cluster:ClusterMaintainer
    properties:
        clusterUuid: string
        teamUuid: string
        userUuid: string
    

    ClusterMaintainer 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 ClusterMaintainer resource accepts the following input properties:

    ClusterUuid string
    The UUID of the cluster.
    TeamUuid string
    The UUID of the team to add as a maintainer. This is mutually exclusive with useruuid. Only one of useruuid or team_uuid can be specified.
    UserUuid string
    The UUID of the user to add as a maintainer. This is mutually exclusive with teamuuid. Only one of useruuid or team_uuid can be specified.
    ClusterUuid string
    The UUID of the cluster.
    TeamUuid string
    The UUID of the team to add as a maintainer. This is mutually exclusive with useruuid. Only one of useruuid or team_uuid can be specified.
    UserUuid string
    The UUID of the user to add as a maintainer. This is mutually exclusive with teamuuid. Only one of useruuid or team_uuid can be specified.
    clusterUuid String
    The UUID of the cluster.
    teamUuid String
    The UUID of the team to add as a maintainer. This is mutually exclusive with useruuid. Only one of useruuid or team_uuid can be specified.
    userUuid String
    The UUID of the user to add as a maintainer. This is mutually exclusive with teamuuid. Only one of useruuid or team_uuid can be specified.
    clusterUuid string
    The UUID of the cluster.
    teamUuid string
    The UUID of the team to add as a maintainer. This is mutually exclusive with useruuid. Only one of useruuid or team_uuid can be specified.
    userUuid string
    The UUID of the user to add as a maintainer. This is mutually exclusive with teamuuid. Only one of useruuid or team_uuid can be specified.
    cluster_uuid str
    The UUID of the cluster.
    team_uuid str
    The UUID of the team to add as a maintainer. This is mutually exclusive with useruuid. Only one of useruuid or team_uuid can be specified.
    user_uuid str
    The UUID of the user to add as a maintainer. This is mutually exclusive with teamuuid. Only one of useruuid or team_uuid can be specified.
    clusterUuid String
    The UUID of the cluster.
    teamUuid String
    The UUID of the team to add as a maintainer. This is mutually exclusive with useruuid. Only one of useruuid or team_uuid can be specified.
    userUuid String
    The UUID of the user to add as a maintainer. This is mutually exclusive with teamuuid. Only one of useruuid or team_uuid can be specified.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the ClusterMaintainer resource produces the following output properties:

    ActorEmail string
    The email of the actor (only for users).
    ActorName string
    The name of the actor.
    ActorSlug string
    The slug of the actor (only for teams).
    ActorType string
    The type of the actor (user or team).
    ActorUuid string
    The UUID of the actor (user or team) that is the maintainer.
    Id string
    The provider-assigned unique ID for this managed resource.
    ActorEmail string
    The email of the actor (only for users).
    ActorName string
    The name of the actor.
    ActorSlug string
    The slug of the actor (only for teams).
    ActorType string
    The type of the actor (user or team).
    ActorUuid string
    The UUID of the actor (user or team) that is the maintainer.
    Id string
    The provider-assigned unique ID for this managed resource.
    actorEmail String
    The email of the actor (only for users).
    actorName String
    The name of the actor.
    actorSlug String
    The slug of the actor (only for teams).
    actorType String
    The type of the actor (user or team).
    actorUuid String
    The UUID of the actor (user or team) that is the maintainer.
    id String
    The provider-assigned unique ID for this managed resource.
    actorEmail string
    The email of the actor (only for users).
    actorName string
    The name of the actor.
    actorSlug string
    The slug of the actor (only for teams).
    actorType string
    The type of the actor (user or team).
    actorUuid string
    The UUID of the actor (user or team) that is the maintainer.
    id string
    The provider-assigned unique ID for this managed resource.
    actor_email str
    The email of the actor (only for users).
    actor_name str
    The name of the actor.
    actor_slug str
    The slug of the actor (only for teams).
    actor_type str
    The type of the actor (user or team).
    actor_uuid str
    The UUID of the actor (user or team) that is the maintainer.
    id str
    The provider-assigned unique ID for this managed resource.
    actorEmail String
    The email of the actor (only for users).
    actorName String
    The name of the actor.
    actorSlug String
    The slug of the actor (only for teams).
    actorType String
    The type of the actor (user or team).
    actorUuid String
    The UUID of the actor (user or team) that is the maintainer.
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing ClusterMaintainer Resource

    Get an existing ClusterMaintainer 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?: ClusterMaintainerState, opts?: CustomResourceOptions): ClusterMaintainer
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            actor_email: Optional[str] = None,
            actor_name: Optional[str] = None,
            actor_slug: Optional[str] = None,
            actor_type: Optional[str] = None,
            actor_uuid: Optional[str] = None,
            cluster_uuid: Optional[str] = None,
            team_uuid: Optional[str] = None,
            user_uuid: Optional[str] = None) -> ClusterMaintainer
    func GetClusterMaintainer(ctx *Context, name string, id IDInput, state *ClusterMaintainerState, opts ...ResourceOption) (*ClusterMaintainer, error)
    public static ClusterMaintainer Get(string name, Input<string> id, ClusterMaintainerState? state, CustomResourceOptions? opts = null)
    public static ClusterMaintainer get(String name, Output<String> id, ClusterMaintainerState state, CustomResourceOptions options)
    resources:  _:    type: buildkite:Cluster:ClusterMaintainer    get:      id: ${id}
    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.
    The following state arguments are supported:
    ActorEmail string
    The email of the actor (only for users).
    ActorName string
    The name of the actor.
    ActorSlug string
    The slug of the actor (only for teams).
    ActorType string
    The type of the actor (user or team).
    ActorUuid string
    The UUID of the actor (user or team) that is the maintainer.
    ClusterUuid string
    The UUID of the cluster.
    TeamUuid string
    The UUID of the team to add as a maintainer. This is mutually exclusive with useruuid. Only one of useruuid or team_uuid can be specified.
    UserUuid string
    The UUID of the user to add as a maintainer. This is mutually exclusive with teamuuid. Only one of useruuid or team_uuid can be specified.
    ActorEmail string
    The email of the actor (only for users).
    ActorName string
    The name of the actor.
    ActorSlug string
    The slug of the actor (only for teams).
    ActorType string
    The type of the actor (user or team).
    ActorUuid string
    The UUID of the actor (user or team) that is the maintainer.
    ClusterUuid string
    The UUID of the cluster.
    TeamUuid string
    The UUID of the team to add as a maintainer. This is mutually exclusive with useruuid. Only one of useruuid or team_uuid can be specified.
    UserUuid string
    The UUID of the user to add as a maintainer. This is mutually exclusive with teamuuid. Only one of useruuid or team_uuid can be specified.
    actorEmail String
    The email of the actor (only for users).
    actorName String
    The name of the actor.
    actorSlug String
    The slug of the actor (only for teams).
    actorType String
    The type of the actor (user or team).
    actorUuid String
    The UUID of the actor (user or team) that is the maintainer.
    clusterUuid String
    The UUID of the cluster.
    teamUuid String
    The UUID of the team to add as a maintainer. This is mutually exclusive with useruuid. Only one of useruuid or team_uuid can be specified.
    userUuid String
    The UUID of the user to add as a maintainer. This is mutually exclusive with teamuuid. Only one of useruuid or team_uuid can be specified.
    actorEmail string
    The email of the actor (only for users).
    actorName string
    The name of the actor.
    actorSlug string
    The slug of the actor (only for teams).
    actorType string
    The type of the actor (user or team).
    actorUuid string
    The UUID of the actor (user or team) that is the maintainer.
    clusterUuid string
    The UUID of the cluster.
    teamUuid string
    The UUID of the team to add as a maintainer. This is mutually exclusive with useruuid. Only one of useruuid or team_uuid can be specified.
    userUuid string
    The UUID of the user to add as a maintainer. This is mutually exclusive with teamuuid. Only one of useruuid or team_uuid can be specified.
    actor_email str
    The email of the actor (only for users).
    actor_name str
    The name of the actor.
    actor_slug str
    The slug of the actor (only for teams).
    actor_type str
    The type of the actor (user or team).
    actor_uuid str
    The UUID of the actor (user or team) that is the maintainer.
    cluster_uuid str
    The UUID of the cluster.
    team_uuid str
    The UUID of the team to add as a maintainer. This is mutually exclusive with useruuid. Only one of useruuid or team_uuid can be specified.
    user_uuid str
    The UUID of the user to add as a maintainer. This is mutually exclusive with teamuuid. Only one of useruuid or team_uuid can be specified.
    actorEmail String
    The email of the actor (only for users).
    actorName String
    The name of the actor.
    actorSlug String
    The slug of the actor (only for teams).
    actorType String
    The type of the actor (user or team).
    actorUuid String
    The UUID of the actor (user or team) that is the maintainer.
    clusterUuid String
    The UUID of the cluster.
    teamUuid String
    The UUID of the team to add as a maintainer. This is mutually exclusive with useruuid. Only one of useruuid or team_uuid can be specified.
    userUuid String
    The UUID of the user to add as a maintainer. This is mutually exclusive with teamuuid. Only one of useruuid or team_uuid can be specified.

    Import

    Using pulumi import, import resources using the id. For example:

    Import a cluster maintainer using {cluster_uuid}/{permission_uuid}

    You can find the cluster_uuid and the permission_uuid

    from the maintainers list using the cluster data source or REST

    API response from:

    GET /v2/organizations/{org_slug}/clusters/{cluster_uuid}/maintainers

    $ pulumi import buildkite:Cluster/clusterMaintainer:ClusterMaintainer user_maintainer 01234567-89ab-cdef-0123-456789abcdef/977b68d3-f8fe-4784-8d43-5bc857e10541
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    buildkite pulumiverse/pulumi-buildkite
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the buildkite Terraform Provider.
    buildkite logo
    Viewing docs for Buildkite v3.2.0
    published on Monday, Feb 23, 2026 by Pulumiverse
      Try Pulumi Cloud free. Your team will thank you.