1. Packages
  2. Vsphere Provider
  3. API Docs
  4. getFolder
vSphere v4.16.1 published on Wednesday, Oct 22, 2025 by Pulumi

vsphere.getFolder

Start a Neo task
Explain and create a vsphere.getFolder resource
vsphere logo
vSphere v4.16.1 published on Wednesday, Oct 22, 2025 by Pulumi

    The vsphere.Folder data source can be used to get the general attributes of a vSphere inventory folder. The data source supports creating folders of the 5 major types - datacenter folders, host and cluster folders, virtual machine folders, storage folders, and network folders.

    Paths are absolute and must include the datacenter.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as vsphere from "@pulumi/vsphere";
    
    const datacenterFolderFolder = new vsphere.Folder("datacenter_folder", {
        path: "example-datacenter-folder",
        type: "datacenter",
    });
    const datacenterFolder = vsphere.getFolderOutput({
        path: pulumi.interpolate`/${datacenterFolderFolder.path}`,
    });
    const datacenterDatacenter = new vsphere.Datacenter("datacenter", {
        name: "example-datacenter",
        folder: datacenterFolder.apply(datacenterFolder => datacenterFolder.path),
    }, {
        dependsOn: [datacenterFolder],
    });
    const datacenter = vsphere.getDatacenterOutput({
        name: datacenterDatacenter.name,
    });
    const vmFolderFolder = new vsphere.Folder("vm_folder", {
        path: "example-vm-folder",
        type: "vm",
        datacenterId: datacenter.apply(datacenter => datacenter.id),
    });
    const datastoreFolderFolder = new vsphere.Folder("datastore_folder", {
        path: "example-datastore-folder",
        type: "datastore",
        datacenterId: datacenter.apply(datacenter => datacenter.id),
    });
    const networkFolderFolder = new vsphere.Folder("network_folder", {
        path: "example-network-folder",
        type: "network",
        datacenterId: datacenter.apply(datacenter => datacenter.id),
    });
    const hostFolderFolder = new vsphere.Folder("host_folder", {
        path: "example-host-folder",
        type: "host",
        datacenterId: datacenter.apply(datacenter => datacenter.id),
    });
    const vmFolder = vsphere.getFolderOutput({
        path: pulumi.interpolate`/${datacenterFolderFolder.path}/${datacenterDatacenter.name}/vm/${vmFolderFolder.path}`,
    });
    const datastoreFolder = vsphere.getFolderOutput({
        path: pulumi.interpolate`/${datacenterFolderFolder.path}/${datacenterDatacenter.name}/datastore/${datastoreFolderFolder.path}`,
    });
    const networkFolder = vsphere.getFolderOutput({
        path: pulumi.interpolate`/${datacenterFolderFolder.path}/${datacenterDatacenter.name}/network/${networkFolderFolder.path}`,
    });
    const hostFolder = vsphere.getFolderOutput({
        path: pulumi.interpolate`/${datacenterFolderFolder.path}/${datacenterDatacenter.name}/host/${hostFolderFolder.path}`,
    });
    export const vmFolderId = vmFolder.apply(vmFolder => vmFolder.id);
    export const datastoreFolderId = datastoreFolder.apply(datastoreFolder => datastoreFolder.id);
    export const networkFolderId = networkFolder.apply(networkFolder => networkFolder.id);
    export const hostFolderId = hostFolder.apply(hostFolder => hostFolder.id);
    export const datacenterId = datacenter.apply(datacenter => datacenter.id);
    export const datacenterFolderPath = datacenterFolderFolder.path;
    
    import pulumi
    import pulumi_vsphere as vsphere
    
    datacenter_folder_folder = vsphere.Folder("datacenter_folder",
        path="example-datacenter-folder",
        type="datacenter")
    datacenter_folder = vsphere.get_folder_output(path=datacenter_folder_folder.path.apply(lambda path: f"/{path}"))
    datacenter_datacenter = vsphere.Datacenter("datacenter",
        name="example-datacenter",
        folder=datacenter_folder.path,
        opts = pulumi.ResourceOptions(depends_on=[datacenter_folder]))
    datacenter = vsphere.get_datacenter_output(name=datacenter_datacenter.name)
    vm_folder_folder = vsphere.Folder("vm_folder",
        path="example-vm-folder",
        type="vm",
        datacenter_id=datacenter.id)
    datastore_folder_folder = vsphere.Folder("datastore_folder",
        path="example-datastore-folder",
        type="datastore",
        datacenter_id=datacenter.id)
    network_folder_folder = vsphere.Folder("network_folder",
        path="example-network-folder",
        type="network",
        datacenter_id=datacenter.id)
    host_folder_folder = vsphere.Folder("host_folder",
        path="example-host-folder",
        type="host",
        datacenter_id=datacenter.id)
    vm_folder = vsphere.get_folder_output(path=pulumi.Output.all(
        datacenterFolderFolderPath=datacenter_folder_folder.path,
        name=datacenter_datacenter.name,
        vmFolderFolderPath=vm_folder_folder.path
    ).apply(lambda resolved_outputs: f"/{resolved_outputs['datacenterFolderFolderPath']}/{resolved_outputs['name']}/vm/{resolved_outputs['vmFolderFolderPath']}")
    )
    datastore_folder = vsphere.get_folder_output(path=pulumi.Output.all(
        datacenterFolderFolderPath=datacenter_folder_folder.path,
        name=datacenter_datacenter.name,
        datastoreFolderFolderPath=datastore_folder_folder.path
    ).apply(lambda resolved_outputs: f"/{resolved_outputs['datacenterFolderFolderPath']}/{resolved_outputs['name']}/datastore/{resolved_outputs['datastoreFolderFolderPath']}")
    )
    network_folder = vsphere.get_folder_output(path=pulumi.Output.all(
        datacenterFolderFolderPath=datacenter_folder_folder.path,
        name=datacenter_datacenter.name,
        networkFolderFolderPath=network_folder_folder.path
    ).apply(lambda resolved_outputs: f"/{resolved_outputs['datacenterFolderFolderPath']}/{resolved_outputs['name']}/network/{resolved_outputs['networkFolderFolderPath']}")
    )
    host_folder = vsphere.get_folder_output(path=pulumi.Output.all(
        datacenterFolderFolderPath=datacenter_folder_folder.path,
        name=datacenter_datacenter.name,
        hostFolderFolderPath=host_folder_folder.path
    ).apply(lambda resolved_outputs: f"/{resolved_outputs['datacenterFolderFolderPath']}/{resolved_outputs['name']}/host/{resolved_outputs['hostFolderFolderPath']}")
    )
    pulumi.export("vmFolderId", vm_folder.id)
    pulumi.export("datastoreFolderId", datastore_folder.id)
    pulumi.export("networkFolderId", network_folder.id)
    pulumi.export("hostFolderId", host_folder.id)
    pulumi.export("datacenterId", datacenter.id)
    pulumi.export("datacenterFolderPath", datacenter_folder_folder.path)
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/pulumi/pulumi-vsphere/sdk/v4/go/vsphere"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		datacenterFolderFolder, err := vsphere.NewFolder(ctx, "datacenter_folder", &vsphere.FolderArgs{
    			Path: pulumi.String("example-datacenter-folder"),
    			Type: pulumi.String("datacenter"),
    		})
    		if err != nil {
    			return err
    		}
    		datacenterFolder := vsphere.LookupFolderOutput(ctx, vsphere.GetFolderOutputArgs{
    			Path: datacenterFolderFolder.Path.ApplyT(func(path string) (string, error) {
    				return fmt.Sprintf("/%v", path), nil
    			}).(pulumi.StringOutput),
    		}, nil)
    		datacenterDatacenter, err := vsphere.NewDatacenter(ctx, "datacenter", &vsphere.DatacenterArgs{
    			Name: pulumi.String("example-datacenter"),
    			Folder: pulumi.String(datacenterFolder.ApplyT(func(datacenterFolder vsphere.GetFolderResult) (*string, error) {
    				return &datacenterFolder.Path, nil
    			}).(pulumi.StringPtrOutput)),
    		}, pulumi.DependsOn([]pulumi.Resource{
    			datacenterFolder,
    		}))
    		if err != nil {
    			return err
    		}
    		datacenter := vsphere.LookupDatacenterOutput(ctx, vsphere.GetDatacenterOutputArgs{
    			Name: datacenterDatacenter.Name,
    		}, nil)
    		vmFolderFolder, err := vsphere.NewFolder(ctx, "vm_folder", &vsphere.FolderArgs{
    			Path: pulumi.String("example-vm-folder"),
    			Type: pulumi.String("vm"),
    			DatacenterId: pulumi.String(datacenter.ApplyT(func(datacenter vsphere.GetDatacenterResult) (*string, error) {
    				return &datacenter.Id, nil
    			}).(pulumi.StringPtrOutput)),
    		})
    		if err != nil {
    			return err
    		}
    		datastoreFolderFolder, err := vsphere.NewFolder(ctx, "datastore_folder", &vsphere.FolderArgs{
    			Path: pulumi.String("example-datastore-folder"),
    			Type: pulumi.String("datastore"),
    			DatacenterId: pulumi.String(datacenter.ApplyT(func(datacenter vsphere.GetDatacenterResult) (*string, error) {
    				return &datacenter.Id, nil
    			}).(pulumi.StringPtrOutput)),
    		})
    		if err != nil {
    			return err
    		}
    		networkFolderFolder, err := vsphere.NewFolder(ctx, "network_folder", &vsphere.FolderArgs{
    			Path: pulumi.String("example-network-folder"),
    			Type: pulumi.String("network"),
    			DatacenterId: pulumi.String(datacenter.ApplyT(func(datacenter vsphere.GetDatacenterResult) (*string, error) {
    				return &datacenter.Id, nil
    			}).(pulumi.StringPtrOutput)),
    		})
    		if err != nil {
    			return err
    		}
    		hostFolderFolder, err := vsphere.NewFolder(ctx, "host_folder", &vsphere.FolderArgs{
    			Path: pulumi.String("example-host-folder"),
    			Type: pulumi.String("host"),
    			DatacenterId: pulumi.String(datacenter.ApplyT(func(datacenter vsphere.GetDatacenterResult) (*string, error) {
    				return &datacenter.Id, nil
    			}).(pulumi.StringPtrOutput)),
    		})
    		if err != nil {
    			return err
    		}
    		vmFolder := vsphere.LookupFolderOutput(ctx, vsphere.GetFolderOutputArgs{
    			Path: pulumi.All(datacenterFolderFolder.Path, datacenterDatacenter.Name, vmFolderFolder.Path).ApplyT(func(_args []interface{}) (string, error) {
    				datacenterFolderFolderPath := _args[0].(string)
    				name := _args[1].(string)
    				vmFolderFolderPath := _args[2].(string)
    				return fmt.Sprintf("/%v/%v/vm/%v", datacenterFolderFolderPath, name, vmFolderFolderPath), nil
    			}).(pulumi.StringOutput),
    		}, nil)
    		datastoreFolder := vsphere.LookupFolderOutput(ctx, vsphere.GetFolderOutputArgs{
    			Path: pulumi.All(datacenterFolderFolder.Path, datacenterDatacenter.Name, datastoreFolderFolder.Path).ApplyT(func(_args []interface{}) (string, error) {
    				datacenterFolderFolderPath := _args[0].(string)
    				name := _args[1].(string)
    				datastoreFolderFolderPath := _args[2].(string)
    				return fmt.Sprintf("/%v/%v/datastore/%v", datacenterFolderFolderPath, name, datastoreFolderFolderPath), nil
    			}).(pulumi.StringOutput),
    		}, nil)
    		networkFolder := vsphere.LookupFolderOutput(ctx, vsphere.GetFolderOutputArgs{
    			Path: pulumi.All(datacenterFolderFolder.Path, datacenterDatacenter.Name, networkFolderFolder.Path).ApplyT(func(_args []interface{}) (string, error) {
    				datacenterFolderFolderPath := _args[0].(string)
    				name := _args[1].(string)
    				networkFolderFolderPath := _args[2].(string)
    				return fmt.Sprintf("/%v/%v/network/%v", datacenterFolderFolderPath, name, networkFolderFolderPath), nil
    			}).(pulumi.StringOutput),
    		}, nil)
    		hostFolder := vsphere.LookupFolderOutput(ctx, vsphere.GetFolderOutputArgs{
    			Path: pulumi.All(datacenterFolderFolder.Path, datacenterDatacenter.Name, hostFolderFolder.Path).ApplyT(func(_args []interface{}) (string, error) {
    				datacenterFolderFolderPath := _args[0].(string)
    				name := _args[1].(string)
    				hostFolderFolderPath := _args[2].(string)
    				return fmt.Sprintf("/%v/%v/host/%v", datacenterFolderFolderPath, name, hostFolderFolderPath), nil
    			}).(pulumi.StringOutput),
    		}, nil)
    		ctx.Export("vmFolderId", vmFolder.ApplyT(func(vmFolder vsphere.GetFolderResult) (*string, error) {
    			return &vmFolder.Id, nil
    		}).(pulumi.StringPtrOutput))
    		ctx.Export("datastoreFolderId", datastoreFolder.ApplyT(func(datastoreFolder vsphere.GetFolderResult) (*string, error) {
    			return &datastoreFolder.Id, nil
    		}).(pulumi.StringPtrOutput))
    		ctx.Export("networkFolderId", networkFolder.ApplyT(func(networkFolder vsphere.GetFolderResult) (*string, error) {
    			return &networkFolder.Id, nil
    		}).(pulumi.StringPtrOutput))
    		ctx.Export("hostFolderId", hostFolder.ApplyT(func(hostFolder vsphere.GetFolderResult) (*string, error) {
    			return &hostFolder.Id, nil
    		}).(pulumi.StringPtrOutput))
    		ctx.Export("datacenterId", datacenter.ApplyT(func(datacenter vsphere.GetDatacenterResult) (*string, error) {
    			return &datacenter.Id, nil
    		}).(pulumi.StringPtrOutput))
    		ctx.Export("datacenterFolderPath", datacenterFolderFolder.Path)
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using VSphere = Pulumi.VSphere;
    
    return await Deployment.RunAsync(() => 
    {
        var datacenterFolderFolder = new VSphere.Folder("datacenter_folder", new()
        {
            Path = "example-datacenter-folder",
            Type = "datacenter",
        });
    
        var datacenterFolder = VSphere.GetFolder.Invoke(new()
        {
            Path = $"/{datacenterFolderFolder.Path}",
        });
    
        var datacenterDatacenter = new VSphere.Datacenter("datacenter", new()
        {
            Name = "example-datacenter",
            Folder = datacenterFolder.Apply(getFolderResult => getFolderResult.Path),
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                datacenterFolder,
            },
        });
    
        var datacenter = VSphere.GetDatacenter.Invoke(new()
        {
            Name = datacenterDatacenter.Name,
        });
    
        var vmFolderFolder = new VSphere.Folder("vm_folder", new()
        {
            Path = "example-vm-folder",
            Type = "vm",
            DatacenterId = datacenter.Apply(getDatacenterResult => getDatacenterResult.Id),
        });
    
        var datastoreFolderFolder = new VSphere.Folder("datastore_folder", new()
        {
            Path = "example-datastore-folder",
            Type = "datastore",
            DatacenterId = datacenter.Apply(getDatacenterResult => getDatacenterResult.Id),
        });
    
        var networkFolderFolder = new VSphere.Folder("network_folder", new()
        {
            Path = "example-network-folder",
            Type = "network",
            DatacenterId = datacenter.Apply(getDatacenterResult => getDatacenterResult.Id),
        });
    
        var hostFolderFolder = new VSphere.Folder("host_folder", new()
        {
            Path = "example-host-folder",
            Type = "host",
            DatacenterId = datacenter.Apply(getDatacenterResult => getDatacenterResult.Id),
        });
    
        var vmFolder = VSphere.GetFolder.Invoke(new()
        {
            Path = $"/{datacenterFolderFolder.Path}/{datacenterDatacenter.Name}/vm/{vmFolderFolder.Path}",
        });
    
        var datastoreFolder = VSphere.GetFolder.Invoke(new()
        {
            Path = $"/{datacenterFolderFolder.Path}/{datacenterDatacenter.Name}/datastore/{datastoreFolderFolder.Path}",
        });
    
        var networkFolder = VSphere.GetFolder.Invoke(new()
        {
            Path = $"/{datacenterFolderFolder.Path}/{datacenterDatacenter.Name}/network/{networkFolderFolder.Path}",
        });
    
        var hostFolder = VSphere.GetFolder.Invoke(new()
        {
            Path = $"/{datacenterFolderFolder.Path}/{datacenterDatacenter.Name}/host/{hostFolderFolder.Path}",
        });
    
        return new Dictionary<string, object?>
        {
            ["vmFolderId"] = vmFolder.Apply(getFolderResult => getFolderResult.Id),
            ["datastoreFolderId"] = datastoreFolder.Apply(getFolderResult => getFolderResult.Id),
            ["networkFolderId"] = networkFolder.Apply(getFolderResult => getFolderResult.Id),
            ["hostFolderId"] = hostFolder.Apply(getFolderResult => getFolderResult.Id),
            ["datacenterId"] = datacenter.Apply(getDatacenterResult => getDatacenterResult.Id),
            ["datacenterFolderPath"] = datacenterFolderFolder.Path,
        };
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.vsphere.Folder;
    import com.pulumi.vsphere.FolderArgs;
    import com.pulumi.vsphere.VsphereFunctions;
    import com.pulumi.vsphere.inputs.GetFolderArgs;
    import com.pulumi.vsphere.Datacenter;
    import com.pulumi.vsphere.DatacenterArgs;
    import com.pulumi.vsphere.inputs.GetDatacenterArgs;
    import com.pulumi.resources.CustomResourceOptions;
    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 datacenterFolderFolder = new Folder("datacenterFolderFolder", FolderArgs.builder()
                .path("example-datacenter-folder")
                .type("datacenter")
                .build());
    
            final var datacenterFolder = VsphereFunctions.getFolder(GetFolderArgs.builder()
                .path(datacenterFolderFolder.path().applyValue(_path -> String.format("/%s", _path)))
                .build());
    
            var datacenterDatacenter = new Datacenter("datacenterDatacenter", DatacenterArgs.builder()
                .name("example-datacenter")
                .folder(datacenterFolder.applyValue(_datacenterFolder -> _datacenterFolder.path()))
                .build(), CustomResourceOptions.builder()
                    .dependsOn(datacenterFolder)
                    .build());
    
            final var datacenter = VsphereFunctions.getDatacenter(GetDatacenterArgs.builder()
                .name(datacenterDatacenter.name())
                .build());
    
            var vmFolderFolder = new Folder("vmFolderFolder", FolderArgs.builder()
                .path("example-vm-folder")
                .type("vm")
                .datacenterId(datacenter.applyValue(_datacenter -> _datacenter.id()))
                .build());
    
            var datastoreFolderFolder = new Folder("datastoreFolderFolder", FolderArgs.builder()
                .path("example-datastore-folder")
                .type("datastore")
                .datacenterId(datacenter.applyValue(_datacenter -> _datacenter.id()))
                .build());
    
            var networkFolderFolder = new Folder("networkFolderFolder", FolderArgs.builder()
                .path("example-network-folder")
                .type("network")
                .datacenterId(datacenter.applyValue(_datacenter -> _datacenter.id()))
                .build());
    
            var hostFolderFolder = new Folder("hostFolderFolder", FolderArgs.builder()
                .path("example-host-folder")
                .type("host")
                .datacenterId(datacenter.applyValue(_datacenter -> _datacenter.id()))
                .build());
    
            final var vmFolder = VsphereFunctions.getFolder(GetFolderArgs.builder()
                .path(Output.tuple(datacenterFolderFolder.path(), datacenterDatacenter.name(), vmFolderFolder.path()).applyValue(values -> {
                    var datacenterFolderFolderPath = values.t1;
                    var name = values.t2;
                    var vmFolderFolderPath = values.t3;
                    return String.format("/%s/%s/vm/%s", datacenterFolderFolderPath,name,vmFolderFolderPath);
                }))
                .build());
    
            final var datastoreFolder = VsphereFunctions.getFolder(GetFolderArgs.builder()
                .path(Output.tuple(datacenterFolderFolder.path(), datacenterDatacenter.name(), datastoreFolderFolder.path()).applyValue(values -> {
                    var datacenterFolderFolderPath = values.t1;
                    var name = values.t2;
                    var datastoreFolderFolderPath = values.t3;
                    return String.format("/%s/%s/datastore/%s", datacenterFolderFolderPath,name,datastoreFolderFolderPath);
                }))
                .build());
    
            final var networkFolder = VsphereFunctions.getFolder(GetFolderArgs.builder()
                .path(Output.tuple(datacenterFolderFolder.path(), datacenterDatacenter.name(), networkFolderFolder.path()).applyValue(values -> {
                    var datacenterFolderFolderPath = values.t1;
                    var name = values.t2;
                    var networkFolderFolderPath = values.t3;
                    return String.format("/%s/%s/network/%s", datacenterFolderFolderPath,name,networkFolderFolderPath);
                }))
                .build());
    
            final var hostFolder = VsphereFunctions.getFolder(GetFolderArgs.builder()
                .path(Output.tuple(datacenterFolderFolder.path(), datacenterDatacenter.name(), hostFolderFolder.path()).applyValue(values -> {
                    var datacenterFolderFolderPath = values.t1;
                    var name = values.t2;
                    var hostFolderFolderPath = values.t3;
                    return String.format("/%s/%s/host/%s", datacenterFolderFolderPath,name,hostFolderFolderPath);
                }))
                .build());
    
            ctx.export("vmFolderId", vmFolder.applyValue(_vmFolder -> _vmFolder.id()));
            ctx.export("datastoreFolderId", datastoreFolder.applyValue(_datastoreFolder -> _datastoreFolder.id()));
            ctx.export("networkFolderId", networkFolder.applyValue(_networkFolder -> _networkFolder.id()));
            ctx.export("hostFolderId", hostFolder.applyValue(_hostFolder -> _hostFolder.id()));
            ctx.export("datacenterId", datacenter.applyValue(_datacenter -> _datacenter.id()));
            ctx.export("datacenterFolderPath", datacenterFolderFolder.path());
        }
    }
    
    resources:
      datacenterFolderFolder:
        type: vsphere:Folder
        name: datacenter_folder
        properties:
          path: example-datacenter-folder
          type: datacenter
      datacenterDatacenter:
        type: vsphere:Datacenter
        name: datacenter
        properties:
          name: example-datacenter
          folder: ${datacenterFolder.path}
        options:
          dependsOn:
            - ${datacenterFolder}
      vmFolderFolder:
        type: vsphere:Folder
        name: vm_folder
        properties:
          path: example-vm-folder
          type: vm
          datacenterId: ${datacenter.id}
      datastoreFolderFolder:
        type: vsphere:Folder
        name: datastore_folder
        properties:
          path: example-datastore-folder
          type: datastore
          datacenterId: ${datacenter.id}
      networkFolderFolder:
        type: vsphere:Folder
        name: network_folder
        properties:
          path: example-network-folder
          type: network
          datacenterId: ${datacenter.id}
      hostFolderFolder:
        type: vsphere:Folder
        name: host_folder
        properties:
          path: example-host-folder
          type: host
          datacenterId: ${datacenter.id}
    variables:
      datacenterFolder:
        fn::invoke:
          function: vsphere:getFolder
          arguments:
            path: /${datacenterFolderFolder.path}
      datacenter:
        fn::invoke:
          function: vsphere:getDatacenter
          arguments:
            name: ${datacenterDatacenter.name}
      vmFolder:
        fn::invoke:
          function: vsphere:getFolder
          arguments:
            path: /${datacenterFolderFolder.path}/${datacenterDatacenter.name}/vm/${vmFolderFolder.path}
      datastoreFolder:
        fn::invoke:
          function: vsphere:getFolder
          arguments:
            path: /${datacenterFolderFolder.path}/${datacenterDatacenter.name}/datastore/${datastoreFolderFolder.path}
      networkFolder:
        fn::invoke:
          function: vsphere:getFolder
          arguments:
            path: /${datacenterFolderFolder.path}/${datacenterDatacenter.name}/network/${networkFolderFolder.path}
      hostFolder:
        fn::invoke:
          function: vsphere:getFolder
          arguments:
            path: /${datacenterFolderFolder.path}/${datacenterDatacenter.name}/host/${hostFolderFolder.path}
    outputs:
      vmFolderId: ${vmFolder.id}
      datastoreFolderId: ${datastoreFolder.id}
      networkFolderId: ${networkFolder.id}
      hostFolderId: ${hostFolder.id}
      datacenterId: ${datacenter.id}
      datacenterFolderPath: ${datacenterFolderFolder.path}
    

    Using getFolder

    Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.

    function getFolder(args: GetFolderArgs, opts?: InvokeOptions): Promise<GetFolderResult>
    function getFolderOutput(args: GetFolderOutputArgs, opts?: InvokeOptions): Output<GetFolderResult>
    def get_folder(path: Optional[str] = None,
                   opts: Optional[InvokeOptions] = None) -> GetFolderResult
    def get_folder_output(path: Optional[pulumi.Input[str]] = None,
                   opts: Optional[InvokeOptions] = None) -> Output[GetFolderResult]
    func LookupFolder(ctx *Context, args *LookupFolderArgs, opts ...InvokeOption) (*LookupFolderResult, error)
    func LookupFolderOutput(ctx *Context, args *LookupFolderOutputArgs, opts ...InvokeOption) LookupFolderResultOutput

    > Note: This function is named LookupFolder in the Go SDK.

    public static class GetFolder 
    {
        public static Task<GetFolderResult> InvokeAsync(GetFolderArgs args, InvokeOptions? opts = null)
        public static Output<GetFolderResult> Invoke(GetFolderInvokeArgs args, InvokeOptions? opts = null)
    }
    public static CompletableFuture<GetFolderResult> getFolder(GetFolderArgs args, InvokeOptions options)
    public static Output<GetFolderResult> getFolder(GetFolderArgs args, InvokeOptions options)
    
    fn::invoke:
      function: vsphere:index/getFolder:getFolder
      arguments:
        # arguments dictionary

    The following arguments are supported:

    Path string

    The absolute path of the folder. For example, given a default datacenter of default-dc, a folder of type vm, and a folder name of example-vm-folder, the resulting path would be /default-dc/vm/example-vm-folder.

    For nested datacenters, include the full hierarchy in the path. For example, if datacenter default-dc is inside folder parent-folder, the path to a VM folder would be /parent-folder/default-dc/vm/example-vm-folder.

    The valid folder types to be used in a path are: vm, host, datacenter, datastore, or network.

    Always include a leading slash in the path.

    Path string

    The absolute path of the folder. For example, given a default datacenter of default-dc, a folder of type vm, and a folder name of example-vm-folder, the resulting path would be /default-dc/vm/example-vm-folder.

    For nested datacenters, include the full hierarchy in the path. For example, if datacenter default-dc is inside folder parent-folder, the path to a VM folder would be /parent-folder/default-dc/vm/example-vm-folder.

    The valid folder types to be used in a path are: vm, host, datacenter, datastore, or network.

    Always include a leading slash in the path.

    path String

    The absolute path of the folder. For example, given a default datacenter of default-dc, a folder of type vm, and a folder name of example-vm-folder, the resulting path would be /default-dc/vm/example-vm-folder.

    For nested datacenters, include the full hierarchy in the path. For example, if datacenter default-dc is inside folder parent-folder, the path to a VM folder would be /parent-folder/default-dc/vm/example-vm-folder.

    The valid folder types to be used in a path are: vm, host, datacenter, datastore, or network.

    Always include a leading slash in the path.

    path string

    The absolute path of the folder. For example, given a default datacenter of default-dc, a folder of type vm, and a folder name of example-vm-folder, the resulting path would be /default-dc/vm/example-vm-folder.

    For nested datacenters, include the full hierarchy in the path. For example, if datacenter default-dc is inside folder parent-folder, the path to a VM folder would be /parent-folder/default-dc/vm/example-vm-folder.

    The valid folder types to be used in a path are: vm, host, datacenter, datastore, or network.

    Always include a leading slash in the path.

    path str

    The absolute path of the folder. For example, given a default datacenter of default-dc, a folder of type vm, and a folder name of example-vm-folder, the resulting path would be /default-dc/vm/example-vm-folder.

    For nested datacenters, include the full hierarchy in the path. For example, if datacenter default-dc is inside folder parent-folder, the path to a VM folder would be /parent-folder/default-dc/vm/example-vm-folder.

    The valid folder types to be used in a path are: vm, host, datacenter, datastore, or network.

    Always include a leading slash in the path.

    path String

    The absolute path of the folder. For example, given a default datacenter of default-dc, a folder of type vm, and a folder name of example-vm-folder, the resulting path would be /default-dc/vm/example-vm-folder.

    For nested datacenters, include the full hierarchy in the path. For example, if datacenter default-dc is inside folder parent-folder, the path to a VM folder would be /parent-folder/default-dc/vm/example-vm-folder.

    The valid folder types to be used in a path are: vm, host, datacenter, datastore, or network.

    Always include a leading slash in the path.

    getFolder Result

    The following output properties are available:

    Id string
    The provider-assigned unique ID for this managed resource.
    Path string
    Id string
    The provider-assigned unique ID for this managed resource.
    Path string
    id String
    The provider-assigned unique ID for this managed resource.
    path String
    id string
    The provider-assigned unique ID for this managed resource.
    path string
    id str
    The provider-assigned unique ID for this managed resource.
    path str
    id String
    The provider-assigned unique ID for this managed resource.
    path String

    Package Details

    Repository
    vSphere pulumi/pulumi-vsphere
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the vsphere Terraform Provider.
    vsphere logo
    vSphere v4.16.1 published on Wednesday, Oct 22, 2025 by Pulumi
      Meet Neo: Your AI Platform Teammate