1. Packages
  2. Juju Provider
  3. API Docs
  4. Controller
Viewing docs for juju 1.3.1
published on Tuesday, Mar 10, 2026 by juju
juju logo
Viewing docs for juju 1.3.1
published on Tuesday, Mar 10, 2026 by juju

    A resource that represents a Juju Controller.

    Create Controller Resource

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

    Constructor syntax

    new Controller(name: string, args: ControllerArgs, opts?: CustomResourceOptions);
    @overload
    def Controller(resource_name: str,
                   args: ControllerArgs,
                   opts: Optional[ResourceOptions] = None)
    
    @overload
    def Controller(resource_name: str,
                   opts: Optional[ResourceOptions] = None,
                   cloud: Optional[ControllerCloudArgs] = None,
                   juju_binary: Optional[str] = None,
                   cloud_credential: Optional[ControllerCloudCredentialArgs] = None,
                   bootstrap_constraints: Optional[Mapping[str, str]] = None,
                   agent_version: Optional[str] = None,
                   bootstrap_config: Optional[Mapping[str, str]] = None,
                   controller_config: Optional[Mapping[str, str]] = None,
                   controller_model_config: Optional[Mapping[str, str]] = None,
                   destroy_flags: Optional[ControllerDestroyFlagsArgs] = None,
                   bootstrap_base: Optional[str] = None,
                   model_constraints: Optional[Mapping[str, str]] = None,
                   model_default: Optional[Mapping[str, str]] = None,
                   name: Optional[str] = None,
                   storage_pool: Optional[ControllerStoragePoolArgs] = None)
    func NewController(ctx *Context, name string, args ControllerArgs, opts ...ResourceOption) (*Controller, error)
    public Controller(string name, ControllerArgs args, CustomResourceOptions? opts = null)
    public Controller(String name, ControllerArgs args)
    public Controller(String name, ControllerArgs args, CustomResourceOptions options)
    
    type: juju:Controller
    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 ControllerArgs
    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 ControllerArgs
    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 ControllerArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ControllerArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ControllerArgs
    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 controllerResource = new Juju.Controller("controllerResource", new()
    {
        Cloud = new Juju.Inputs.ControllerCloudArgs
        {
            AuthTypes = new[]
            {
                "string",
            },
            Name = "string",
            Type = "string",
            CaCertificates = new[]
            {
                "string",
            },
            Config = 
            {
                { "string", "string" },
            },
            Endpoint = "string",
            HostCloudRegion = "string",
            Region = new Juju.Inputs.ControllerCloudRegionArgs
            {
                Name = "string",
                Endpoint = "string",
                IdentityEndpoint = "string",
                StorageEndpoint = "string",
            },
        },
        JujuBinary = "string",
        CloudCredential = new Juju.Inputs.ControllerCloudCredentialArgs
        {
            Attributes = 
            {
                { "string", "string" },
            },
            AuthType = "string",
            Name = "string",
        },
        BootstrapConstraints = 
        {
            { "string", "string" },
        },
        AgentVersion = "string",
        BootstrapConfig = 
        {
            { "string", "string" },
        },
        ControllerConfig = 
        {
            { "string", "string" },
        },
        ControllerModelConfig = 
        {
            { "string", "string" },
        },
        DestroyFlags = new Juju.Inputs.ControllerDestroyFlagsArgs
        {
            DestroyAllModels = false,
            DestroyStorage = false,
            Force = false,
            ModelTimeout = 0,
            ReleaseStorage = false,
        },
        BootstrapBase = "string",
        ModelConstraints = 
        {
            { "string", "string" },
        },
        ModelDefault = 
        {
            { "string", "string" },
        },
        Name = "string",
        StoragePool = new Juju.Inputs.ControllerStoragePoolArgs
        {
            Name = "string",
            Type = "string",
            Attributes = 
            {
                { "string", "string" },
            },
        },
    });
    
    example, err := juju.NewController(ctx, "controllerResource", &juju.ControllerArgs{
    	Cloud: &juju.ControllerCloudArgs{
    		AuthTypes: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		Name: pulumi.String("string"),
    		Type: pulumi.String("string"),
    		CaCertificates: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		Config: pulumi.StringMap{
    			"string": pulumi.String("string"),
    		},
    		Endpoint:        pulumi.String("string"),
    		HostCloudRegion: pulumi.String("string"),
    		Region: &juju.ControllerCloudRegionArgs{
    			Name:             pulumi.String("string"),
    			Endpoint:         pulumi.String("string"),
    			IdentityEndpoint: pulumi.String("string"),
    			StorageEndpoint:  pulumi.String("string"),
    		},
    	},
    	JujuBinary: pulumi.String("string"),
    	CloudCredential: &juju.ControllerCloudCredentialArgs{
    		Attributes: pulumi.StringMap{
    			"string": pulumi.String("string"),
    		},
    		AuthType: pulumi.String("string"),
    		Name:     pulumi.String("string"),
    	},
    	BootstrapConstraints: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	AgentVersion: pulumi.String("string"),
    	BootstrapConfig: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	ControllerConfig: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	ControllerModelConfig: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	DestroyFlags: &juju.ControllerDestroyFlagsArgs{
    		DestroyAllModels: pulumi.Bool(false),
    		DestroyStorage:   pulumi.Bool(false),
    		Force:            pulumi.Bool(false),
    		ModelTimeout:     pulumi.Float64(0),
    		ReleaseStorage:   pulumi.Bool(false),
    	},
    	BootstrapBase: pulumi.String("string"),
    	ModelConstraints: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	ModelDefault: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	Name: pulumi.String("string"),
    	StoragePool: &juju.ControllerStoragePoolArgs{
    		Name: pulumi.String("string"),
    		Type: pulumi.String("string"),
    		Attributes: pulumi.StringMap{
    			"string": pulumi.String("string"),
    		},
    	},
    })
    
    var controllerResource = new Controller("controllerResource", ControllerArgs.builder()
        .cloud(ControllerCloudArgs.builder()
            .authTypes("string")
            .name("string")
            .type("string")
            .caCertificates("string")
            .config(Map.of("string", "string"))
            .endpoint("string")
            .hostCloudRegion("string")
            .region(ControllerCloudRegionArgs.builder()
                .name("string")
                .endpoint("string")
                .identityEndpoint("string")
                .storageEndpoint("string")
                .build())
            .build())
        .jujuBinary("string")
        .cloudCredential(ControllerCloudCredentialArgs.builder()
            .attributes(Map.of("string", "string"))
            .authType("string")
            .name("string")
            .build())
        .bootstrapConstraints(Map.of("string", "string"))
        .agentVersion("string")
        .bootstrapConfig(Map.of("string", "string"))
        .controllerConfig(Map.of("string", "string"))
        .controllerModelConfig(Map.of("string", "string"))
        .destroyFlags(ControllerDestroyFlagsArgs.builder()
            .destroyAllModels(false)
            .destroyStorage(false)
            .force(false)
            .modelTimeout(0.0)
            .releaseStorage(false)
            .build())
        .bootstrapBase("string")
        .modelConstraints(Map.of("string", "string"))
        .modelDefault(Map.of("string", "string"))
        .name("string")
        .storagePool(ControllerStoragePoolArgs.builder()
            .name("string")
            .type("string")
            .attributes(Map.of("string", "string"))
            .build())
        .build());
    
    controller_resource = juju.Controller("controllerResource",
        cloud={
            "auth_types": ["string"],
            "name": "string",
            "type": "string",
            "ca_certificates": ["string"],
            "config": {
                "string": "string",
            },
            "endpoint": "string",
            "host_cloud_region": "string",
            "region": {
                "name": "string",
                "endpoint": "string",
                "identity_endpoint": "string",
                "storage_endpoint": "string",
            },
        },
        juju_binary="string",
        cloud_credential={
            "attributes": {
                "string": "string",
            },
            "auth_type": "string",
            "name": "string",
        },
        bootstrap_constraints={
            "string": "string",
        },
        agent_version="string",
        bootstrap_config={
            "string": "string",
        },
        controller_config={
            "string": "string",
        },
        controller_model_config={
            "string": "string",
        },
        destroy_flags={
            "destroy_all_models": False,
            "destroy_storage": False,
            "force": False,
            "model_timeout": 0,
            "release_storage": False,
        },
        bootstrap_base="string",
        model_constraints={
            "string": "string",
        },
        model_default={
            "string": "string",
        },
        name="string",
        storage_pool={
            "name": "string",
            "type": "string",
            "attributes": {
                "string": "string",
            },
        })
    
    const controllerResource = new juju.Controller("controllerResource", {
        cloud: {
            authTypes: ["string"],
            name: "string",
            type: "string",
            caCertificates: ["string"],
            config: {
                string: "string",
            },
            endpoint: "string",
            hostCloudRegion: "string",
            region: {
                name: "string",
                endpoint: "string",
                identityEndpoint: "string",
                storageEndpoint: "string",
            },
        },
        jujuBinary: "string",
        cloudCredential: {
            attributes: {
                string: "string",
            },
            authType: "string",
            name: "string",
        },
        bootstrapConstraints: {
            string: "string",
        },
        agentVersion: "string",
        bootstrapConfig: {
            string: "string",
        },
        controllerConfig: {
            string: "string",
        },
        controllerModelConfig: {
            string: "string",
        },
        destroyFlags: {
            destroyAllModels: false,
            destroyStorage: false,
            force: false,
            modelTimeout: 0,
            releaseStorage: false,
        },
        bootstrapBase: "string",
        modelConstraints: {
            string: "string",
        },
        modelDefault: {
            string: "string",
        },
        name: "string",
        storagePool: {
            name: "string",
            type: "string",
            attributes: {
                string: "string",
            },
        },
    });
    
    type: juju:Controller
    properties:
        agentVersion: string
        bootstrapBase: string
        bootstrapConfig:
            string: string
        bootstrapConstraints:
            string: string
        cloud:
            authTypes:
                - string
            caCertificates:
                - string
            config:
                string: string
            endpoint: string
            hostCloudRegion: string
            name: string
            region:
                endpoint: string
                identityEndpoint: string
                name: string
                storageEndpoint: string
            type: string
        cloudCredential:
            attributes:
                string: string
            authType: string
            name: string
        controllerConfig:
            string: string
        controllerModelConfig:
            string: string
        destroyFlags:
            destroyAllModels: false
            destroyStorage: false
            force: false
            modelTimeout: 0
            releaseStorage: false
        jujuBinary: string
        modelConstraints:
            string: string
        modelDefault:
            string: string
        name: string
        storagePool:
            attributes:
                string: string
            name: string
            type: string
    

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

    Cloud ControllerCloud
    The cloud where the controller will operate.
    CloudCredential ControllerCloudCredential
    Cloud credentials to use for bootstrapping the controller.
    JujuBinary string
    The path to the juju CLI binary. If you have installed Juju as a snap, use the path /snap/juju/current/bin/juju to avoid snap confinement issues.
    AgentVersion string
    The version of agent binaries.
    BootstrapBase string
    The base for the bootstrap machine.
    BootstrapConfig Dictionary<string, string>
    Configuration options that apply during the bootstrap process.
    BootstrapConstraints Dictionary<string, string>
    Constraints for the bootstrap machine.
    ControllerConfig Dictionary<string, string>
    Configuration options for the bootstrapped controller. Note that removing a key from this map will not unset it in the controller, instead it will be left unchanged on the controller.
    ControllerModelConfig Dictionary<string, string>
    Configuration options to be set for the controller model.
    DestroyFlags ControllerDestroyFlags
    Additional flags for destroying the controller. Changing any of these values will require applying before they can be taken into account during destroy.
    ModelConstraints Dictionary<string, string>
    Constraints for all workload machines in models.
    ModelDefault Dictionary<string, string>
    Configuration options to be set for all models.
    Name string
    StoragePool ControllerStoragePool
    Options for the initial storage pool
    Cloud ControllerCloudArgs
    The cloud where the controller will operate.
    CloudCredential ControllerCloudCredentialArgs
    Cloud credentials to use for bootstrapping the controller.
    JujuBinary string
    The path to the juju CLI binary. If you have installed Juju as a snap, use the path /snap/juju/current/bin/juju to avoid snap confinement issues.
    AgentVersion string
    The version of agent binaries.
    BootstrapBase string
    The base for the bootstrap machine.
    BootstrapConfig map[string]string
    Configuration options that apply during the bootstrap process.
    BootstrapConstraints map[string]string
    Constraints for the bootstrap machine.
    ControllerConfig map[string]string
    Configuration options for the bootstrapped controller. Note that removing a key from this map will not unset it in the controller, instead it will be left unchanged on the controller.
    ControllerModelConfig map[string]string
    Configuration options to be set for the controller model.
    DestroyFlags ControllerDestroyFlagsArgs
    Additional flags for destroying the controller. Changing any of these values will require applying before they can be taken into account during destroy.
    ModelConstraints map[string]string
    Constraints for all workload machines in models.
    ModelDefault map[string]string
    Configuration options to be set for all models.
    Name string
    StoragePool ControllerStoragePoolArgs
    Options for the initial storage pool
    cloud ControllerCloud
    The cloud where the controller will operate.
    cloudCredential ControllerCloudCredential
    Cloud credentials to use for bootstrapping the controller.
    jujuBinary String
    The path to the juju CLI binary. If you have installed Juju as a snap, use the path /snap/juju/current/bin/juju to avoid snap confinement issues.
    agentVersion String
    The version of agent binaries.
    bootstrapBase String
    The base for the bootstrap machine.
    bootstrapConfig Map<String,String>
    Configuration options that apply during the bootstrap process.
    bootstrapConstraints Map<String,String>
    Constraints for the bootstrap machine.
    controllerConfig Map<String,String>
    Configuration options for the bootstrapped controller. Note that removing a key from this map will not unset it in the controller, instead it will be left unchanged on the controller.
    controllerModelConfig Map<String,String>
    Configuration options to be set for the controller model.
    destroyFlags ControllerDestroyFlags
    Additional flags for destroying the controller. Changing any of these values will require applying before they can be taken into account during destroy.
    modelConstraints Map<String,String>
    Constraints for all workload machines in models.
    modelDefault Map<String,String>
    Configuration options to be set for all models.
    name String
    storagePool ControllerStoragePool
    Options for the initial storage pool
    cloud ControllerCloud
    The cloud where the controller will operate.
    cloudCredential ControllerCloudCredential
    Cloud credentials to use for bootstrapping the controller.
    jujuBinary string
    The path to the juju CLI binary. If you have installed Juju as a snap, use the path /snap/juju/current/bin/juju to avoid snap confinement issues.
    agentVersion string
    The version of agent binaries.
    bootstrapBase string
    The base for the bootstrap machine.
    bootstrapConfig {[key: string]: string}
    Configuration options that apply during the bootstrap process.
    bootstrapConstraints {[key: string]: string}
    Constraints for the bootstrap machine.
    controllerConfig {[key: string]: string}
    Configuration options for the bootstrapped controller. Note that removing a key from this map will not unset it in the controller, instead it will be left unchanged on the controller.
    controllerModelConfig {[key: string]: string}
    Configuration options to be set for the controller model.
    destroyFlags ControllerDestroyFlags
    Additional flags for destroying the controller. Changing any of these values will require applying before they can be taken into account during destroy.
    modelConstraints {[key: string]: string}
    Constraints for all workload machines in models.
    modelDefault {[key: string]: string}
    Configuration options to be set for all models.
    name string
    storagePool ControllerStoragePool
    Options for the initial storage pool
    cloud ControllerCloudArgs
    The cloud where the controller will operate.
    cloud_credential ControllerCloudCredentialArgs
    Cloud credentials to use for bootstrapping the controller.
    juju_binary str
    The path to the juju CLI binary. If you have installed Juju as a snap, use the path /snap/juju/current/bin/juju to avoid snap confinement issues.
    agent_version str
    The version of agent binaries.
    bootstrap_base str
    The base for the bootstrap machine.
    bootstrap_config Mapping[str, str]
    Configuration options that apply during the bootstrap process.
    bootstrap_constraints Mapping[str, str]
    Constraints for the bootstrap machine.
    controller_config Mapping[str, str]
    Configuration options for the bootstrapped controller. Note that removing a key from this map will not unset it in the controller, instead it will be left unchanged on the controller.
    controller_model_config Mapping[str, str]
    Configuration options to be set for the controller model.
    destroy_flags ControllerDestroyFlagsArgs
    Additional flags for destroying the controller. Changing any of these values will require applying before they can be taken into account during destroy.
    model_constraints Mapping[str, str]
    Constraints for all workload machines in models.
    model_default Mapping[str, str]
    Configuration options to be set for all models.
    name str
    storage_pool ControllerStoragePoolArgs
    Options for the initial storage pool
    cloud Property Map
    The cloud where the controller will operate.
    cloudCredential Property Map
    Cloud credentials to use for bootstrapping the controller.
    jujuBinary String
    The path to the juju CLI binary. If you have installed Juju as a snap, use the path /snap/juju/current/bin/juju to avoid snap confinement issues.
    agentVersion String
    The version of agent binaries.
    bootstrapBase String
    The base for the bootstrap machine.
    bootstrapConfig Map<String>
    Configuration options that apply during the bootstrap process.
    bootstrapConstraints Map<String>
    Constraints for the bootstrap machine.
    controllerConfig Map<String>
    Configuration options for the bootstrapped controller. Note that removing a key from this map will not unset it in the controller, instead it will be left unchanged on the controller.
    controllerModelConfig Map<String>
    Configuration options to be set for the controller model.
    destroyFlags Property Map
    Additional flags for destroying the controller. Changing any of these values will require applying before they can be taken into account during destroy.
    modelConstraints Map<String>
    Constraints for all workload machines in models.
    modelDefault Map<String>
    Configuration options to be set for all models.
    name String
    storagePool Property Map
    Options for the initial storage pool

    Outputs

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

    ApiAddresses List<string>
    API addresses of the controller.
    CaCert string
    CA certificate for the controller.
    ControllerUuid string
    The UUID of the controller.
    Id string
    The provider-assigned unique ID for this managed resource.
    Password string
    Admin password for the controller.
    Username string
    Admin username for the controller.
    ApiAddresses []string
    API addresses of the controller.
    CaCert string
    CA certificate for the controller.
    ControllerUuid string
    The UUID of the controller.
    Id string
    The provider-assigned unique ID for this managed resource.
    Password string
    Admin password for the controller.
    Username string
    Admin username for the controller.
    apiAddresses List<String>
    API addresses of the controller.
    caCert String
    CA certificate for the controller.
    controllerUuid String
    The UUID of the controller.
    id String
    The provider-assigned unique ID for this managed resource.
    password String
    Admin password for the controller.
    username String
    Admin username for the controller.
    apiAddresses string[]
    API addresses of the controller.
    caCert string
    CA certificate for the controller.
    controllerUuid string
    The UUID of the controller.
    id string
    The provider-assigned unique ID for this managed resource.
    password string
    Admin password for the controller.
    username string
    Admin username for the controller.
    api_addresses Sequence[str]
    API addresses of the controller.
    ca_cert str
    CA certificate for the controller.
    controller_uuid str
    The UUID of the controller.
    id str
    The provider-assigned unique ID for this managed resource.
    password str
    Admin password for the controller.
    username str
    Admin username for the controller.
    apiAddresses List<String>
    API addresses of the controller.
    caCert String
    CA certificate for the controller.
    controllerUuid String
    The UUID of the controller.
    id String
    The provider-assigned unique ID for this managed resource.
    password String
    Admin password for the controller.
    username String
    Admin username for the controller.

    Look up Existing Controller Resource

    Get an existing Controller 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?: ControllerState, opts?: CustomResourceOptions): Controller
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            agent_version: Optional[str] = None,
            api_addresses: Optional[Sequence[str]] = None,
            bootstrap_base: Optional[str] = None,
            bootstrap_config: Optional[Mapping[str, str]] = None,
            bootstrap_constraints: Optional[Mapping[str, str]] = None,
            ca_cert: Optional[str] = None,
            cloud: Optional[ControllerCloudArgs] = None,
            cloud_credential: Optional[ControllerCloudCredentialArgs] = None,
            controller_config: Optional[Mapping[str, str]] = None,
            controller_model_config: Optional[Mapping[str, str]] = None,
            controller_uuid: Optional[str] = None,
            destroy_flags: Optional[ControllerDestroyFlagsArgs] = None,
            juju_binary: Optional[str] = None,
            model_constraints: Optional[Mapping[str, str]] = None,
            model_default: Optional[Mapping[str, str]] = None,
            name: Optional[str] = None,
            password: Optional[str] = None,
            storage_pool: Optional[ControllerStoragePoolArgs] = None,
            username: Optional[str] = None) -> Controller
    func GetController(ctx *Context, name string, id IDInput, state *ControllerState, opts ...ResourceOption) (*Controller, error)
    public static Controller Get(string name, Input<string> id, ControllerState? state, CustomResourceOptions? opts = null)
    public static Controller get(String name, Output<String> id, ControllerState state, CustomResourceOptions options)
    resources:  _:    type: juju:Controller    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:
    AgentVersion string
    The version of agent binaries.
    ApiAddresses List<string>
    API addresses of the controller.
    BootstrapBase string
    The base for the bootstrap machine.
    BootstrapConfig Dictionary<string, string>
    Configuration options that apply during the bootstrap process.
    BootstrapConstraints Dictionary<string, string>
    Constraints for the bootstrap machine.
    CaCert string
    CA certificate for the controller.
    Cloud ControllerCloud
    The cloud where the controller will operate.
    CloudCredential ControllerCloudCredential
    Cloud credentials to use for bootstrapping the controller.
    ControllerConfig Dictionary<string, string>
    Configuration options for the bootstrapped controller. Note that removing a key from this map will not unset it in the controller, instead it will be left unchanged on the controller.
    ControllerModelConfig Dictionary<string, string>
    Configuration options to be set for the controller model.
    ControllerUuid string
    The UUID of the controller.
    DestroyFlags ControllerDestroyFlags
    Additional flags for destroying the controller. Changing any of these values will require applying before they can be taken into account during destroy.
    JujuBinary string
    The path to the juju CLI binary. If you have installed Juju as a snap, use the path /snap/juju/current/bin/juju to avoid snap confinement issues.
    ModelConstraints Dictionary<string, string>
    Constraints for all workload machines in models.
    ModelDefault Dictionary<string, string>
    Configuration options to be set for all models.
    Name string
    Password string
    Admin password for the controller.
    StoragePool ControllerStoragePool
    Options for the initial storage pool
    Username string
    Admin username for the controller.
    AgentVersion string
    The version of agent binaries.
    ApiAddresses []string
    API addresses of the controller.
    BootstrapBase string
    The base for the bootstrap machine.
    BootstrapConfig map[string]string
    Configuration options that apply during the bootstrap process.
    BootstrapConstraints map[string]string
    Constraints for the bootstrap machine.
    CaCert string
    CA certificate for the controller.
    Cloud ControllerCloudArgs
    The cloud where the controller will operate.
    CloudCredential ControllerCloudCredentialArgs
    Cloud credentials to use for bootstrapping the controller.
    ControllerConfig map[string]string
    Configuration options for the bootstrapped controller. Note that removing a key from this map will not unset it in the controller, instead it will be left unchanged on the controller.
    ControllerModelConfig map[string]string
    Configuration options to be set for the controller model.
    ControllerUuid string
    The UUID of the controller.
    DestroyFlags ControllerDestroyFlagsArgs
    Additional flags for destroying the controller. Changing any of these values will require applying before they can be taken into account during destroy.
    JujuBinary string
    The path to the juju CLI binary. If you have installed Juju as a snap, use the path /snap/juju/current/bin/juju to avoid snap confinement issues.
    ModelConstraints map[string]string
    Constraints for all workload machines in models.
    ModelDefault map[string]string
    Configuration options to be set for all models.
    Name string
    Password string
    Admin password for the controller.
    StoragePool ControllerStoragePoolArgs
    Options for the initial storage pool
    Username string
    Admin username for the controller.
    agentVersion String
    The version of agent binaries.
    apiAddresses List<String>
    API addresses of the controller.
    bootstrapBase String
    The base for the bootstrap machine.
    bootstrapConfig Map<String,String>
    Configuration options that apply during the bootstrap process.
    bootstrapConstraints Map<String,String>
    Constraints for the bootstrap machine.
    caCert String
    CA certificate for the controller.
    cloud ControllerCloud
    The cloud where the controller will operate.
    cloudCredential ControllerCloudCredential
    Cloud credentials to use for bootstrapping the controller.
    controllerConfig Map<String,String>
    Configuration options for the bootstrapped controller. Note that removing a key from this map will not unset it in the controller, instead it will be left unchanged on the controller.
    controllerModelConfig Map<String,String>
    Configuration options to be set for the controller model.
    controllerUuid String
    The UUID of the controller.
    destroyFlags ControllerDestroyFlags
    Additional flags for destroying the controller. Changing any of these values will require applying before they can be taken into account during destroy.
    jujuBinary String
    The path to the juju CLI binary. If you have installed Juju as a snap, use the path /snap/juju/current/bin/juju to avoid snap confinement issues.
    modelConstraints Map<String,String>
    Constraints for all workload machines in models.
    modelDefault Map<String,String>
    Configuration options to be set for all models.
    name String
    password String
    Admin password for the controller.
    storagePool ControllerStoragePool
    Options for the initial storage pool
    username String
    Admin username for the controller.
    agentVersion string
    The version of agent binaries.
    apiAddresses string[]
    API addresses of the controller.
    bootstrapBase string
    The base for the bootstrap machine.
    bootstrapConfig {[key: string]: string}
    Configuration options that apply during the bootstrap process.
    bootstrapConstraints {[key: string]: string}
    Constraints for the bootstrap machine.
    caCert string
    CA certificate for the controller.
    cloud ControllerCloud
    The cloud where the controller will operate.
    cloudCredential ControllerCloudCredential
    Cloud credentials to use for bootstrapping the controller.
    controllerConfig {[key: string]: string}
    Configuration options for the bootstrapped controller. Note that removing a key from this map will not unset it in the controller, instead it will be left unchanged on the controller.
    controllerModelConfig {[key: string]: string}
    Configuration options to be set for the controller model.
    controllerUuid string
    The UUID of the controller.
    destroyFlags ControllerDestroyFlags
    Additional flags for destroying the controller. Changing any of these values will require applying before they can be taken into account during destroy.
    jujuBinary string
    The path to the juju CLI binary. If you have installed Juju as a snap, use the path /snap/juju/current/bin/juju to avoid snap confinement issues.
    modelConstraints {[key: string]: string}
    Constraints for all workload machines in models.
    modelDefault {[key: string]: string}
    Configuration options to be set for all models.
    name string
    password string
    Admin password for the controller.
    storagePool ControllerStoragePool
    Options for the initial storage pool
    username string
    Admin username for the controller.
    agent_version str
    The version of agent binaries.
    api_addresses Sequence[str]
    API addresses of the controller.
    bootstrap_base str
    The base for the bootstrap machine.
    bootstrap_config Mapping[str, str]
    Configuration options that apply during the bootstrap process.
    bootstrap_constraints Mapping[str, str]
    Constraints for the bootstrap machine.
    ca_cert str
    CA certificate for the controller.
    cloud ControllerCloudArgs
    The cloud where the controller will operate.
    cloud_credential ControllerCloudCredentialArgs
    Cloud credentials to use for bootstrapping the controller.
    controller_config Mapping[str, str]
    Configuration options for the bootstrapped controller. Note that removing a key from this map will not unset it in the controller, instead it will be left unchanged on the controller.
    controller_model_config Mapping[str, str]
    Configuration options to be set for the controller model.
    controller_uuid str
    The UUID of the controller.
    destroy_flags ControllerDestroyFlagsArgs
    Additional flags for destroying the controller. Changing any of these values will require applying before they can be taken into account during destroy.
    juju_binary str
    The path to the juju CLI binary. If you have installed Juju as a snap, use the path /snap/juju/current/bin/juju to avoid snap confinement issues.
    model_constraints Mapping[str, str]
    Constraints for all workload machines in models.
    model_default Mapping[str, str]
    Configuration options to be set for all models.
    name str
    password str
    Admin password for the controller.
    storage_pool ControllerStoragePoolArgs
    Options for the initial storage pool
    username str
    Admin username for the controller.
    agentVersion String
    The version of agent binaries.
    apiAddresses List<String>
    API addresses of the controller.
    bootstrapBase String
    The base for the bootstrap machine.
    bootstrapConfig Map<String>
    Configuration options that apply during the bootstrap process.
    bootstrapConstraints Map<String>
    Constraints for the bootstrap machine.
    caCert String
    CA certificate for the controller.
    cloud Property Map
    The cloud where the controller will operate.
    cloudCredential Property Map
    Cloud credentials to use for bootstrapping the controller.
    controllerConfig Map<String>
    Configuration options for the bootstrapped controller. Note that removing a key from this map will not unset it in the controller, instead it will be left unchanged on the controller.
    controllerModelConfig Map<String>
    Configuration options to be set for the controller model.
    controllerUuid String
    The UUID of the controller.
    destroyFlags Property Map
    Additional flags for destroying the controller. Changing any of these values will require applying before they can be taken into account during destroy.
    jujuBinary String
    The path to the juju CLI binary. If you have installed Juju as a snap, use the path /snap/juju/current/bin/juju to avoid snap confinement issues.
    modelConstraints Map<String>
    Constraints for all workload machines in models.
    modelDefault Map<String>
    Configuration options to be set for all models.
    name String
    password String
    Admin password for the controller.
    storagePool Property Map
    Options for the initial storage pool
    username String
    Admin username for the controller.

    Supporting Types

    ControllerCloud, ControllerCloudArgs

    AuthTypes List<string>
    The authentication type(s) supported by the cloud.
    Name string
    The name of the cloud
    Type string
    The type of the cloud .
    CaCertificates List<string>
    CA certificates for the cloud.
    Config Dictionary<string, string>
    Configuration options for the cloud.
    Endpoint string
    The API endpoint for the cloud.
    HostCloudRegion string
    The host cloud region for the cloud.
    Region ControllerCloudRegion
    The cloud region where the controller will operate.
    AuthTypes []string
    The authentication type(s) supported by the cloud.
    Name string
    The name of the cloud
    Type string
    The type of the cloud .
    CaCertificates []string
    CA certificates for the cloud.
    Config map[string]string
    Configuration options for the cloud.
    Endpoint string
    The API endpoint for the cloud.
    HostCloudRegion string
    The host cloud region for the cloud.
    Region ControllerCloudRegion
    The cloud region where the controller will operate.
    authTypes List<String>
    The authentication type(s) supported by the cloud.
    name String
    The name of the cloud
    type String
    The type of the cloud .
    caCertificates List<String>
    CA certificates for the cloud.
    config Map<String,String>
    Configuration options for the cloud.
    endpoint String
    The API endpoint for the cloud.
    hostCloudRegion String
    The host cloud region for the cloud.
    region ControllerCloudRegion
    The cloud region where the controller will operate.
    authTypes string[]
    The authentication type(s) supported by the cloud.
    name string
    The name of the cloud
    type string
    The type of the cloud .
    caCertificates string[]
    CA certificates for the cloud.
    config {[key: string]: string}
    Configuration options for the cloud.
    endpoint string
    The API endpoint for the cloud.
    hostCloudRegion string
    The host cloud region for the cloud.
    region ControllerCloudRegion
    The cloud region where the controller will operate.
    auth_types Sequence[str]
    The authentication type(s) supported by the cloud.
    name str
    The name of the cloud
    type str
    The type of the cloud .
    ca_certificates Sequence[str]
    CA certificates for the cloud.
    config Mapping[str, str]
    Configuration options for the cloud.
    endpoint str
    The API endpoint for the cloud.
    host_cloud_region str
    The host cloud region for the cloud.
    region ControllerCloudRegion
    The cloud region where the controller will operate.
    authTypes List<String>
    The authentication type(s) supported by the cloud.
    name String
    The name of the cloud
    type String
    The type of the cloud .
    caCertificates List<String>
    CA certificates for the cloud.
    config Map<String>
    Configuration options for the cloud.
    endpoint String
    The API endpoint for the cloud.
    hostCloudRegion String
    The host cloud region for the cloud.
    region Property Map
    The cloud region where the controller will operate.

    ControllerCloudCredential, ControllerCloudCredentialArgs

    Attributes Dictionary<string, string>
    Authentication attributes (key-value pairs specific to the auth type).
    AuthType string
    The authentication type (e.g., 'userpass', 'oauth2', 'access-key').
    Name string
    The name of the credential.
    Attributes map[string]string
    Authentication attributes (key-value pairs specific to the auth type).
    AuthType string
    The authentication type (e.g., 'userpass', 'oauth2', 'access-key').
    Name string
    The name of the credential.
    attributes Map<String,String>
    Authentication attributes (key-value pairs specific to the auth type).
    authType String
    The authentication type (e.g., 'userpass', 'oauth2', 'access-key').
    name String
    The name of the credential.
    attributes {[key: string]: string}
    Authentication attributes (key-value pairs specific to the auth type).
    authType string
    The authentication type (e.g., 'userpass', 'oauth2', 'access-key').
    name string
    The name of the credential.
    attributes Mapping[str, str]
    Authentication attributes (key-value pairs specific to the auth type).
    auth_type str
    The authentication type (e.g., 'userpass', 'oauth2', 'access-key').
    name str
    The name of the credential.
    attributes Map<String>
    Authentication attributes (key-value pairs specific to the auth type).
    authType String
    The authentication type (e.g., 'userpass', 'oauth2', 'access-key').
    name String
    The name of the credential.

    ControllerCloudRegion, ControllerCloudRegionArgs

    Name string
    The name of the region.
    Endpoint string
    The API endpoint for the region.
    IdentityEndpoint string
    The identity endpoint for the region.
    StorageEndpoint string
    The storage endpoint for the region.
    Name string
    The name of the region.
    Endpoint string
    The API endpoint for the region.
    IdentityEndpoint string
    The identity endpoint for the region.
    StorageEndpoint string
    The storage endpoint for the region.
    name String
    The name of the region.
    endpoint String
    The API endpoint for the region.
    identityEndpoint String
    The identity endpoint for the region.
    storageEndpoint String
    The storage endpoint for the region.
    name string
    The name of the region.
    endpoint string
    The API endpoint for the region.
    identityEndpoint string
    The identity endpoint for the region.
    storageEndpoint string
    The storage endpoint for the region.
    name str
    The name of the region.
    endpoint str
    The API endpoint for the region.
    identity_endpoint str
    The identity endpoint for the region.
    storage_endpoint str
    The storage endpoint for the region.
    name String
    The name of the region.
    endpoint String
    The API endpoint for the region.
    identityEndpoint String
    The identity endpoint for the region.
    storageEndpoint String
    The storage endpoint for the region.

    ControllerDestroyFlags, ControllerDestroyFlagsArgs

    DestroyAllModels bool
    Destroy all models in the controller.
    DestroyStorage bool
    Destroy all storage instances managed by the controller.
    Force bool
    Force destroy models ignoring any errors.
    ModelTimeout double
    Timeout for each step of force model destruction.
    ReleaseStorage bool
    Release all storage instances from management of the controller, without destroying them.
    DestroyAllModels bool
    Destroy all models in the controller.
    DestroyStorage bool
    Destroy all storage instances managed by the controller.
    Force bool
    Force destroy models ignoring any errors.
    ModelTimeout float64
    Timeout for each step of force model destruction.
    ReleaseStorage bool
    Release all storage instances from management of the controller, without destroying them.
    destroyAllModels Boolean
    Destroy all models in the controller.
    destroyStorage Boolean
    Destroy all storage instances managed by the controller.
    force Boolean
    Force destroy models ignoring any errors.
    modelTimeout Double
    Timeout for each step of force model destruction.
    releaseStorage Boolean
    Release all storage instances from management of the controller, without destroying them.
    destroyAllModels boolean
    Destroy all models in the controller.
    destroyStorage boolean
    Destroy all storage instances managed by the controller.
    force boolean
    Force destroy models ignoring any errors.
    modelTimeout number
    Timeout for each step of force model destruction.
    releaseStorage boolean
    Release all storage instances from management of the controller, without destroying them.
    destroy_all_models bool
    Destroy all models in the controller.
    destroy_storage bool
    Destroy all storage instances managed by the controller.
    force bool
    Force destroy models ignoring any errors.
    model_timeout float
    Timeout for each step of force model destruction.
    release_storage bool
    Release all storage instances from management of the controller, without destroying them.
    destroyAllModels Boolean
    Destroy all models in the controller.
    destroyStorage Boolean
    Destroy all storage instances managed by the controller.
    force Boolean
    Force destroy models ignoring any errors.
    modelTimeout Number
    Timeout for each step of force model destruction.
    releaseStorage Boolean
    Release all storage instances from management of the controller, without destroying them.

    ControllerStoragePool, ControllerStoragePoolArgs

    Name string
    The name of the storage pool.
    Type string
    The storage pool type
    Attributes Dictionary<string, string>
    Additional storage pool attributes.
    Name string
    The name of the storage pool.
    Type string
    The storage pool type
    Attributes map[string]string
    Additional storage pool attributes.
    name String
    The name of the storage pool.
    type String
    The storage pool type
    attributes Map<String,String>
    Additional storage pool attributes.
    name string
    The name of the storage pool.
    type string
    The storage pool type
    attributes {[key: string]: string}
    Additional storage pool attributes.
    name str
    The name of the storage pool.
    type str
    The storage pool type
    attributes Mapping[str, str]
    Additional storage pool attributes.
    name String
    The name of the storage pool.
    type String
    The storage pool type
    attributes Map<String>
    Additional storage pool attributes.

    Package Details

    Repository
    juju juju/terraform-provider-juju
    License
    Notes
    This Pulumi package is based on the juju Terraform Provider.
    juju logo
    Viewing docs for juju 1.3.1
    published on Tuesday, Mar 10, 2026 by juju
      Try Pulumi Cloud free. Your team will thank you.