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

com.pulumi.azurenative.storagesync.ServerEndpointArgs Maven / Gradle / Ivy

There is a newer version: 2.82.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.storagesync;

import com.pulumi.azurenative.storagesync.enums.FeatureStatus;
import com.pulumi.azurenative.storagesync.enums.InitialDownloadPolicy;
import com.pulumi.azurenative.storagesync.enums.InitialUploadPolicy;
import com.pulumi.azurenative.storagesync.enums.LocalCacheMode;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Integer;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final ServerEndpointArgs Empty = new ServerEndpointArgs();

    /**
     * Cloud Tiering.
     * 
     */
    @Import(name="cloudTiering")
    private @Nullable Output> cloudTiering;

    /**
     * @return Cloud Tiering.
     * 
     */
    public Optional>> cloudTiering() {
        return Optional.ofNullable(this.cloudTiering);
    }

    /**
     * Friendly Name
     * 
     */
    @Import(name="friendlyName")
    private @Nullable Output friendlyName;

    /**
     * @return Friendly Name
     * 
     */
    public Optional> friendlyName() {
        return Optional.ofNullable(this.friendlyName);
    }

    /**
     * Policy for how namespace and files are recalled during FastDr.
     * 
     */
    @Import(name="initialDownloadPolicy")
    private @Nullable Output> initialDownloadPolicy;

    /**
     * @return Policy for how namespace and files are recalled during FastDr.
     * 
     */
    public Optional>> initialDownloadPolicy() {
        return Optional.ofNullable(this.initialDownloadPolicy);
    }

    /**
     * Policy for how the initial upload sync session is performed.
     * 
     */
    @Import(name="initialUploadPolicy")
    private @Nullable Output> initialUploadPolicy;

    /**
     * @return Policy for how the initial upload sync session is performed.
     * 
     */
    public Optional>> initialUploadPolicy() {
        return Optional.ofNullable(this.initialUploadPolicy);
    }

    /**
     * Policy for enabling follow-the-sun business models: link local cache to cloud behavior to pre-populate before local access.
     * 
     */
    @Import(name="localCacheMode")
    private @Nullable Output> localCacheMode;

    /**
     * @return Policy for enabling follow-the-sun business models: link local cache to cloud behavior to pre-populate before local access.
     * 
     */
    public Optional>> localCacheMode() {
        return Optional.ofNullable(this.localCacheMode);
    }

    /**
     * Offline data transfer
     * 
     */
    @Import(name="offlineDataTransfer")
    private @Nullable Output> offlineDataTransfer;

    /**
     * @return Offline data transfer
     * 
     */
    public Optional>> offlineDataTransfer() {
        return Optional.ofNullable(this.offlineDataTransfer);
    }

    /**
     * Offline data transfer share name
     * 
     */
    @Import(name="offlineDataTransferShareName")
    private @Nullable Output offlineDataTransferShareName;

    /**
     * @return Offline data transfer share name
     * 
     */
    public Optional> offlineDataTransferShareName() {
        return Optional.ofNullable(this.offlineDataTransferShareName);
    }

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

    /**
     * @return The name of the resource group. The name is case insensitive.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * Name of Server Endpoint object.
     * 
     */
    @Import(name="serverEndpointName")
    private @Nullable Output serverEndpointName;

    /**
     * @return Name of Server Endpoint object.
     * 
     */
    public Optional> serverEndpointName() {
        return Optional.ofNullable(this.serverEndpointName);
    }

    /**
     * Server Local path.
     * 
     */
    @Import(name="serverLocalPath")
    private @Nullable Output serverLocalPath;

    /**
     * @return Server Local path.
     * 
     */
    public Optional> serverLocalPath() {
        return Optional.ofNullable(this.serverLocalPath);
    }

    /**
     * Server Resource Id.
     * 
     */
    @Import(name="serverResourceId")
    private @Nullable Output serverResourceId;

    /**
     * @return Server Resource Id.
     * 
     */
    public Optional> serverResourceId() {
        return Optional.ofNullable(this.serverResourceId);
    }

    /**
     * Name of Storage Sync Service resource.
     * 
     */
    @Import(name="storageSyncServiceName", required=true)
    private Output storageSyncServiceName;

    /**
     * @return Name of Storage Sync Service resource.
     * 
     */
    public Output storageSyncServiceName() {
        return this.storageSyncServiceName;
    }

    /**
     * Name of Sync Group resource.
     * 
     */
    @Import(name="syncGroupName", required=true)
    private Output syncGroupName;

    /**
     * @return Name of Sync Group resource.
     * 
     */
    public Output syncGroupName() {
        return this.syncGroupName;
    }

    /**
     * Tier files older than days.
     * 
     */
    @Import(name="tierFilesOlderThanDays")
    private @Nullable Output tierFilesOlderThanDays;

    /**
     * @return Tier files older than days.
     * 
     */
    public Optional> tierFilesOlderThanDays() {
        return Optional.ofNullable(this.tierFilesOlderThanDays);
    }

    /**
     * Level of free space to be maintained by Cloud Tiering if it is enabled.
     * 
     */
    @Import(name="volumeFreeSpacePercent")
    private @Nullable Output volumeFreeSpacePercent;

    /**
     * @return Level of free space to be maintained by Cloud Tiering if it is enabled.
     * 
     */
    public Optional> volumeFreeSpacePercent() {
        return Optional.ofNullable(this.volumeFreeSpacePercent);
    }

    private ServerEndpointArgs() {}

    private ServerEndpointArgs(ServerEndpointArgs $) {
        this.cloudTiering = $.cloudTiering;
        this.friendlyName = $.friendlyName;
        this.initialDownloadPolicy = $.initialDownloadPolicy;
        this.initialUploadPolicy = $.initialUploadPolicy;
        this.localCacheMode = $.localCacheMode;
        this.offlineDataTransfer = $.offlineDataTransfer;
        this.offlineDataTransferShareName = $.offlineDataTransferShareName;
        this.resourceGroupName = $.resourceGroupName;
        this.serverEndpointName = $.serverEndpointName;
        this.serverLocalPath = $.serverLocalPath;
        this.serverResourceId = $.serverResourceId;
        this.storageSyncServiceName = $.storageSyncServiceName;
        this.syncGroupName = $.syncGroupName;
        this.tierFilesOlderThanDays = $.tierFilesOlderThanDays;
        this.volumeFreeSpacePercent = $.volumeFreeSpacePercent;
    }

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

    public static final class Builder {
        private ServerEndpointArgs $;

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

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

        /**
         * @param cloudTiering Cloud Tiering.
         * 
         * @return builder
         * 
         */
        public Builder cloudTiering(@Nullable Output> cloudTiering) {
            $.cloudTiering = cloudTiering;
            return this;
        }

        /**
         * @param cloudTiering Cloud Tiering.
         * 
         * @return builder
         * 
         */
        public Builder cloudTiering(Either cloudTiering) {
            return cloudTiering(Output.of(cloudTiering));
        }

        /**
         * @param cloudTiering Cloud Tiering.
         * 
         * @return builder
         * 
         */
        public Builder cloudTiering(String cloudTiering) {
            return cloudTiering(Either.ofLeft(cloudTiering));
        }

        /**
         * @param cloudTiering Cloud Tiering.
         * 
         * @return builder
         * 
         */
        public Builder cloudTiering(FeatureStatus cloudTiering) {
            return cloudTiering(Either.ofRight(cloudTiering));
        }

        /**
         * @param friendlyName Friendly Name
         * 
         * @return builder
         * 
         */
        public Builder friendlyName(@Nullable Output friendlyName) {
            $.friendlyName = friendlyName;
            return this;
        }

        /**
         * @param friendlyName Friendly Name
         * 
         * @return builder
         * 
         */
        public Builder friendlyName(String friendlyName) {
            return friendlyName(Output.of(friendlyName));
        }

        /**
         * @param initialDownloadPolicy Policy for how namespace and files are recalled during FastDr.
         * 
         * @return builder
         * 
         */
        public Builder initialDownloadPolicy(@Nullable Output> initialDownloadPolicy) {
            $.initialDownloadPolicy = initialDownloadPolicy;
            return this;
        }

        /**
         * @param initialDownloadPolicy Policy for how namespace and files are recalled during FastDr.
         * 
         * @return builder
         * 
         */
        public Builder initialDownloadPolicy(Either initialDownloadPolicy) {
            return initialDownloadPolicy(Output.of(initialDownloadPolicy));
        }

        /**
         * @param initialDownloadPolicy Policy for how namespace and files are recalled during FastDr.
         * 
         * @return builder
         * 
         */
        public Builder initialDownloadPolicy(String initialDownloadPolicy) {
            return initialDownloadPolicy(Either.ofLeft(initialDownloadPolicy));
        }

        /**
         * @param initialDownloadPolicy Policy for how namespace and files are recalled during FastDr.
         * 
         * @return builder
         * 
         */
        public Builder initialDownloadPolicy(InitialDownloadPolicy initialDownloadPolicy) {
            return initialDownloadPolicy(Either.ofRight(initialDownloadPolicy));
        }

        /**
         * @param initialUploadPolicy Policy for how the initial upload sync session is performed.
         * 
         * @return builder
         * 
         */
        public Builder initialUploadPolicy(@Nullable Output> initialUploadPolicy) {
            $.initialUploadPolicy = initialUploadPolicy;
            return this;
        }

        /**
         * @param initialUploadPolicy Policy for how the initial upload sync session is performed.
         * 
         * @return builder
         * 
         */
        public Builder initialUploadPolicy(Either initialUploadPolicy) {
            return initialUploadPolicy(Output.of(initialUploadPolicy));
        }

        /**
         * @param initialUploadPolicy Policy for how the initial upload sync session is performed.
         * 
         * @return builder
         * 
         */
        public Builder initialUploadPolicy(String initialUploadPolicy) {
            return initialUploadPolicy(Either.ofLeft(initialUploadPolicy));
        }

        /**
         * @param initialUploadPolicy Policy for how the initial upload sync session is performed.
         * 
         * @return builder
         * 
         */
        public Builder initialUploadPolicy(InitialUploadPolicy initialUploadPolicy) {
            return initialUploadPolicy(Either.ofRight(initialUploadPolicy));
        }

        /**
         * @param localCacheMode Policy for enabling follow-the-sun business models: link local cache to cloud behavior to pre-populate before local access.
         * 
         * @return builder
         * 
         */
        public Builder localCacheMode(@Nullable Output> localCacheMode) {
            $.localCacheMode = localCacheMode;
            return this;
        }

        /**
         * @param localCacheMode Policy for enabling follow-the-sun business models: link local cache to cloud behavior to pre-populate before local access.
         * 
         * @return builder
         * 
         */
        public Builder localCacheMode(Either localCacheMode) {
            return localCacheMode(Output.of(localCacheMode));
        }

        /**
         * @param localCacheMode Policy for enabling follow-the-sun business models: link local cache to cloud behavior to pre-populate before local access.
         * 
         * @return builder
         * 
         */
        public Builder localCacheMode(String localCacheMode) {
            return localCacheMode(Either.ofLeft(localCacheMode));
        }

        /**
         * @param localCacheMode Policy for enabling follow-the-sun business models: link local cache to cloud behavior to pre-populate before local access.
         * 
         * @return builder
         * 
         */
        public Builder localCacheMode(LocalCacheMode localCacheMode) {
            return localCacheMode(Either.ofRight(localCacheMode));
        }

        /**
         * @param offlineDataTransfer Offline data transfer
         * 
         * @return builder
         * 
         */
        public Builder offlineDataTransfer(@Nullable Output> offlineDataTransfer) {
            $.offlineDataTransfer = offlineDataTransfer;
            return this;
        }

        /**
         * @param offlineDataTransfer Offline data transfer
         * 
         * @return builder
         * 
         */
        public Builder offlineDataTransfer(Either offlineDataTransfer) {
            return offlineDataTransfer(Output.of(offlineDataTransfer));
        }

        /**
         * @param offlineDataTransfer Offline data transfer
         * 
         * @return builder
         * 
         */
        public Builder offlineDataTransfer(String offlineDataTransfer) {
            return offlineDataTransfer(Either.ofLeft(offlineDataTransfer));
        }

        /**
         * @param offlineDataTransfer Offline data transfer
         * 
         * @return builder
         * 
         */
        public Builder offlineDataTransfer(FeatureStatus offlineDataTransfer) {
            return offlineDataTransfer(Either.ofRight(offlineDataTransfer));
        }

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

        /**
         * @param offlineDataTransferShareName Offline data transfer share name
         * 
         * @return builder
         * 
         */
        public Builder offlineDataTransferShareName(String offlineDataTransferShareName) {
            return offlineDataTransferShareName(Output.of(offlineDataTransferShareName));
        }

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

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

        /**
         * @param serverEndpointName Name of Server Endpoint object.
         * 
         * @return builder
         * 
         */
        public Builder serverEndpointName(@Nullable Output serverEndpointName) {
            $.serverEndpointName = serverEndpointName;
            return this;
        }

        /**
         * @param serverEndpointName Name of Server Endpoint object.
         * 
         * @return builder
         * 
         */
        public Builder serverEndpointName(String serverEndpointName) {
            return serverEndpointName(Output.of(serverEndpointName));
        }

        /**
         * @param serverLocalPath Server Local path.
         * 
         * @return builder
         * 
         */
        public Builder serverLocalPath(@Nullable Output serverLocalPath) {
            $.serverLocalPath = serverLocalPath;
            return this;
        }

        /**
         * @param serverLocalPath Server Local path.
         * 
         * @return builder
         * 
         */
        public Builder serverLocalPath(String serverLocalPath) {
            return serverLocalPath(Output.of(serverLocalPath));
        }

        /**
         * @param serverResourceId Server Resource Id.
         * 
         * @return builder
         * 
         */
        public Builder serverResourceId(@Nullable Output serverResourceId) {
            $.serverResourceId = serverResourceId;
            return this;
        }

        /**
         * @param serverResourceId Server Resource Id.
         * 
         * @return builder
         * 
         */
        public Builder serverResourceId(String serverResourceId) {
            return serverResourceId(Output.of(serverResourceId));
        }

        /**
         * @param storageSyncServiceName Name of Storage Sync Service resource.
         * 
         * @return builder
         * 
         */
        public Builder storageSyncServiceName(Output storageSyncServiceName) {
            $.storageSyncServiceName = storageSyncServiceName;
            return this;
        }

        /**
         * @param storageSyncServiceName Name of Storage Sync Service resource.
         * 
         * @return builder
         * 
         */
        public Builder storageSyncServiceName(String storageSyncServiceName) {
            return storageSyncServiceName(Output.of(storageSyncServiceName));
        }

        /**
         * @param syncGroupName Name of Sync Group resource.
         * 
         * @return builder
         * 
         */
        public Builder syncGroupName(Output syncGroupName) {
            $.syncGroupName = syncGroupName;
            return this;
        }

        /**
         * @param syncGroupName Name of Sync Group resource.
         * 
         * @return builder
         * 
         */
        public Builder syncGroupName(String syncGroupName) {
            return syncGroupName(Output.of(syncGroupName));
        }

        /**
         * @param tierFilesOlderThanDays Tier files older than days.
         * 
         * @return builder
         * 
         */
        public Builder tierFilesOlderThanDays(@Nullable Output tierFilesOlderThanDays) {
            $.tierFilesOlderThanDays = tierFilesOlderThanDays;
            return this;
        }

        /**
         * @param tierFilesOlderThanDays Tier files older than days.
         * 
         * @return builder
         * 
         */
        public Builder tierFilesOlderThanDays(Integer tierFilesOlderThanDays) {
            return tierFilesOlderThanDays(Output.of(tierFilesOlderThanDays));
        }

        /**
         * @param volumeFreeSpacePercent Level of free space to be maintained by Cloud Tiering if it is enabled.
         * 
         * @return builder
         * 
         */
        public Builder volumeFreeSpacePercent(@Nullable Output volumeFreeSpacePercent) {
            $.volumeFreeSpacePercent = volumeFreeSpacePercent;
            return this;
        }

        /**
         * @param volumeFreeSpacePercent Level of free space to be maintained by Cloud Tiering if it is enabled.
         * 
         * @return builder
         * 
         */
        public Builder volumeFreeSpacePercent(Integer volumeFreeSpacePercent) {
            return volumeFreeSpacePercent(Output.of(volumeFreeSpacePercent));
        }

        public ServerEndpointArgs build() {
            $.initialDownloadPolicy = Codegen.stringProp("initialDownloadPolicy").left(InitialDownloadPolicy.class).output().arg($.initialDownloadPolicy).def("NamespaceThenModifiedFiles").getNullable();
            $.initialUploadPolicy = Codegen.stringProp("initialUploadPolicy").left(InitialUploadPolicy.class).output().arg($.initialUploadPolicy).def("Merge").getNullable();
            $.localCacheMode = Codegen.stringProp("localCacheMode").left(LocalCacheMode.class).output().arg($.localCacheMode).def("UpdateLocallyCachedFiles").getNullable();
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("ServerEndpointArgs", "resourceGroupName");
            }
            if ($.storageSyncServiceName == null) {
                throw new MissingRequiredPropertyException("ServerEndpointArgs", "storageSyncServiceName");
            }
            if ($.syncGroupName == null) {
                throw new MissingRequiredPropertyException("ServerEndpointArgs", "syncGroupName");
            }
            $.tierFilesOlderThanDays = Codegen.integerProp("tierFilesOlderThanDays").output().arg($.tierFilesOlderThanDays).def(0).getNullable();
            $.volumeFreeSpacePercent = Codegen.integerProp("volumeFreeSpacePercent").output().arg($.volumeFreeSpacePercent).def(20).getNullable();
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy