@pulumi/vsphere
Version:
A Pulumi package for creating vsphere resources
194 lines (193 loc) • 8.45 kB
TypeScript
import * as pulumi from "@pulumi/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
*
* ```typescript
* 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;
* ```
*/
export declare function getFolder(args: GetFolderArgs, opts?: pulumi.InvokeOptions): Promise<GetFolderResult>;
/**
* A collection of arguments for invoking getFolder.
*/
export interface GetFolderArgs {
/**
* 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;
}
/**
* A collection of values returned by getFolder.
*/
export interface GetFolderResult {
/**
* The provider-assigned unique ID for this managed resource.
*/
readonly id: string;
readonly path: string;
}
/**
* 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
*
* ```typescript
* 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;
* ```
*/
export declare function getFolderOutput(args: GetFolderOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetFolderResult>;
/**
* A collection of arguments for invoking getFolder.
*/
export interface GetFolderOutputArgs {
/**
* 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: pulumi.Input<string>;
}