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

com.pulumi.azurenative.recoveryservices.inputs.ReplicationProtectionClusterPropertiesArgs 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.azurenative.recoveryservices.inputs.A2AReplicationProtectionClusterDetailsArgs;
import com.pulumi.azurenative.recoveryservices.inputs.CurrentScenarioDetailsArgs;
import com.pulumi.azurenative.recoveryservices.inputs.HealthErrorArgs;
import com.pulumi.azurenative.recoveryservices.inputs.RegisteredClusterNodesArgs;
import com.pulumi.azurenative.recoveryservices.inputs.SharedDiskReplicationItemPropertiesArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Replication protection cluster custom data details.
 * 
 */
public final class ReplicationProtectionClusterPropertiesArgs extends com.pulumi.resources.ResourceArgs {

    public static final ReplicationProtectionClusterPropertiesArgs Empty = new ReplicationProtectionClusterPropertiesArgs();

    /**
     * The Current active location of the Protection cluster.
     * 
     */
    @Import(name="activeLocation")
    private @Nullable Output activeLocation;

    /**
     * @return The Current active location of the Protection cluster.
     * 
     */
    public Optional> activeLocation() {
        return Optional.ofNullable(this.activeLocation);
    }

    /**
     * The Agent cluster Id.
     * 
     */
    @Import(name="agentClusterId")
    private @Nullable Output agentClusterId;

    /**
     * @return The Agent cluster Id.
     * 
     */
    public Optional> agentClusterId() {
        return Optional.ofNullable(this.agentClusterId);
    }

    /**
     * The allowed operations on the Replication protection cluster.
     * 
     */
    @Import(name="allowedOperations")
    private @Nullable Output> allowedOperations;

    /**
     * @return The allowed operations on the Replication protection cluster.
     * 
     */
    public Optional>> allowedOperations() {
        return Optional.ofNullable(this.allowedOperations);
    }

    /**
     * A value indicating whether all nodes of the cluster are registered or not.
     * 
     */
    @Import(name="areAllClusterNodesRegistered")
    private @Nullable Output areAllClusterNodesRegistered;

    /**
     * @return A value indicating whether all nodes of the cluster are registered or not.
     * 
     */
    public Optional> areAllClusterNodesRegistered() {
        return Optional.ofNullable(this.areAllClusterNodesRegistered);
    }

    /**
     * The cluster FQDN.
     * 
     */
    @Import(name="clusterFqdn")
    private @Nullable Output clusterFqdn;

    /**
     * @return The cluster FQDN.
     * 
     */
    public Optional> clusterFqdn() {
        return Optional.ofNullable(this.clusterFqdn);
    }

    /**
     * The List of cluster Node FQDNs.
     * 
     */
    @Import(name="clusterNodeFqdns")
    private @Nullable Output> clusterNodeFqdns;

    /**
     * @return The List of cluster Node FQDNs.
     * 
     */
    public Optional>> clusterNodeFqdns() {
        return Optional.ofNullable(this.clusterNodeFqdns);
    }

    /**
     * The List of Protected Item Id's.
     * 
     */
    @Import(name="clusterProtectedItemIds")
    private @Nullable Output> clusterProtectedItemIds;

    /**
     * @return The List of Protected Item Id's.
     * 
     */
    public Optional>> clusterProtectedItemIds() {
        return Optional.ofNullable(this.clusterProtectedItemIds);
    }

    /**
     * The registered node details.
     * 
     */
    @Import(name="clusterRegisteredNodes")
    private @Nullable Output> clusterRegisteredNodes;

    /**
     * @return The registered node details.
     * 
     */
    public Optional>> clusterRegisteredNodes() {
        return Optional.ofNullable(this.clusterRegisteredNodes);
    }

    /**
     * The current scenario.
     * 
     */
    @Import(name="currentScenario")
    private @Nullable Output currentScenario;

    /**
     * @return The current scenario.
     * 
     */
    public Optional> currentScenario() {
        return Optional.ofNullable(this.currentScenario);
    }

    /**
     * List of health errors.
     * 
     */
    @Import(name="healthErrors")
    private @Nullable Output> healthErrors;

    /**
     * @return List of health errors.
     * 
     */
    public Optional>> healthErrors() {
        return Optional.ofNullable(this.healthErrors);
    }

    /**
     * The last successful failover time.
     * 
     */
    @Import(name="lastSuccessfulFailoverTime")
    private @Nullable Output lastSuccessfulFailoverTime;

    /**
     * @return The last successful failover time.
     * 
     */
    public Optional> lastSuccessfulFailoverTime() {
        return Optional.ofNullable(this.lastSuccessfulFailoverTime);
    }

    /**
     * The last successful test failover time.
     * 
     */
    @Import(name="lastSuccessfulTestFailoverTime")
    private @Nullable Output lastSuccessfulTestFailoverTime;

    /**
     * @return The last successful test failover time.
     * 
     */
    public Optional> lastSuccessfulTestFailoverTime() {
        return Optional.ofNullable(this.lastSuccessfulTestFailoverTime);
    }

    /**
     * The name of Policy governing this PE.
     * 
     */
    @Import(name="policyFriendlyName")
    private @Nullable Output policyFriendlyName;

    /**
     * @return The name of Policy governing this PE.
     * 
     */
    public Optional> policyFriendlyName() {
        return Optional.ofNullable(this.policyFriendlyName);
    }

    /**
     * The Policy Id.
     * 
     */
    @Import(name="policyId")
    private @Nullable Output policyId;

    /**
     * @return The Policy Id.
     * 
     */
    public Optional> policyId() {
        return Optional.ofNullable(this.policyId);
    }

    /**
     * The friendly name of the primary fabric.
     * 
     */
    @Import(name="primaryFabricFriendlyName")
    private @Nullable Output primaryFabricFriendlyName;

    /**
     * @return The friendly name of the primary fabric.
     * 
     */
    public Optional> primaryFabricFriendlyName() {
        return Optional.ofNullable(this.primaryFabricFriendlyName);
    }

    /**
     * The fabric provider of the primary fabric.
     * 
     */
    @Import(name="primaryFabricProvider")
    private @Nullable Output primaryFabricProvider;

    /**
     * @return The fabric provider of the primary fabric.
     * 
     */
    public Optional> primaryFabricProvider() {
        return Optional.ofNullable(this.primaryFabricProvider);
    }

    /**
     * The name of primary protection container friendly name.
     * 
     */
    @Import(name="primaryProtectionContainerFriendlyName")
    private @Nullable Output primaryProtectionContainerFriendlyName;

    /**
     * @return The name of primary protection container friendly name.
     * 
     */
    public Optional> primaryProtectionContainerFriendlyName() {
        return Optional.ofNullable(this.primaryProtectionContainerFriendlyName);
    }

    /**
     * The type of protection cluster type.
     * 
     */
    @Import(name="protectionClusterType")
    private @Nullable Output protectionClusterType;

    /**
     * @return The type of protection cluster type.
     * 
     */
    public Optional> protectionClusterType() {
        return Optional.ofNullable(this.protectionClusterType);
    }

    /**
     * The protection status.
     * 
     */
    @Import(name="protectionState")
    private @Nullable Output protectionState;

    /**
     * @return The protection status.
     * 
     */
    public Optional> protectionState() {
        return Optional.ofNullable(this.protectionState);
    }

    /**
     * The protection state description.
     * 
     */
    @Import(name="protectionStateDescription")
    private @Nullable Output protectionStateDescription;

    /**
     * @return The protection state description.
     * 
     */
    public Optional> protectionStateDescription() {
        return Optional.ofNullable(this.protectionStateDescription);
    }

    /**
     * The Replication cluster provider custom settings.
     * 
     */
    @Import(name="providerSpecificDetails")
    private @Nullable Output providerSpecificDetails;

    /**
     * @return The Replication cluster provider custom settings.
     * 
     */
    public Optional> providerSpecificDetails() {
        return Optional.ofNullable(this.providerSpecificDetails);
    }

    /**
     * The recovery container Id.
     * 
     */
    @Import(name="recoveryContainerId")
    private @Nullable Output recoveryContainerId;

    /**
     * @return The recovery container Id.
     * 
     */
    public Optional> recoveryContainerId() {
        return Optional.ofNullable(this.recoveryContainerId);
    }

    /**
     * The friendly name of recovery fabric.
     * 
     */
    @Import(name="recoveryFabricFriendlyName")
    private @Nullable Output recoveryFabricFriendlyName;

    /**
     * @return The friendly name of recovery fabric.
     * 
     */
    public Optional> recoveryFabricFriendlyName() {
        return Optional.ofNullable(this.recoveryFabricFriendlyName);
    }

    /**
     * The Arm Id of recovery fabric.
     * 
     */
    @Import(name="recoveryFabricId")
    private @Nullable Output recoveryFabricId;

    /**
     * @return The Arm Id of recovery fabric.
     * 
     */
    public Optional> recoveryFabricId() {
        return Optional.ofNullable(this.recoveryFabricId);
    }

    /**
     * The name of recovery container friendly name.
     * 
     */
    @Import(name="recoveryProtectionContainerFriendlyName")
    private @Nullable Output recoveryProtectionContainerFriendlyName;

    /**
     * @return The name of recovery container friendly name.
     * 
     */
    public Optional> recoveryProtectionContainerFriendlyName() {
        return Optional.ofNullable(this.recoveryProtectionContainerFriendlyName);
    }

    /**
     * The consolidated protection health for the VM taking any issues with SRS as well as all the replication units associated with the VM's replication group into account. This is a string representation of the ProtectionHealth enumeration.
     * 
     */
    @Import(name="replicationHealth")
    private @Nullable Output replicationHealth;

    /**
     * @return The consolidated protection health for the VM taking any issues with SRS as well as all the replication units associated with the VM's replication group into account. This is a string representation of the ProtectionHealth enumeration.
     * 
     */
    public Optional> replicationHealth() {
        return Optional.ofNullable(this.replicationHealth);
    }

    /**
     * The shared disk properties.
     * 
     */
    @Import(name="sharedDiskProperties")
    private @Nullable Output sharedDiskProperties;

    /**
     * @return The shared disk properties.
     * 
     */
    public Optional> sharedDiskProperties() {
        return Optional.ofNullable(this.sharedDiskProperties);
    }

    /**
     * The Test failover state.
     * 
     */
    @Import(name="testFailoverState")
    private @Nullable Output testFailoverState;

    /**
     * @return The Test failover state.
     * 
     */
    public Optional> testFailoverState() {
        return Optional.ofNullable(this.testFailoverState);
    }

    /**
     * The Test failover state description.
     * 
     */
    @Import(name="testFailoverStateDescription")
    private @Nullable Output testFailoverStateDescription;

    /**
     * @return The Test failover state description.
     * 
     */
    public Optional> testFailoverStateDescription() {
        return Optional.ofNullable(this.testFailoverStateDescription);
    }

    private ReplicationProtectionClusterPropertiesArgs() {}

    private ReplicationProtectionClusterPropertiesArgs(ReplicationProtectionClusterPropertiesArgs $) {
        this.activeLocation = $.activeLocation;
        this.agentClusterId = $.agentClusterId;
        this.allowedOperations = $.allowedOperations;
        this.areAllClusterNodesRegistered = $.areAllClusterNodesRegistered;
        this.clusterFqdn = $.clusterFqdn;
        this.clusterNodeFqdns = $.clusterNodeFqdns;
        this.clusterProtectedItemIds = $.clusterProtectedItemIds;
        this.clusterRegisteredNodes = $.clusterRegisteredNodes;
        this.currentScenario = $.currentScenario;
        this.healthErrors = $.healthErrors;
        this.lastSuccessfulFailoverTime = $.lastSuccessfulFailoverTime;
        this.lastSuccessfulTestFailoverTime = $.lastSuccessfulTestFailoverTime;
        this.policyFriendlyName = $.policyFriendlyName;
        this.policyId = $.policyId;
        this.primaryFabricFriendlyName = $.primaryFabricFriendlyName;
        this.primaryFabricProvider = $.primaryFabricProvider;
        this.primaryProtectionContainerFriendlyName = $.primaryProtectionContainerFriendlyName;
        this.protectionClusterType = $.protectionClusterType;
        this.protectionState = $.protectionState;
        this.protectionStateDescription = $.protectionStateDescription;
        this.providerSpecificDetails = $.providerSpecificDetails;
        this.recoveryContainerId = $.recoveryContainerId;
        this.recoveryFabricFriendlyName = $.recoveryFabricFriendlyName;
        this.recoveryFabricId = $.recoveryFabricId;
        this.recoveryProtectionContainerFriendlyName = $.recoveryProtectionContainerFriendlyName;
        this.replicationHealth = $.replicationHealth;
        this.sharedDiskProperties = $.sharedDiskProperties;
        this.testFailoverState = $.testFailoverState;
        this.testFailoverStateDescription = $.testFailoverStateDescription;
    }

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

    public static final class Builder {
        private ReplicationProtectionClusterPropertiesArgs $;

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

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

        /**
         * @param activeLocation The Current active location of the Protection cluster.
         * 
         * @return builder
         * 
         */
        public Builder activeLocation(@Nullable Output activeLocation) {
            $.activeLocation = activeLocation;
            return this;
        }

        /**
         * @param activeLocation The Current active location of the Protection cluster.
         * 
         * @return builder
         * 
         */
        public Builder activeLocation(String activeLocation) {
            return activeLocation(Output.of(activeLocation));
        }

        /**
         * @param agentClusterId The Agent cluster Id.
         * 
         * @return builder
         * 
         */
        public Builder agentClusterId(@Nullable Output agentClusterId) {
            $.agentClusterId = agentClusterId;
            return this;
        }

        /**
         * @param agentClusterId The Agent cluster Id.
         * 
         * @return builder
         * 
         */
        public Builder agentClusterId(String agentClusterId) {
            return agentClusterId(Output.of(agentClusterId));
        }

        /**
         * @param allowedOperations The allowed operations on the Replication protection cluster.
         * 
         * @return builder
         * 
         */
        public Builder allowedOperations(@Nullable Output> allowedOperations) {
            $.allowedOperations = allowedOperations;
            return this;
        }

        /**
         * @param allowedOperations The allowed operations on the Replication protection cluster.
         * 
         * @return builder
         * 
         */
        public Builder allowedOperations(List allowedOperations) {
            return allowedOperations(Output.of(allowedOperations));
        }

        /**
         * @param allowedOperations The allowed operations on the Replication protection cluster.
         * 
         * @return builder
         * 
         */
        public Builder allowedOperations(String... allowedOperations) {
            return allowedOperations(List.of(allowedOperations));
        }

        /**
         * @param areAllClusterNodesRegistered A value indicating whether all nodes of the cluster are registered or not.
         * 
         * @return builder
         * 
         */
        public Builder areAllClusterNodesRegistered(@Nullable Output areAllClusterNodesRegistered) {
            $.areAllClusterNodesRegistered = areAllClusterNodesRegistered;
            return this;
        }

        /**
         * @param areAllClusterNodesRegistered A value indicating whether all nodes of the cluster are registered or not.
         * 
         * @return builder
         * 
         */
        public Builder areAllClusterNodesRegistered(Boolean areAllClusterNodesRegistered) {
            return areAllClusterNodesRegistered(Output.of(areAllClusterNodesRegistered));
        }

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

        /**
         * @param clusterFqdn The cluster FQDN.
         * 
         * @return builder
         * 
         */
        public Builder clusterFqdn(String clusterFqdn) {
            return clusterFqdn(Output.of(clusterFqdn));
        }

        /**
         * @param clusterNodeFqdns The List of cluster Node FQDNs.
         * 
         * @return builder
         * 
         */
        public Builder clusterNodeFqdns(@Nullable Output> clusterNodeFqdns) {
            $.clusterNodeFqdns = clusterNodeFqdns;
            return this;
        }

        /**
         * @param clusterNodeFqdns The List of cluster Node FQDNs.
         * 
         * @return builder
         * 
         */
        public Builder clusterNodeFqdns(List clusterNodeFqdns) {
            return clusterNodeFqdns(Output.of(clusterNodeFqdns));
        }

        /**
         * @param clusterNodeFqdns The List of cluster Node FQDNs.
         * 
         * @return builder
         * 
         */
        public Builder clusterNodeFqdns(String... clusterNodeFqdns) {
            return clusterNodeFqdns(List.of(clusterNodeFqdns));
        }

        /**
         * @param clusterProtectedItemIds The List of Protected Item Id's.
         * 
         * @return builder
         * 
         */
        public Builder clusterProtectedItemIds(@Nullable Output> clusterProtectedItemIds) {
            $.clusterProtectedItemIds = clusterProtectedItemIds;
            return this;
        }

        /**
         * @param clusterProtectedItemIds The List of Protected Item Id's.
         * 
         * @return builder
         * 
         */
        public Builder clusterProtectedItemIds(List clusterProtectedItemIds) {
            return clusterProtectedItemIds(Output.of(clusterProtectedItemIds));
        }

        /**
         * @param clusterProtectedItemIds The List of Protected Item Id's.
         * 
         * @return builder
         * 
         */
        public Builder clusterProtectedItemIds(String... clusterProtectedItemIds) {
            return clusterProtectedItemIds(List.of(clusterProtectedItemIds));
        }

        /**
         * @param clusterRegisteredNodes The registered node details.
         * 
         * @return builder
         * 
         */
        public Builder clusterRegisteredNodes(@Nullable Output> clusterRegisteredNodes) {
            $.clusterRegisteredNodes = clusterRegisteredNodes;
            return this;
        }

        /**
         * @param clusterRegisteredNodes The registered node details.
         * 
         * @return builder
         * 
         */
        public Builder clusterRegisteredNodes(List clusterRegisteredNodes) {
            return clusterRegisteredNodes(Output.of(clusterRegisteredNodes));
        }

        /**
         * @param clusterRegisteredNodes The registered node details.
         * 
         * @return builder
         * 
         */
        public Builder clusterRegisteredNodes(RegisteredClusterNodesArgs... clusterRegisteredNodes) {
            return clusterRegisteredNodes(List.of(clusterRegisteredNodes));
        }

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

        /**
         * @param currentScenario The current scenario.
         * 
         * @return builder
         * 
         */
        public Builder currentScenario(CurrentScenarioDetailsArgs currentScenario) {
            return currentScenario(Output.of(currentScenario));
        }

        /**
         * @param healthErrors List of health errors.
         * 
         * @return builder
         * 
         */
        public Builder healthErrors(@Nullable Output> healthErrors) {
            $.healthErrors = healthErrors;
            return this;
        }

        /**
         * @param healthErrors List of health errors.
         * 
         * @return builder
         * 
         */
        public Builder healthErrors(List healthErrors) {
            return healthErrors(Output.of(healthErrors));
        }

        /**
         * @param healthErrors List of health errors.
         * 
         * @return builder
         * 
         */
        public Builder healthErrors(HealthErrorArgs... healthErrors) {
            return healthErrors(List.of(healthErrors));
        }

        /**
         * @param lastSuccessfulFailoverTime The last successful failover time.
         * 
         * @return builder
         * 
         */
        public Builder lastSuccessfulFailoverTime(@Nullable Output lastSuccessfulFailoverTime) {
            $.lastSuccessfulFailoverTime = lastSuccessfulFailoverTime;
            return this;
        }

        /**
         * @param lastSuccessfulFailoverTime The last successful failover time.
         * 
         * @return builder
         * 
         */
        public Builder lastSuccessfulFailoverTime(String lastSuccessfulFailoverTime) {
            return lastSuccessfulFailoverTime(Output.of(lastSuccessfulFailoverTime));
        }

        /**
         * @param lastSuccessfulTestFailoverTime The last successful test failover time.
         * 
         * @return builder
         * 
         */
        public Builder lastSuccessfulTestFailoverTime(@Nullable Output lastSuccessfulTestFailoverTime) {
            $.lastSuccessfulTestFailoverTime = lastSuccessfulTestFailoverTime;
            return this;
        }

        /**
         * @param lastSuccessfulTestFailoverTime The last successful test failover time.
         * 
         * @return builder
         * 
         */
        public Builder lastSuccessfulTestFailoverTime(String lastSuccessfulTestFailoverTime) {
            return lastSuccessfulTestFailoverTime(Output.of(lastSuccessfulTestFailoverTime));
        }

        /**
         * @param policyFriendlyName The name of Policy governing this PE.
         * 
         * @return builder
         * 
         */
        public Builder policyFriendlyName(@Nullable Output policyFriendlyName) {
            $.policyFriendlyName = policyFriendlyName;
            return this;
        }

        /**
         * @param policyFriendlyName The name of Policy governing this PE.
         * 
         * @return builder
         * 
         */
        public Builder policyFriendlyName(String policyFriendlyName) {
            return policyFriendlyName(Output.of(policyFriendlyName));
        }

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

        /**
         * @param policyId The Policy Id.
         * 
         * @return builder
         * 
         */
        public Builder policyId(String policyId) {
            return policyId(Output.of(policyId));
        }

        /**
         * @param primaryFabricFriendlyName The friendly name of the primary fabric.
         * 
         * @return builder
         * 
         */
        public Builder primaryFabricFriendlyName(@Nullable Output primaryFabricFriendlyName) {
            $.primaryFabricFriendlyName = primaryFabricFriendlyName;
            return this;
        }

        /**
         * @param primaryFabricFriendlyName The friendly name of the primary fabric.
         * 
         * @return builder
         * 
         */
        public Builder primaryFabricFriendlyName(String primaryFabricFriendlyName) {
            return primaryFabricFriendlyName(Output.of(primaryFabricFriendlyName));
        }

        /**
         * @param primaryFabricProvider The fabric provider of the primary fabric.
         * 
         * @return builder
         * 
         */
        public Builder primaryFabricProvider(@Nullable Output primaryFabricProvider) {
            $.primaryFabricProvider = primaryFabricProvider;
            return this;
        }

        /**
         * @param primaryFabricProvider The fabric provider of the primary fabric.
         * 
         * @return builder
         * 
         */
        public Builder primaryFabricProvider(String primaryFabricProvider) {
            return primaryFabricProvider(Output.of(primaryFabricProvider));
        }

        /**
         * @param primaryProtectionContainerFriendlyName The name of primary protection container friendly name.
         * 
         * @return builder
         * 
         */
        public Builder primaryProtectionContainerFriendlyName(@Nullable Output primaryProtectionContainerFriendlyName) {
            $.primaryProtectionContainerFriendlyName = primaryProtectionContainerFriendlyName;
            return this;
        }

        /**
         * @param primaryProtectionContainerFriendlyName The name of primary protection container friendly name.
         * 
         * @return builder
         * 
         */
        public Builder primaryProtectionContainerFriendlyName(String primaryProtectionContainerFriendlyName) {
            return primaryProtectionContainerFriendlyName(Output.of(primaryProtectionContainerFriendlyName));
        }

        /**
         * @param protectionClusterType The type of protection cluster type.
         * 
         * @return builder
         * 
         */
        public Builder protectionClusterType(@Nullable Output protectionClusterType) {
            $.protectionClusterType = protectionClusterType;
            return this;
        }

        /**
         * @param protectionClusterType The type of protection cluster type.
         * 
         * @return builder
         * 
         */
        public Builder protectionClusterType(String protectionClusterType) {
            return protectionClusterType(Output.of(protectionClusterType));
        }

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

        /**
         * @param protectionState The protection status.
         * 
         * @return builder
         * 
         */
        public Builder protectionState(String protectionState) {
            return protectionState(Output.of(protectionState));
        }

        /**
         * @param protectionStateDescription The protection state description.
         * 
         * @return builder
         * 
         */
        public Builder protectionStateDescription(@Nullable Output protectionStateDescription) {
            $.protectionStateDescription = protectionStateDescription;
            return this;
        }

        /**
         * @param protectionStateDescription The protection state description.
         * 
         * @return builder
         * 
         */
        public Builder protectionStateDescription(String protectionStateDescription) {
            return protectionStateDescription(Output.of(protectionStateDescription));
        }

        /**
         * @param providerSpecificDetails The Replication cluster provider custom settings.
         * 
         * @return builder
         * 
         */
        public Builder providerSpecificDetails(@Nullable Output providerSpecificDetails) {
            $.providerSpecificDetails = providerSpecificDetails;
            return this;
        }

        /**
         * @param providerSpecificDetails The Replication cluster provider custom settings.
         * 
         * @return builder
         * 
         */
        public Builder providerSpecificDetails(A2AReplicationProtectionClusterDetailsArgs providerSpecificDetails) {
            return providerSpecificDetails(Output.of(providerSpecificDetails));
        }

        /**
         * @param recoveryContainerId The recovery container Id.
         * 
         * @return builder
         * 
         */
        public Builder recoveryContainerId(@Nullable Output recoveryContainerId) {
            $.recoveryContainerId = recoveryContainerId;
            return this;
        }

        /**
         * @param recoveryContainerId The recovery container Id.
         * 
         * @return builder
         * 
         */
        public Builder recoveryContainerId(String recoveryContainerId) {
            return recoveryContainerId(Output.of(recoveryContainerId));
        }

        /**
         * @param recoveryFabricFriendlyName The friendly name of recovery fabric.
         * 
         * @return builder
         * 
         */
        public Builder recoveryFabricFriendlyName(@Nullable Output recoveryFabricFriendlyName) {
            $.recoveryFabricFriendlyName = recoveryFabricFriendlyName;
            return this;
        }

        /**
         * @param recoveryFabricFriendlyName The friendly name of recovery fabric.
         * 
         * @return builder
         * 
         */
        public Builder recoveryFabricFriendlyName(String recoveryFabricFriendlyName) {
            return recoveryFabricFriendlyName(Output.of(recoveryFabricFriendlyName));
        }

        /**
         * @param recoveryFabricId The Arm Id of recovery fabric.
         * 
         * @return builder
         * 
         */
        public Builder recoveryFabricId(@Nullable Output recoveryFabricId) {
            $.recoveryFabricId = recoveryFabricId;
            return this;
        }

        /**
         * @param recoveryFabricId The Arm Id of recovery fabric.
         * 
         * @return builder
         * 
         */
        public Builder recoveryFabricId(String recoveryFabricId) {
            return recoveryFabricId(Output.of(recoveryFabricId));
        }

        /**
         * @param recoveryProtectionContainerFriendlyName The name of recovery container friendly name.
         * 
         * @return builder
         * 
         */
        public Builder recoveryProtectionContainerFriendlyName(@Nullable Output recoveryProtectionContainerFriendlyName) {
            $.recoveryProtectionContainerFriendlyName = recoveryProtectionContainerFriendlyName;
            return this;
        }

        /**
         * @param recoveryProtectionContainerFriendlyName The name of recovery container friendly name.
         * 
         * @return builder
         * 
         */
        public Builder recoveryProtectionContainerFriendlyName(String recoveryProtectionContainerFriendlyName) {
            return recoveryProtectionContainerFriendlyName(Output.of(recoveryProtectionContainerFriendlyName));
        }

        /**
         * @param replicationHealth The consolidated protection health for the VM taking any issues with SRS as well as all the replication units associated with the VM's replication group into account. This is a string representation of the ProtectionHealth enumeration.
         * 
         * @return builder
         * 
         */
        public Builder replicationHealth(@Nullable Output replicationHealth) {
            $.replicationHealth = replicationHealth;
            return this;
        }

        /**
         * @param replicationHealth The consolidated protection health for the VM taking any issues with SRS as well as all the replication units associated with the VM's replication group into account. This is a string representation of the ProtectionHealth enumeration.
         * 
         * @return builder
         * 
         */
        public Builder replicationHealth(String replicationHealth) {
            return replicationHealth(Output.of(replicationHealth));
        }

        /**
         * @param sharedDiskProperties The shared disk properties.
         * 
         * @return builder
         * 
         */
        public Builder sharedDiskProperties(@Nullable Output sharedDiskProperties) {
            $.sharedDiskProperties = sharedDiskProperties;
            return this;
        }

        /**
         * @param sharedDiskProperties The shared disk properties.
         * 
         * @return builder
         * 
         */
        public Builder sharedDiskProperties(SharedDiskReplicationItemPropertiesArgs sharedDiskProperties) {
            return sharedDiskProperties(Output.of(sharedDiskProperties));
        }

        /**
         * @param testFailoverState The Test failover state.
         * 
         * @return builder
         * 
         */
        public Builder testFailoverState(@Nullable Output testFailoverState) {
            $.testFailoverState = testFailoverState;
            return this;
        }

        /**
         * @param testFailoverState The Test failover state.
         * 
         * @return builder
         * 
         */
        public Builder testFailoverState(String testFailoverState) {
            return testFailoverState(Output.of(testFailoverState));
        }

        /**
         * @param testFailoverStateDescription The Test failover state description.
         * 
         * @return builder
         * 
         */
        public Builder testFailoverStateDescription(@Nullable Output testFailoverStateDescription) {
            $.testFailoverStateDescription = testFailoverStateDescription;
            return this;
        }

        /**
         * @param testFailoverStateDescription The Test failover state description.
         * 
         * @return builder
         * 
         */
        public Builder testFailoverStateDescription(String testFailoverStateDescription) {
            return testFailoverStateDescription(Output.of(testFailoverStateDescription));
        }

        public ReplicationProtectionClusterPropertiesArgs build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy