All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.vsphere.inputs.FolderState Maven / Gradle / Ivy

There is a newer version: 4.13.0-alpha.1731738919
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.vsphere.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class FolderState extends com.pulumi.resources.ResourceArgs {

    public static final FolderState Empty = new FolderState();

    /**
     * Map of custom attribute ids to attribute
     * value strings to set for folder. See [here][docs-setting-custom-attributes]
     * for a reference on how to set values for custom attributes.
     * 
     * [docs-setting-custom-attributes]: /docs/providers/vsphere/r/custom_attribute.html#using-custom-attributes-in-a-supported-resource
     * 
     * > **NOTE:** Custom attributes are unsupported on direct ESXi connections
     * and require vCenter.
     * 
     */
    @Import(name="customAttributes")
    private @Nullable Output> customAttributes;

    /**
     * @return Map of custom attribute ids to attribute
     * value strings to set for folder. See [here][docs-setting-custom-attributes]
     * for a reference on how to set values for custom attributes.
     * 
     * [docs-setting-custom-attributes]: /docs/providers/vsphere/r/custom_attribute.html#using-custom-attributes-in-a-supported-resource
     * 
     * > **NOTE:** Custom attributes are unsupported on direct ESXi connections
     * and require vCenter.
     * 
     */
    public Optional>> customAttributes() {
        return Optional.ofNullable(this.customAttributes);
    }

    /**
     * The ID of the datacenter the folder will be created in.
     * Required for all folder types except for datacenter folders. Forces a new
     * resource if changed.
     * 
     */
    @Import(name="datacenterId")
    private @Nullable Output datacenterId;

    /**
     * @return The ID of the datacenter the folder will be created in.
     * Required for all folder types except for datacenter folders. Forces a new
     * resource if changed.
     * 
     */
    public Optional> datacenterId() {
        return Optional.ofNullable(this.datacenterId);
    }

    /**
     * The path of the folder to be created. This is relative to
     * the root of the type of folder you are creating, and the supplied datacenter.
     * For example, given a default datacenter of `default-dc`, a folder of type
     * `vm` (denoting a virtual machine folder), and a supplied folder of
     * `test-folder`, the resulting path would be
     * `/default-dc/vm/test-folder`.
     * 
     * > **NOTE:** `path` can be modified - the resulting behavior is dependent on
     * what section of `path` you are modifying. If you are modifying the parent (so
     * any part before the last `/`), your folder will be moved to that new parent. If
     * modifying the name (the part after the last `/`), your folder will be renamed.
     * 
     */
    @Import(name="path")
    private @Nullable Output path;

    /**
     * @return The path of the folder to be created. This is relative to
     * the root of the type of folder you are creating, and the supplied datacenter.
     * For example, given a default datacenter of `default-dc`, a folder of type
     * `vm` (denoting a virtual machine folder), and a supplied folder of
     * `test-folder`, the resulting path would be
     * `/default-dc/vm/test-folder`.
     * 
     * > **NOTE:** `path` can be modified - the resulting behavior is dependent on
     * what section of `path` you are modifying. If you are modifying the parent (so
     * any part before the last `/`), your folder will be moved to that new parent. If
     * modifying the name (the part after the last `/`), your folder will be renamed.
     * 
     */
    public Optional> path() {
        return Optional.ofNullable(this.path);
    }

    /**
     * The IDs of any tags to attach to this resource.
     * 
     * > **NOTE:** Tagging support is unsupported on direct ESXi connections and
     * requires vCenter 6.0 or higher.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return The IDs of any tags to attach to this resource.
     * 
     * > **NOTE:** Tagging support is unsupported on direct ESXi connections and
     * requires vCenter 6.0 or higher.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * The type of folder to create. Allowed options are
     * `datacenter` for datacenter folders, `host` for host and cluster folders,
     * `vm` for virtual machine folders, `datastore` for datastore folders, and
     * `network` for network folders. Forces a new resource if changed.
     * 
     */
    @Import(name="type")
    private @Nullable Output type;

    /**
     * @return The type of folder to create. Allowed options are
     * `datacenter` for datacenter folders, `host` for host and cluster folders,
     * `vm` for virtual machine folders, `datastore` for datastore folders, and
     * `network` for network folders. Forces a new resource if changed.
     * 
     */
    public Optional> type() {
        return Optional.ofNullable(this.type);
    }

    private FolderState() {}

    private FolderState(FolderState $) {
        this.customAttributes = $.customAttributes;
        this.datacenterId = $.datacenterId;
        this.path = $.path;
        this.tags = $.tags;
        this.type = $.type;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(FolderState defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private FolderState $;

        public Builder() {
            $ = new FolderState();
        }

        public Builder(FolderState defaults) {
            $ = new FolderState(Objects.requireNonNull(defaults));
        }

        /**
         * @param customAttributes Map of custom attribute ids to attribute
         * value strings to set for folder. See [here][docs-setting-custom-attributes]
         * for a reference on how to set values for custom attributes.
         * 
         * [docs-setting-custom-attributes]: /docs/providers/vsphere/r/custom_attribute.html#using-custom-attributes-in-a-supported-resource
         * 
         * > **NOTE:** Custom attributes are unsupported on direct ESXi connections
         * and require vCenter.
         * 
         * @return builder
         * 
         */
        public Builder customAttributes(@Nullable Output> customAttributes) {
            $.customAttributes = customAttributes;
            return this;
        }

        /**
         * @param customAttributes Map of custom attribute ids to attribute
         * value strings to set for folder. See [here][docs-setting-custom-attributes]
         * for a reference on how to set values for custom attributes.
         * 
         * [docs-setting-custom-attributes]: /docs/providers/vsphere/r/custom_attribute.html#using-custom-attributes-in-a-supported-resource
         * 
         * > **NOTE:** Custom attributes are unsupported on direct ESXi connections
         * and require vCenter.
         * 
         * @return builder
         * 
         */
        public Builder customAttributes(Map customAttributes) {
            return customAttributes(Output.of(customAttributes));
        }

        /**
         * @param datacenterId The ID of the datacenter the folder will be created in.
         * Required for all folder types except for datacenter folders. Forces a new
         * resource if changed.
         * 
         * @return builder
         * 
         */
        public Builder datacenterId(@Nullable Output datacenterId) {
            $.datacenterId = datacenterId;
            return this;
        }

        /**
         * @param datacenterId The ID of the datacenter the folder will be created in.
         * Required for all folder types except for datacenter folders. Forces a new
         * resource if changed.
         * 
         * @return builder
         * 
         */
        public Builder datacenterId(String datacenterId) {
            return datacenterId(Output.of(datacenterId));
        }

        /**
         * @param path The path of the folder to be created. This is relative to
         * the root of the type of folder you are creating, and the supplied datacenter.
         * For example, given a default datacenter of `default-dc`, a folder of type
         * `vm` (denoting a virtual machine folder), and a supplied folder of
         * `test-folder`, the resulting path would be
         * `/default-dc/vm/test-folder`.
         * 
         * > **NOTE:** `path` can be modified - the resulting behavior is dependent on
         * what section of `path` you are modifying. If you are modifying the parent (so
         * any part before the last `/`), your folder will be moved to that new parent. If
         * modifying the name (the part after the last `/`), your folder will be renamed.
         * 
         * @return builder
         * 
         */
        public Builder path(@Nullable Output path) {
            $.path = path;
            return this;
        }

        /**
         * @param path The path of the folder to be created. This is relative to
         * the root of the type of folder you are creating, and the supplied datacenter.
         * For example, given a default datacenter of `default-dc`, a folder of type
         * `vm` (denoting a virtual machine folder), and a supplied folder of
         * `test-folder`, the resulting path would be
         * `/default-dc/vm/test-folder`.
         * 
         * > **NOTE:** `path` can be modified - the resulting behavior is dependent on
         * what section of `path` you are modifying. If you are modifying the parent (so
         * any part before the last `/`), your folder will be moved to that new parent. If
         * modifying the name (the part after the last `/`), your folder will be renamed.
         * 
         * @return builder
         * 
         */
        public Builder path(String path) {
            return path(Output.of(path));
        }

        /**
         * @param tags The IDs of any tags to attach to this resource.
         * 
         * > **NOTE:** Tagging support is unsupported on direct ESXi connections and
         * requires vCenter 6.0 or higher.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags The IDs of any tags to attach to this resource.
         * 
         * > **NOTE:** Tagging support is unsupported on direct ESXi connections and
         * requires vCenter 6.0 or higher.
         * 
         * @return builder
         * 
         */
        public Builder tags(List tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param tags The IDs of any tags to attach to this resource.
         * 
         * > **NOTE:** Tagging support is unsupported on direct ESXi connections and
         * requires vCenter 6.0 or higher.
         * 
         * @return builder
         * 
         */
        public Builder tags(String... tags) {
            return tags(List.of(tags));
        }

        /**
         * @param type The type of folder to create. Allowed options are
         * `datacenter` for datacenter folders, `host` for host and cluster folders,
         * `vm` for virtual machine folders, `datastore` for datastore folders, and
         * `network` for network folders. Forces a new resource if changed.
         * 
         * @return builder
         * 
         */
        public Builder type(@Nullable Output type) {
            $.type = type;
            return this;
        }

        /**
         * @param type The type of folder to create. Allowed options are
         * `datacenter` for datacenter folders, `host` for host and cluster folders,
         * `vm` for virtual machine folders, `datastore` for datastore folders, and
         * `network` for network folders. Forces a new resource if changed.
         * 
         * @return builder
         * 
         */
        public Builder type(String type) {
            return type(Output.of(type));
        }

        public FolderState build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy