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

com.pulumi.azurenative.databoxedge.ShareArgs Maven / Gradle / Ivy

There is a newer version: 2.78.0
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.azurenative.databoxedge;

import com.pulumi.azurenative.databoxedge.enums.DataPolicy;
import com.pulumi.azurenative.databoxedge.enums.MonitoringStatus;
import com.pulumi.azurenative.databoxedge.enums.ShareAccessProtocol;
import com.pulumi.azurenative.databoxedge.enums.ShareStatus;
import com.pulumi.azurenative.databoxedge.inputs.AzureContainerInfoArgs;
import com.pulumi.azurenative.databoxedge.inputs.ClientAccessRightArgs;
import com.pulumi.azurenative.databoxedge.inputs.RefreshDetailsArgs;
import com.pulumi.azurenative.databoxedge.inputs.UserAccessRightArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final ShareArgs Empty = new ShareArgs();

    /**
     * Access protocol to be used by the share.
     * 
     */
    @Import(name="accessProtocol", required=true)
    private Output> accessProtocol;

    /**
     * @return Access protocol to be used by the share.
     * 
     */
    public Output> accessProtocol() {
        return this.accessProtocol;
    }

    /**
     * Azure container mapping for the share.
     * 
     */
    @Import(name="azureContainerInfo")
    private @Nullable Output azureContainerInfo;

    /**
     * @return Azure container mapping for the share.
     * 
     */
    public Optional> azureContainerInfo() {
        return Optional.ofNullable(this.azureContainerInfo);
    }

    /**
     * List of IP addresses and corresponding access rights on the share(required for NFS protocol).
     * 
     */
    @Import(name="clientAccessRights")
    private @Nullable Output> clientAccessRights;

    /**
     * @return List of IP addresses and corresponding access rights on the share(required for NFS protocol).
     * 
     */
    public Optional>> clientAccessRights() {
        return Optional.ofNullable(this.clientAccessRights);
    }

    /**
     * Data policy of the share.
     * 
     */
    @Import(name="dataPolicy")
    private @Nullable Output> dataPolicy;

    /**
     * @return Data policy of the share.
     * 
     */
    public Optional>> dataPolicy() {
        return Optional.ofNullable(this.dataPolicy);
    }

    /**
     * Description for the share.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return Description for the share.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * The device name.
     * 
     */
    @Import(name="deviceName", required=true)
    private Output deviceName;

    /**
     * @return The device name.
     * 
     */
    public Output deviceName() {
        return this.deviceName;
    }

    /**
     * Current monitoring status of the share.
     * 
     */
    @Import(name="monitoringStatus", required=true)
    private Output> monitoringStatus;

    /**
     * @return Current monitoring status of the share.
     * 
     */
    public Output> monitoringStatus() {
        return this.monitoringStatus;
    }

    /**
     * The share name.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return The share name.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * Details of the refresh job on this share.
     * 
     */
    @Import(name="refreshDetails")
    private @Nullable Output refreshDetails;

    /**
     * @return Details of the refresh job on this share.
     * 
     */
    public Optional> refreshDetails() {
        return Optional.ofNullable(this.refreshDetails);
    }

    /**
     * The resource group name.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The resource group name.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * Current status of the share.
     * 
     */
    @Import(name="shareStatus", required=true)
    private Output> shareStatus;

    /**
     * @return Current status of the share.
     * 
     */
    public Output> shareStatus() {
        return this.shareStatus;
    }

    /**
     * Mapping of users and corresponding access rights on the share (required for SMB protocol).
     * 
     */
    @Import(name="userAccessRights")
    private @Nullable Output> userAccessRights;

    /**
     * @return Mapping of users and corresponding access rights on the share (required for SMB protocol).
     * 
     */
    public Optional>> userAccessRights() {
        return Optional.ofNullable(this.userAccessRights);
    }

    private ShareArgs() {}

    private ShareArgs(ShareArgs $) {
        this.accessProtocol = $.accessProtocol;
        this.azureContainerInfo = $.azureContainerInfo;
        this.clientAccessRights = $.clientAccessRights;
        this.dataPolicy = $.dataPolicy;
        this.description = $.description;
        this.deviceName = $.deviceName;
        this.monitoringStatus = $.monitoringStatus;
        this.name = $.name;
        this.refreshDetails = $.refreshDetails;
        this.resourceGroupName = $.resourceGroupName;
        this.shareStatus = $.shareStatus;
        this.userAccessRights = $.userAccessRights;
    }

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

    public static final class Builder {
        private ShareArgs $;

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

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

        /**
         * @param accessProtocol Access protocol to be used by the share.
         * 
         * @return builder
         * 
         */
        public Builder accessProtocol(Output> accessProtocol) {
            $.accessProtocol = accessProtocol;
            return this;
        }

        /**
         * @param accessProtocol Access protocol to be used by the share.
         * 
         * @return builder
         * 
         */
        public Builder accessProtocol(Either accessProtocol) {
            return accessProtocol(Output.of(accessProtocol));
        }

        /**
         * @param accessProtocol Access protocol to be used by the share.
         * 
         * @return builder
         * 
         */
        public Builder accessProtocol(String accessProtocol) {
            return accessProtocol(Either.ofLeft(accessProtocol));
        }

        /**
         * @param accessProtocol Access protocol to be used by the share.
         * 
         * @return builder
         * 
         */
        public Builder accessProtocol(ShareAccessProtocol accessProtocol) {
            return accessProtocol(Either.ofRight(accessProtocol));
        }

        /**
         * @param azureContainerInfo Azure container mapping for the share.
         * 
         * @return builder
         * 
         */
        public Builder azureContainerInfo(@Nullable Output azureContainerInfo) {
            $.azureContainerInfo = azureContainerInfo;
            return this;
        }

        /**
         * @param azureContainerInfo Azure container mapping for the share.
         * 
         * @return builder
         * 
         */
        public Builder azureContainerInfo(AzureContainerInfoArgs azureContainerInfo) {
            return azureContainerInfo(Output.of(azureContainerInfo));
        }

        /**
         * @param clientAccessRights List of IP addresses and corresponding access rights on the share(required for NFS protocol).
         * 
         * @return builder
         * 
         */
        public Builder clientAccessRights(@Nullable Output> clientAccessRights) {
            $.clientAccessRights = clientAccessRights;
            return this;
        }

        /**
         * @param clientAccessRights List of IP addresses and corresponding access rights on the share(required for NFS protocol).
         * 
         * @return builder
         * 
         */
        public Builder clientAccessRights(List clientAccessRights) {
            return clientAccessRights(Output.of(clientAccessRights));
        }

        /**
         * @param clientAccessRights List of IP addresses and corresponding access rights on the share(required for NFS protocol).
         * 
         * @return builder
         * 
         */
        public Builder clientAccessRights(ClientAccessRightArgs... clientAccessRights) {
            return clientAccessRights(List.of(clientAccessRights));
        }

        /**
         * @param dataPolicy Data policy of the share.
         * 
         * @return builder
         * 
         */
        public Builder dataPolicy(@Nullable Output> dataPolicy) {
            $.dataPolicy = dataPolicy;
            return this;
        }

        /**
         * @param dataPolicy Data policy of the share.
         * 
         * @return builder
         * 
         */
        public Builder dataPolicy(Either dataPolicy) {
            return dataPolicy(Output.of(dataPolicy));
        }

        /**
         * @param dataPolicy Data policy of the share.
         * 
         * @return builder
         * 
         */
        public Builder dataPolicy(String dataPolicy) {
            return dataPolicy(Either.ofLeft(dataPolicy));
        }

        /**
         * @param dataPolicy Data policy of the share.
         * 
         * @return builder
         * 
         */
        public Builder dataPolicy(DataPolicy dataPolicy) {
            return dataPolicy(Either.ofRight(dataPolicy));
        }

        /**
         * @param description Description for the share.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description Description for the share.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param deviceName The device name.
         * 
         * @return builder
         * 
         */
        public Builder deviceName(Output deviceName) {
            $.deviceName = deviceName;
            return this;
        }

        /**
         * @param deviceName The device name.
         * 
         * @return builder
         * 
         */
        public Builder deviceName(String deviceName) {
            return deviceName(Output.of(deviceName));
        }

        /**
         * @param monitoringStatus Current monitoring status of the share.
         * 
         * @return builder
         * 
         */
        public Builder monitoringStatus(Output> monitoringStatus) {
            $.monitoringStatus = monitoringStatus;
            return this;
        }

        /**
         * @param monitoringStatus Current monitoring status of the share.
         * 
         * @return builder
         * 
         */
        public Builder monitoringStatus(Either monitoringStatus) {
            return monitoringStatus(Output.of(monitoringStatus));
        }

        /**
         * @param monitoringStatus Current monitoring status of the share.
         * 
         * @return builder
         * 
         */
        public Builder monitoringStatus(String monitoringStatus) {
            return monitoringStatus(Either.ofLeft(monitoringStatus));
        }

        /**
         * @param monitoringStatus Current monitoring status of the share.
         * 
         * @return builder
         * 
         */
        public Builder monitoringStatus(MonitoringStatus monitoringStatus) {
            return monitoringStatus(Either.ofRight(monitoringStatus));
        }

        /**
         * @param name The share name.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name The share name.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param refreshDetails Details of the refresh job on this share.
         * 
         * @return builder
         * 
         */
        public Builder refreshDetails(@Nullable Output refreshDetails) {
            $.refreshDetails = refreshDetails;
            return this;
        }

        /**
         * @param refreshDetails Details of the refresh job on this share.
         * 
         * @return builder
         * 
         */
        public Builder refreshDetails(RefreshDetailsArgs refreshDetails) {
            return refreshDetails(Output.of(refreshDetails));
        }

        /**
         * @param resourceGroupName The resource group name.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The resource group name.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param shareStatus Current status of the share.
         * 
         * @return builder
         * 
         */
        public Builder shareStatus(Output> shareStatus) {
            $.shareStatus = shareStatus;
            return this;
        }

        /**
         * @param shareStatus Current status of the share.
         * 
         * @return builder
         * 
         */
        public Builder shareStatus(Either shareStatus) {
            return shareStatus(Output.of(shareStatus));
        }

        /**
         * @param shareStatus Current status of the share.
         * 
         * @return builder
         * 
         */
        public Builder shareStatus(String shareStatus) {
            return shareStatus(Either.ofLeft(shareStatus));
        }

        /**
         * @param shareStatus Current status of the share.
         * 
         * @return builder
         * 
         */
        public Builder shareStatus(ShareStatus shareStatus) {
            return shareStatus(Either.ofRight(shareStatus));
        }

        /**
         * @param userAccessRights Mapping of users and corresponding access rights on the share (required for SMB protocol).
         * 
         * @return builder
         * 
         */
        public Builder userAccessRights(@Nullable Output> userAccessRights) {
            $.userAccessRights = userAccessRights;
            return this;
        }

        /**
         * @param userAccessRights Mapping of users and corresponding access rights on the share (required for SMB protocol).
         * 
         * @return builder
         * 
         */
        public Builder userAccessRights(List userAccessRights) {
            return userAccessRights(Output.of(userAccessRights));
        }

        /**
         * @param userAccessRights Mapping of users and corresponding access rights on the share (required for SMB protocol).
         * 
         * @return builder
         * 
         */
        public Builder userAccessRights(UserAccessRightArgs... userAccessRights) {
            return userAccessRights(List.of(userAccessRights));
        }

        public ShareArgs build() {
            if ($.accessProtocol == null) {
                throw new MissingRequiredPropertyException("ShareArgs", "accessProtocol");
            }
            if ($.deviceName == null) {
                throw new MissingRequiredPropertyException("ShareArgs", "deviceName");
            }
            if ($.monitoringStatus == null) {
                throw new MissingRequiredPropertyException("ShareArgs", "monitoringStatus");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("ShareArgs", "resourceGroupName");
            }
            if ($.shareStatus == null) {
                throw new MissingRequiredPropertyException("ShareArgs", "shareStatus");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy