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

com.pulumi.azurenative.recoveryservices.inputs.HyperVReplicaAzurePolicyInputArgs Maven / Gradle / Ivy

// *** 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.recoveryservices.inputs;

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.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Hyper-V Replica Azure specific input for creating a protection profile.
 * 
 */
public final class HyperVReplicaAzurePolicyInputArgs extends com.pulumi.resources.ResourceArgs {

    public static final HyperVReplicaAzurePolicyInputArgs Empty = new HyperVReplicaAzurePolicyInputArgs();

    /**
     * The interval (in hours) at which Hyper-V Replica should create an application consistent snapshot within the VM.
     * 
     */
    @Import(name="applicationConsistentSnapshotFrequencyInHours")
    private @Nullable Output applicationConsistentSnapshotFrequencyInHours;

    /**
     * @return The interval (in hours) at which Hyper-V Replica should create an application consistent snapshot within the VM.
     * 
     */
    public Optional> applicationConsistentSnapshotFrequencyInHours() {
        return Optional.ofNullable(this.applicationConsistentSnapshotFrequencyInHours);
    }

    /**
     * The class type.
     * Expected value is 'HyperVReplicaAzure'.
     * 
     */
    @Import(name="instanceType", required=true)
    private Output instanceType;

    /**
     * @return The class type.
     * Expected value is 'HyperVReplicaAzure'.
     * 
     */
    public Output instanceType() {
        return this.instanceType;
    }

    /**
     * The scheduled start time for the initial replication. If this parameter is Null, the initial replication starts immediately.
     * 
     */
    @Import(name="onlineReplicationStartTime")
    private @Nullable Output onlineReplicationStartTime;

    /**
     * @return The scheduled start time for the initial replication. If this parameter is Null, the initial replication starts immediately.
     * 
     */
    public Optional> onlineReplicationStartTime() {
        return Optional.ofNullable(this.onlineReplicationStartTime);
    }

    /**
     * The duration (in hours) to which point the recovery history needs to be maintained.
     * 
     */
    @Import(name="recoveryPointHistoryDuration")
    private @Nullable Output recoveryPointHistoryDuration;

    /**
     * @return The duration (in hours) to which point the recovery history needs to be maintained.
     * 
     */
    public Optional> recoveryPointHistoryDuration() {
        return Optional.ofNullable(this.recoveryPointHistoryDuration);
    }

    /**
     * The replication interval.
     * 
     */
    @Import(name="replicationInterval")
    private @Nullable Output replicationInterval;

    /**
     * @return The replication interval.
     * 
     */
    public Optional> replicationInterval() {
        return Optional.ofNullable(this.replicationInterval);
    }

    /**
     * The list of storage accounts to which the VMs in the primary cloud can replicate to.
     * 
     */
    @Import(name="storageAccounts")
    private @Nullable Output> storageAccounts;

    /**
     * @return The list of storage accounts to which the VMs in the primary cloud can replicate to.
     * 
     */
    public Optional>> storageAccounts() {
        return Optional.ofNullable(this.storageAccounts);
    }

    private HyperVReplicaAzurePolicyInputArgs() {}

    private HyperVReplicaAzurePolicyInputArgs(HyperVReplicaAzurePolicyInputArgs $) {
        this.applicationConsistentSnapshotFrequencyInHours = $.applicationConsistentSnapshotFrequencyInHours;
        this.instanceType = $.instanceType;
        this.onlineReplicationStartTime = $.onlineReplicationStartTime;
        this.recoveryPointHistoryDuration = $.recoveryPointHistoryDuration;
        this.replicationInterval = $.replicationInterval;
        this.storageAccounts = $.storageAccounts;
    }

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

    public static final class Builder {
        private HyperVReplicaAzurePolicyInputArgs $;

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

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

        /**
         * @param applicationConsistentSnapshotFrequencyInHours The interval (in hours) at which Hyper-V Replica should create an application consistent snapshot within the VM.
         * 
         * @return builder
         * 
         */
        public Builder applicationConsistentSnapshotFrequencyInHours(@Nullable Output applicationConsistentSnapshotFrequencyInHours) {
            $.applicationConsistentSnapshotFrequencyInHours = applicationConsistentSnapshotFrequencyInHours;
            return this;
        }

        /**
         * @param applicationConsistentSnapshotFrequencyInHours The interval (in hours) at which Hyper-V Replica should create an application consistent snapshot within the VM.
         * 
         * @return builder
         * 
         */
        public Builder applicationConsistentSnapshotFrequencyInHours(Integer applicationConsistentSnapshotFrequencyInHours) {
            return applicationConsistentSnapshotFrequencyInHours(Output.of(applicationConsistentSnapshotFrequencyInHours));
        }

        /**
         * @param instanceType The class type.
         * Expected value is 'HyperVReplicaAzure'.
         * 
         * @return builder
         * 
         */
        public Builder instanceType(Output instanceType) {
            $.instanceType = instanceType;
            return this;
        }

        /**
         * @param instanceType The class type.
         * Expected value is 'HyperVReplicaAzure'.
         * 
         * @return builder
         * 
         */
        public Builder instanceType(String instanceType) {
            return instanceType(Output.of(instanceType));
        }

        /**
         * @param onlineReplicationStartTime The scheduled start time for the initial replication. If this parameter is Null, the initial replication starts immediately.
         * 
         * @return builder
         * 
         */
        public Builder onlineReplicationStartTime(@Nullable Output onlineReplicationStartTime) {
            $.onlineReplicationStartTime = onlineReplicationStartTime;
            return this;
        }

        /**
         * @param onlineReplicationStartTime The scheduled start time for the initial replication. If this parameter is Null, the initial replication starts immediately.
         * 
         * @return builder
         * 
         */
        public Builder onlineReplicationStartTime(String onlineReplicationStartTime) {
            return onlineReplicationStartTime(Output.of(onlineReplicationStartTime));
        }

        /**
         * @param recoveryPointHistoryDuration The duration (in hours) to which point the recovery history needs to be maintained.
         * 
         * @return builder
         * 
         */
        public Builder recoveryPointHistoryDuration(@Nullable Output recoveryPointHistoryDuration) {
            $.recoveryPointHistoryDuration = recoveryPointHistoryDuration;
            return this;
        }

        /**
         * @param recoveryPointHistoryDuration The duration (in hours) to which point the recovery history needs to be maintained.
         * 
         * @return builder
         * 
         */
        public Builder recoveryPointHistoryDuration(Integer recoveryPointHistoryDuration) {
            return recoveryPointHistoryDuration(Output.of(recoveryPointHistoryDuration));
        }

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

        /**
         * @param replicationInterval The replication interval.
         * 
         * @return builder
         * 
         */
        public Builder replicationInterval(Integer replicationInterval) {
            return replicationInterval(Output.of(replicationInterval));
        }

        /**
         * @param storageAccounts The list of storage accounts to which the VMs in the primary cloud can replicate to.
         * 
         * @return builder
         * 
         */
        public Builder storageAccounts(@Nullable Output> storageAccounts) {
            $.storageAccounts = storageAccounts;
            return this;
        }

        /**
         * @param storageAccounts The list of storage accounts to which the VMs in the primary cloud can replicate to.
         * 
         * @return builder
         * 
         */
        public Builder storageAccounts(List storageAccounts) {
            return storageAccounts(Output.of(storageAccounts));
        }

        /**
         * @param storageAccounts The list of storage accounts to which the VMs in the primary cloud can replicate to.
         * 
         * @return builder
         * 
         */
        public Builder storageAccounts(String... storageAccounts) {
            return storageAccounts(List.of(storageAccounts));
        }

        public HyperVReplicaAzurePolicyInputArgs build() {
            $.instanceType = Codegen.stringProp("instanceType").output().arg($.instanceType).require();
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy