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

com.pulumi.azurenative.recoveryservices.outputs.HyperVReplicaAzurePolicyDetailsResponse 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.recoveryservices.outputs;

import com.pulumi.core.annotations.CustomType;
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;

@CustomType
public final class HyperVReplicaAzurePolicyDetailsResponse {
    /**
     * @return The active storage account Id.
     * 
     */
    private @Nullable String activeStorageAccountId;
    /**
     * @return The interval (in hours) at which Hyper-V Replica should create an application consistent snapshot within the VM.
     * 
     */
    private @Nullable Integer applicationConsistentSnapshotFrequencyInHours;
    /**
     * @return A value indicating whether encryption is enabled for virtual machines in this cloud.
     * 
     */
    private @Nullable String encryption;
    /**
     * @return Gets the class type. Overridden in derived classes.
     * Expected value is 'HyperVReplicaAzure'.
     * 
     */
    private String instanceType;
    /**
     * @return The scheduled start time for the initial replication. If this parameter is Null, the initial replication starts immediately.
     * 
     */
    private @Nullable String onlineReplicationStartTime;
    /**
     * @return The duration (in hours) to which point the recovery history needs to be maintained.
     * 
     */
    private @Nullable Integer recoveryPointHistoryDurationInHours;
    /**
     * @return The replication interval.
     * 
     */
    private @Nullable Integer replicationInterval;

    private HyperVReplicaAzurePolicyDetailsResponse() {}
    /**
     * @return The active storage account Id.
     * 
     */
    public Optional activeStorageAccountId() {
        return Optional.ofNullable(this.activeStorageAccountId);
    }
    /**
     * @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);
    }
    /**
     * @return A value indicating whether encryption is enabled for virtual machines in this cloud.
     * 
     */
    public Optional encryption() {
        return Optional.ofNullable(this.encryption);
    }
    /**
     * @return Gets the class type. Overridden in derived classes.
     * Expected value is 'HyperVReplicaAzure'.
     * 
     */
    public String instanceType() {
        return this.instanceType;
    }
    /**
     * @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);
    }
    /**
     * @return The duration (in hours) to which point the recovery history needs to be maintained.
     * 
     */
    public Optional recoveryPointHistoryDurationInHours() {
        return Optional.ofNullable(this.recoveryPointHistoryDurationInHours);
    }
    /**
     * @return The replication interval.
     * 
     */
    public Optional replicationInterval() {
        return Optional.ofNullable(this.replicationInterval);
    }

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

    public static Builder builder(HyperVReplicaAzurePolicyDetailsResponse defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private @Nullable String activeStorageAccountId;
        private @Nullable Integer applicationConsistentSnapshotFrequencyInHours;
        private @Nullable String encryption;
        private String instanceType;
        private @Nullable String onlineReplicationStartTime;
        private @Nullable Integer recoveryPointHistoryDurationInHours;
        private @Nullable Integer replicationInterval;
        public Builder() {}
        public Builder(HyperVReplicaAzurePolicyDetailsResponse defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.activeStorageAccountId = defaults.activeStorageAccountId;
    	      this.applicationConsistentSnapshotFrequencyInHours = defaults.applicationConsistentSnapshotFrequencyInHours;
    	      this.encryption = defaults.encryption;
    	      this.instanceType = defaults.instanceType;
    	      this.onlineReplicationStartTime = defaults.onlineReplicationStartTime;
    	      this.recoveryPointHistoryDurationInHours = defaults.recoveryPointHistoryDurationInHours;
    	      this.replicationInterval = defaults.replicationInterval;
        }

        @CustomType.Setter
        public Builder activeStorageAccountId(@Nullable String activeStorageAccountId) {

            this.activeStorageAccountId = activeStorageAccountId;
            return this;
        }
        @CustomType.Setter
        public Builder applicationConsistentSnapshotFrequencyInHours(@Nullable Integer applicationConsistentSnapshotFrequencyInHours) {

            this.applicationConsistentSnapshotFrequencyInHours = applicationConsistentSnapshotFrequencyInHours;
            return this;
        }
        @CustomType.Setter
        public Builder encryption(@Nullable String encryption) {

            this.encryption = encryption;
            return this;
        }
        @CustomType.Setter
        public Builder instanceType(String instanceType) {
            if (instanceType == null) {
              throw new MissingRequiredPropertyException("HyperVReplicaAzurePolicyDetailsResponse", "instanceType");
            }
            this.instanceType = instanceType;
            return this;
        }
        @CustomType.Setter
        public Builder onlineReplicationStartTime(@Nullable String onlineReplicationStartTime) {

            this.onlineReplicationStartTime = onlineReplicationStartTime;
            return this;
        }
        @CustomType.Setter
        public Builder recoveryPointHistoryDurationInHours(@Nullable Integer recoveryPointHistoryDurationInHours) {

            this.recoveryPointHistoryDurationInHours = recoveryPointHistoryDurationInHours;
            return this;
        }
        @CustomType.Setter
        public Builder replicationInterval(@Nullable Integer replicationInterval) {

            this.replicationInterval = replicationInterval;
            return this;
        }
        public HyperVReplicaAzurePolicyDetailsResponse build() {
            final var _resultValue = new HyperVReplicaAzurePolicyDetailsResponse();
            _resultValue.activeStorageAccountId = activeStorageAccountId;
            _resultValue.applicationConsistentSnapshotFrequencyInHours = applicationConsistentSnapshotFrequencyInHours;
            _resultValue.encryption = encryption;
            _resultValue.instanceType = instanceType;
            _resultValue.onlineReplicationStartTime = onlineReplicationStartTime;
            _resultValue.recoveryPointHistoryDurationInHours = recoveryPointHistoryDurationInHours;
            _resultValue.replicationInterval = replicationInterval;
            return _resultValue;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy