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

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

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

import com.pulumi.azurenative.recoveryservices.enums.CreateMode;
import com.pulumi.azurenative.recoveryservices.enums.LastBackupStatus;
import com.pulumi.azurenative.recoveryservices.enums.ProtectedItemHealthStatus;
import com.pulumi.azurenative.recoveryservices.enums.ProtectionState;
import com.pulumi.azurenative.recoveryservices.inputs.AzureVmWorkloadProtectedItemExtendedInfoArgs;
import com.pulumi.azurenative.recoveryservices.inputs.DistributedNodesInfoArgs;
import com.pulumi.azurenative.recoveryservices.inputs.KPIResourceHealthDetailsArgs;
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.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Azure VM workload-specific protected item representing SAP ASE Database.
 * 
 */
public final class AzureVmWorkloadSAPAseDatabaseProtectedItemArgs extends com.pulumi.resources.ResourceArgs {

    public static final AzureVmWorkloadSAPAseDatabaseProtectedItemArgs Empty = new AzureVmWorkloadSAPAseDatabaseProtectedItemArgs();

    /**
     * Name of the backup set the backup item belongs to
     * 
     */
    @Import(name="backupSetName")
    private @Nullable Output backupSetName;

    /**
     * @return Name of the backup set the backup item belongs to
     * 
     */
    public Optional> backupSetName() {
        return Optional.ofNullable(this.backupSetName);
    }

    /**
     * Unique name of container
     * 
     */
    @Import(name="containerName")
    private @Nullable Output containerName;

    /**
     * @return Unique name of container
     * 
     */
    public Optional> containerName() {
        return Optional.ofNullable(this.containerName);
    }

    /**
     * Create mode to indicate recovery of existing soft deleted data source or creation of new data source.
     * 
     */
    @Import(name="createMode")
    private @Nullable Output> createMode;

    /**
     * @return Create mode to indicate recovery of existing soft deleted data source or creation of new data source.
     * 
     */
    public Optional>> createMode() {
        return Optional.ofNullable(this.createMode);
    }

    /**
     * Time for deferred deletion in UTC
     * 
     */
    @Import(name="deferredDeleteTimeInUTC")
    private @Nullable Output deferredDeleteTimeInUTC;

    /**
     * @return Time for deferred deletion in UTC
     * 
     */
    public Optional> deferredDeleteTimeInUTC() {
        return Optional.ofNullable(this.deferredDeleteTimeInUTC);
    }

    /**
     * Time remaining before the DS marked for deferred delete is permanently deleted
     * 
     */
    @Import(name="deferredDeleteTimeRemaining")
    private @Nullable Output deferredDeleteTimeRemaining;

    /**
     * @return Time remaining before the DS marked for deferred delete is permanently deleted
     * 
     */
    public Optional> deferredDeleteTimeRemaining() {
        return Optional.ofNullable(this.deferredDeleteTimeRemaining);
    }

    /**
     * Additional information for this backup item.
     * 
     */
    @Import(name="extendedInfo")
    private @Nullable Output extendedInfo;

    /**
     * @return Additional information for this backup item.
     * 
     */
    public Optional> extendedInfo() {
        return Optional.ofNullable(this.extendedInfo);
    }

    /**
     * Flag to identify whether datasource is protected in archive
     * 
     */
    @Import(name="isArchiveEnabled")
    private @Nullable Output isArchiveEnabled;

    /**
     * @return Flag to identify whether datasource is protected in archive
     * 
     */
    public Optional> isArchiveEnabled() {
        return Optional.ofNullable(this.isArchiveEnabled);
    }

    /**
     * Flag to identify whether the deferred deleted DS is to be purged soon
     * 
     */
    @Import(name="isDeferredDeleteScheduleUpcoming")
    private @Nullable Output isDeferredDeleteScheduleUpcoming;

    /**
     * @return Flag to identify whether the deferred deleted DS is to be purged soon
     * 
     */
    public Optional> isDeferredDeleteScheduleUpcoming() {
        return Optional.ofNullable(this.isDeferredDeleteScheduleUpcoming);
    }

    /**
     * Flag to identify that deferred deleted DS is to be moved into Pause state
     * 
     */
    @Import(name="isRehydrate")
    private @Nullable Output isRehydrate;

    /**
     * @return Flag to identify that deferred deleted DS is to be moved into Pause state
     * 
     */
    public Optional> isRehydrate() {
        return Optional.ofNullable(this.isRehydrate);
    }

    /**
     * Flag to identify whether the DS is scheduled for deferred delete
     * 
     */
    @Import(name="isScheduledForDeferredDelete")
    private @Nullable Output isScheduledForDeferredDelete;

    /**
     * @return Flag to identify whether the DS is scheduled for deferred delete
     * 
     */
    public Optional> isScheduledForDeferredDelete() {
        return Optional.ofNullable(this.isScheduledForDeferredDelete);
    }

    /**
     * Health details of different KPIs
     * 
     */
    @Import(name="kpisHealths")
    private @Nullable Output> kpisHealths;

    /**
     * @return Health details of different KPIs
     * 
     */
    public Optional>> kpisHealths() {
        return Optional.ofNullable(this.kpisHealths);
    }

    /**
     * Last backup operation status. Possible values: Healthy, Unhealthy.
     * 
     */
    @Import(name="lastBackupStatus")
    private @Nullable Output> lastBackupStatus;

    /**
     * @return Last backup operation status. Possible values: Healthy, Unhealthy.
     * 
     */
    public Optional>> lastBackupStatus() {
        return Optional.ofNullable(this.lastBackupStatus);
    }

    /**
     * Timestamp of the last backup operation on this backup item.
     * 
     */
    @Import(name="lastBackupTime")
    private @Nullable Output lastBackupTime;

    /**
     * @return Timestamp of the last backup operation on this backup item.
     * 
     */
    public Optional> lastBackupTime() {
        return Optional.ofNullable(this.lastBackupTime);
    }

    /**
     * Timestamp when the last (latest) backup copy was created for this backup item.
     * 
     */
    @Import(name="lastRecoveryPoint")
    private @Nullable Output lastRecoveryPoint;

    /**
     * @return Timestamp when the last (latest) backup copy was created for this backup item.
     * 
     */
    public Optional> lastRecoveryPoint() {
        return Optional.ofNullable(this.lastRecoveryPoint);
    }

    /**
     * List of the nodes in case of distributed container.
     * 
     */
    @Import(name="nodesList")
    private @Nullable Output> nodesList;

    /**
     * @return List of the nodes in case of distributed container.
     * 
     */
    public Optional>> nodesList() {
        return Optional.ofNullable(this.nodesList);
    }

    /**
     * Parent name of the DB such as Instance or Availability Group.
     * 
     */
    @Import(name="parentName")
    private @Nullable Output parentName;

    /**
     * @return Parent name of the DB such as Instance or Availability Group.
     * 
     */
    public Optional> parentName() {
        return Optional.ofNullable(this.parentName);
    }

    /**
     * Parent type of protected item, example: for a DB, standalone server or distributed
     * 
     */
    @Import(name="parentType")
    private @Nullable Output parentType;

    /**
     * @return Parent type of protected item, example: for a DB, standalone server or distributed
     * 
     */
    public Optional> parentType() {
        return Optional.ofNullable(this.parentType);
    }

    /**
     * ID of the backup policy with which this item is backed up.
     * 
     */
    @Import(name="policyId")
    private @Nullable Output policyId;

    /**
     * @return ID of the backup policy with which this item is backed up.
     * 
     */
    public Optional> policyId() {
        return Optional.ofNullable(this.policyId);
    }

    /**
     * Name of the policy used for protection
     * 
     */
    @Import(name="policyName")
    private @Nullable Output policyName;

    /**
     * @return Name of the policy used for protection
     * 
     */
    public Optional> policyName() {
        return Optional.ofNullable(this.policyName);
    }

    /**
     * Data ID of the protected item.
     * 
     */
    @Import(name="protectedItemDataSourceId")
    private @Nullable Output protectedItemDataSourceId;

    /**
     * @return Data ID of the protected item.
     * 
     */
    public Optional> protectedItemDataSourceId() {
        return Optional.ofNullable(this.protectedItemDataSourceId);
    }

    /**
     * Health status of the backup item, evaluated based on last heartbeat received
     * 
     */
    @Import(name="protectedItemHealthStatus")
    private @Nullable Output> protectedItemHealthStatus;

    /**
     * @return Health status of the backup item, evaluated based on last heartbeat received
     * 
     */
    public Optional>> protectedItemHealthStatus() {
        return Optional.ofNullable(this.protectedItemHealthStatus);
    }

    /**
     * backup item type.
     * Expected value is 'AzureVmWorkloadSAPAseDatabase'.
     * 
     */
    @Import(name="protectedItemType", required=true)
    private Output protectedItemType;

    /**
     * @return backup item type.
     * Expected value is 'AzureVmWorkloadSAPAseDatabase'.
     * 
     */
    public Output protectedItemType() {
        return this.protectedItemType;
    }

    /**
     * Backup state of this backup item.
     * 
     */
    @Import(name="protectionState")
    private @Nullable Output> protectionState;

    /**
     * @return Backup state of this backup item.
     * 
     */
    public Optional>> protectionState() {
        return Optional.ofNullable(this.protectionState);
    }

    /**
     * ResourceGuardOperationRequests on which LAC check will be performed
     * 
     */
    @Import(name="resourceGuardOperationRequests")
    private @Nullable Output> resourceGuardOperationRequests;

    /**
     * @return ResourceGuardOperationRequests on which LAC check will be performed
     * 
     */
    public Optional>> resourceGuardOperationRequests() {
        return Optional.ofNullable(this.resourceGuardOperationRequests);
    }

    /**
     * Host/Cluster Name for instance or AG
     * 
     */
    @Import(name="serverName")
    private @Nullable Output serverName;

    /**
     * @return Host/Cluster Name for instance or AG
     * 
     */
    public Optional> serverName() {
        return Optional.ofNullable(this.serverName);
    }

    /**
     * Soft delete retention period in days
     * 
     */
    @Import(name="softDeleteRetentionPeriodInDays")
    private @Nullable Output softDeleteRetentionPeriodInDays;

    /**
     * @return Soft delete retention period in days
     * 
     */
    public Optional> softDeleteRetentionPeriodInDays() {
        return Optional.ofNullable(this.softDeleteRetentionPeriodInDays);
    }

    /**
     * ARM ID of the resource to be backed up.
     * 
     */
    @Import(name="sourceResourceId")
    private @Nullable Output sourceResourceId;

    /**
     * @return ARM ID of the resource to be backed up.
     * 
     */
    public Optional> sourceResourceId() {
        return Optional.ofNullable(this.sourceResourceId);
    }

    private AzureVmWorkloadSAPAseDatabaseProtectedItemArgs() {}

    private AzureVmWorkloadSAPAseDatabaseProtectedItemArgs(AzureVmWorkloadSAPAseDatabaseProtectedItemArgs $) {
        this.backupSetName = $.backupSetName;
        this.containerName = $.containerName;
        this.createMode = $.createMode;
        this.deferredDeleteTimeInUTC = $.deferredDeleteTimeInUTC;
        this.deferredDeleteTimeRemaining = $.deferredDeleteTimeRemaining;
        this.extendedInfo = $.extendedInfo;
        this.isArchiveEnabled = $.isArchiveEnabled;
        this.isDeferredDeleteScheduleUpcoming = $.isDeferredDeleteScheduleUpcoming;
        this.isRehydrate = $.isRehydrate;
        this.isScheduledForDeferredDelete = $.isScheduledForDeferredDelete;
        this.kpisHealths = $.kpisHealths;
        this.lastBackupStatus = $.lastBackupStatus;
        this.lastBackupTime = $.lastBackupTime;
        this.lastRecoveryPoint = $.lastRecoveryPoint;
        this.nodesList = $.nodesList;
        this.parentName = $.parentName;
        this.parentType = $.parentType;
        this.policyId = $.policyId;
        this.policyName = $.policyName;
        this.protectedItemDataSourceId = $.protectedItemDataSourceId;
        this.protectedItemHealthStatus = $.protectedItemHealthStatus;
        this.protectedItemType = $.protectedItemType;
        this.protectionState = $.protectionState;
        this.resourceGuardOperationRequests = $.resourceGuardOperationRequests;
        this.serverName = $.serverName;
        this.softDeleteRetentionPeriodInDays = $.softDeleteRetentionPeriodInDays;
        this.sourceResourceId = $.sourceResourceId;
    }

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

    public static final class Builder {
        private AzureVmWorkloadSAPAseDatabaseProtectedItemArgs $;

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

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

        /**
         * @param backupSetName Name of the backup set the backup item belongs to
         * 
         * @return builder
         * 
         */
        public Builder backupSetName(@Nullable Output backupSetName) {
            $.backupSetName = backupSetName;
            return this;
        }

        /**
         * @param backupSetName Name of the backup set the backup item belongs to
         * 
         * @return builder
         * 
         */
        public Builder backupSetName(String backupSetName) {
            return backupSetName(Output.of(backupSetName));
        }

        /**
         * @param containerName Unique name of container
         * 
         * @return builder
         * 
         */
        public Builder containerName(@Nullable Output containerName) {
            $.containerName = containerName;
            return this;
        }

        /**
         * @param containerName Unique name of container
         * 
         * @return builder
         * 
         */
        public Builder containerName(String containerName) {
            return containerName(Output.of(containerName));
        }

        /**
         * @param createMode Create mode to indicate recovery of existing soft deleted data source or creation of new data source.
         * 
         * @return builder
         * 
         */
        public Builder createMode(@Nullable Output> createMode) {
            $.createMode = createMode;
            return this;
        }

        /**
         * @param createMode Create mode to indicate recovery of existing soft deleted data source or creation of new data source.
         * 
         * @return builder
         * 
         */
        public Builder createMode(Either createMode) {
            return createMode(Output.of(createMode));
        }

        /**
         * @param createMode Create mode to indicate recovery of existing soft deleted data source or creation of new data source.
         * 
         * @return builder
         * 
         */
        public Builder createMode(String createMode) {
            return createMode(Either.ofLeft(createMode));
        }

        /**
         * @param createMode Create mode to indicate recovery of existing soft deleted data source or creation of new data source.
         * 
         * @return builder
         * 
         */
        public Builder createMode(CreateMode createMode) {
            return createMode(Either.ofRight(createMode));
        }

        /**
         * @param deferredDeleteTimeInUTC Time for deferred deletion in UTC
         * 
         * @return builder
         * 
         */
        public Builder deferredDeleteTimeInUTC(@Nullable Output deferredDeleteTimeInUTC) {
            $.deferredDeleteTimeInUTC = deferredDeleteTimeInUTC;
            return this;
        }

        /**
         * @param deferredDeleteTimeInUTC Time for deferred deletion in UTC
         * 
         * @return builder
         * 
         */
        public Builder deferredDeleteTimeInUTC(String deferredDeleteTimeInUTC) {
            return deferredDeleteTimeInUTC(Output.of(deferredDeleteTimeInUTC));
        }

        /**
         * @param deferredDeleteTimeRemaining Time remaining before the DS marked for deferred delete is permanently deleted
         * 
         * @return builder
         * 
         */
        public Builder deferredDeleteTimeRemaining(@Nullable Output deferredDeleteTimeRemaining) {
            $.deferredDeleteTimeRemaining = deferredDeleteTimeRemaining;
            return this;
        }

        /**
         * @param deferredDeleteTimeRemaining Time remaining before the DS marked for deferred delete is permanently deleted
         * 
         * @return builder
         * 
         */
        public Builder deferredDeleteTimeRemaining(String deferredDeleteTimeRemaining) {
            return deferredDeleteTimeRemaining(Output.of(deferredDeleteTimeRemaining));
        }

        /**
         * @param extendedInfo Additional information for this backup item.
         * 
         * @return builder
         * 
         */
        public Builder extendedInfo(@Nullable Output extendedInfo) {
            $.extendedInfo = extendedInfo;
            return this;
        }

        /**
         * @param extendedInfo Additional information for this backup item.
         * 
         * @return builder
         * 
         */
        public Builder extendedInfo(AzureVmWorkloadProtectedItemExtendedInfoArgs extendedInfo) {
            return extendedInfo(Output.of(extendedInfo));
        }

        /**
         * @param isArchiveEnabled Flag to identify whether datasource is protected in archive
         * 
         * @return builder
         * 
         */
        public Builder isArchiveEnabled(@Nullable Output isArchiveEnabled) {
            $.isArchiveEnabled = isArchiveEnabled;
            return this;
        }

        /**
         * @param isArchiveEnabled Flag to identify whether datasource is protected in archive
         * 
         * @return builder
         * 
         */
        public Builder isArchiveEnabled(Boolean isArchiveEnabled) {
            return isArchiveEnabled(Output.of(isArchiveEnabled));
        }

        /**
         * @param isDeferredDeleteScheduleUpcoming Flag to identify whether the deferred deleted DS is to be purged soon
         * 
         * @return builder
         * 
         */
        public Builder isDeferredDeleteScheduleUpcoming(@Nullable Output isDeferredDeleteScheduleUpcoming) {
            $.isDeferredDeleteScheduleUpcoming = isDeferredDeleteScheduleUpcoming;
            return this;
        }

        /**
         * @param isDeferredDeleteScheduleUpcoming Flag to identify whether the deferred deleted DS is to be purged soon
         * 
         * @return builder
         * 
         */
        public Builder isDeferredDeleteScheduleUpcoming(Boolean isDeferredDeleteScheduleUpcoming) {
            return isDeferredDeleteScheduleUpcoming(Output.of(isDeferredDeleteScheduleUpcoming));
        }

        /**
         * @param isRehydrate Flag to identify that deferred deleted DS is to be moved into Pause state
         * 
         * @return builder
         * 
         */
        public Builder isRehydrate(@Nullable Output isRehydrate) {
            $.isRehydrate = isRehydrate;
            return this;
        }

        /**
         * @param isRehydrate Flag to identify that deferred deleted DS is to be moved into Pause state
         * 
         * @return builder
         * 
         */
        public Builder isRehydrate(Boolean isRehydrate) {
            return isRehydrate(Output.of(isRehydrate));
        }

        /**
         * @param isScheduledForDeferredDelete Flag to identify whether the DS is scheduled for deferred delete
         * 
         * @return builder
         * 
         */
        public Builder isScheduledForDeferredDelete(@Nullable Output isScheduledForDeferredDelete) {
            $.isScheduledForDeferredDelete = isScheduledForDeferredDelete;
            return this;
        }

        /**
         * @param isScheduledForDeferredDelete Flag to identify whether the DS is scheduled for deferred delete
         * 
         * @return builder
         * 
         */
        public Builder isScheduledForDeferredDelete(Boolean isScheduledForDeferredDelete) {
            return isScheduledForDeferredDelete(Output.of(isScheduledForDeferredDelete));
        }

        /**
         * @param kpisHealths Health details of different KPIs
         * 
         * @return builder
         * 
         */
        public Builder kpisHealths(@Nullable Output> kpisHealths) {
            $.kpisHealths = kpisHealths;
            return this;
        }

        /**
         * @param kpisHealths Health details of different KPIs
         * 
         * @return builder
         * 
         */
        public Builder kpisHealths(Map kpisHealths) {
            return kpisHealths(Output.of(kpisHealths));
        }

        /**
         * @param lastBackupStatus Last backup operation status. Possible values: Healthy, Unhealthy.
         * 
         * @return builder
         * 
         */
        public Builder lastBackupStatus(@Nullable Output> lastBackupStatus) {
            $.lastBackupStatus = lastBackupStatus;
            return this;
        }

        /**
         * @param lastBackupStatus Last backup operation status. Possible values: Healthy, Unhealthy.
         * 
         * @return builder
         * 
         */
        public Builder lastBackupStatus(Either lastBackupStatus) {
            return lastBackupStatus(Output.of(lastBackupStatus));
        }

        /**
         * @param lastBackupStatus Last backup operation status. Possible values: Healthy, Unhealthy.
         * 
         * @return builder
         * 
         */
        public Builder lastBackupStatus(String lastBackupStatus) {
            return lastBackupStatus(Either.ofLeft(lastBackupStatus));
        }

        /**
         * @param lastBackupStatus Last backup operation status. Possible values: Healthy, Unhealthy.
         * 
         * @return builder
         * 
         */
        public Builder lastBackupStatus(LastBackupStatus lastBackupStatus) {
            return lastBackupStatus(Either.ofRight(lastBackupStatus));
        }

        /**
         * @param lastBackupTime Timestamp of the last backup operation on this backup item.
         * 
         * @return builder
         * 
         */
        public Builder lastBackupTime(@Nullable Output lastBackupTime) {
            $.lastBackupTime = lastBackupTime;
            return this;
        }

        /**
         * @param lastBackupTime Timestamp of the last backup operation on this backup item.
         * 
         * @return builder
         * 
         */
        public Builder lastBackupTime(String lastBackupTime) {
            return lastBackupTime(Output.of(lastBackupTime));
        }

        /**
         * @param lastRecoveryPoint Timestamp when the last (latest) backup copy was created for this backup item.
         * 
         * @return builder
         * 
         */
        public Builder lastRecoveryPoint(@Nullable Output lastRecoveryPoint) {
            $.lastRecoveryPoint = lastRecoveryPoint;
            return this;
        }

        /**
         * @param lastRecoveryPoint Timestamp when the last (latest) backup copy was created for this backup item.
         * 
         * @return builder
         * 
         */
        public Builder lastRecoveryPoint(String lastRecoveryPoint) {
            return lastRecoveryPoint(Output.of(lastRecoveryPoint));
        }

        /**
         * @param nodesList List of the nodes in case of distributed container.
         * 
         * @return builder
         * 
         */
        public Builder nodesList(@Nullable Output> nodesList) {
            $.nodesList = nodesList;
            return this;
        }

        /**
         * @param nodesList List of the nodes in case of distributed container.
         * 
         * @return builder
         * 
         */
        public Builder nodesList(List nodesList) {
            return nodesList(Output.of(nodesList));
        }

        /**
         * @param nodesList List of the nodes in case of distributed container.
         * 
         * @return builder
         * 
         */
        public Builder nodesList(DistributedNodesInfoArgs... nodesList) {
            return nodesList(List.of(nodesList));
        }

        /**
         * @param parentName Parent name of the DB such as Instance or Availability Group.
         * 
         * @return builder
         * 
         */
        public Builder parentName(@Nullable Output parentName) {
            $.parentName = parentName;
            return this;
        }

        /**
         * @param parentName Parent name of the DB such as Instance or Availability Group.
         * 
         * @return builder
         * 
         */
        public Builder parentName(String parentName) {
            return parentName(Output.of(parentName));
        }

        /**
         * @param parentType Parent type of protected item, example: for a DB, standalone server or distributed
         * 
         * @return builder
         * 
         */
        public Builder parentType(@Nullable Output parentType) {
            $.parentType = parentType;
            return this;
        }

        /**
         * @param parentType Parent type of protected item, example: for a DB, standalone server or distributed
         * 
         * @return builder
         * 
         */
        public Builder parentType(String parentType) {
            return parentType(Output.of(parentType));
        }

        /**
         * @param policyId ID of the backup policy with which this item is backed up.
         * 
         * @return builder
         * 
         */
        public Builder policyId(@Nullable Output policyId) {
            $.policyId = policyId;
            return this;
        }

        /**
         * @param policyId ID of the backup policy with which this item is backed up.
         * 
         * @return builder
         * 
         */
        public Builder policyId(String policyId) {
            return policyId(Output.of(policyId));
        }

        /**
         * @param policyName Name of the policy used for protection
         * 
         * @return builder
         * 
         */
        public Builder policyName(@Nullable Output policyName) {
            $.policyName = policyName;
            return this;
        }

        /**
         * @param policyName Name of the policy used for protection
         * 
         * @return builder
         * 
         */
        public Builder policyName(String policyName) {
            return policyName(Output.of(policyName));
        }

        /**
         * @param protectedItemDataSourceId Data ID of the protected item.
         * 
         * @return builder
         * 
         */
        public Builder protectedItemDataSourceId(@Nullable Output protectedItemDataSourceId) {
            $.protectedItemDataSourceId = protectedItemDataSourceId;
            return this;
        }

        /**
         * @param protectedItemDataSourceId Data ID of the protected item.
         * 
         * @return builder
         * 
         */
        public Builder protectedItemDataSourceId(String protectedItemDataSourceId) {
            return protectedItemDataSourceId(Output.of(protectedItemDataSourceId));
        }

        /**
         * @param protectedItemHealthStatus Health status of the backup item, evaluated based on last heartbeat received
         * 
         * @return builder
         * 
         */
        public Builder protectedItemHealthStatus(@Nullable Output> protectedItemHealthStatus) {
            $.protectedItemHealthStatus = protectedItemHealthStatus;
            return this;
        }

        /**
         * @param protectedItemHealthStatus Health status of the backup item, evaluated based on last heartbeat received
         * 
         * @return builder
         * 
         */
        public Builder protectedItemHealthStatus(Either protectedItemHealthStatus) {
            return protectedItemHealthStatus(Output.of(protectedItemHealthStatus));
        }

        /**
         * @param protectedItemHealthStatus Health status of the backup item, evaluated based on last heartbeat received
         * 
         * @return builder
         * 
         */
        public Builder protectedItemHealthStatus(String protectedItemHealthStatus) {
            return protectedItemHealthStatus(Either.ofLeft(protectedItemHealthStatus));
        }

        /**
         * @param protectedItemHealthStatus Health status of the backup item, evaluated based on last heartbeat received
         * 
         * @return builder
         * 
         */
        public Builder protectedItemHealthStatus(ProtectedItemHealthStatus protectedItemHealthStatus) {
            return protectedItemHealthStatus(Either.ofRight(protectedItemHealthStatus));
        }

        /**
         * @param protectedItemType backup item type.
         * Expected value is 'AzureVmWorkloadSAPAseDatabase'.
         * 
         * @return builder
         * 
         */
        public Builder protectedItemType(Output protectedItemType) {
            $.protectedItemType = protectedItemType;
            return this;
        }

        /**
         * @param protectedItemType backup item type.
         * Expected value is 'AzureVmWorkloadSAPAseDatabase'.
         * 
         * @return builder
         * 
         */
        public Builder protectedItemType(String protectedItemType) {
            return protectedItemType(Output.of(protectedItemType));
        }

        /**
         * @param protectionState Backup state of this backup item.
         * 
         * @return builder
         * 
         */
        public Builder protectionState(@Nullable Output> protectionState) {
            $.protectionState = protectionState;
            return this;
        }

        /**
         * @param protectionState Backup state of this backup item.
         * 
         * @return builder
         * 
         */
        public Builder protectionState(Either protectionState) {
            return protectionState(Output.of(protectionState));
        }

        /**
         * @param protectionState Backup state of this backup item.
         * 
         * @return builder
         * 
         */
        public Builder protectionState(String protectionState) {
            return protectionState(Either.ofLeft(protectionState));
        }

        /**
         * @param protectionState Backup state of this backup item.
         * 
         * @return builder
         * 
         */
        public Builder protectionState(ProtectionState protectionState) {
            return protectionState(Either.ofRight(protectionState));
        }

        /**
         * @param resourceGuardOperationRequests ResourceGuardOperationRequests on which LAC check will be performed
         * 
         * @return builder
         * 
         */
        public Builder resourceGuardOperationRequests(@Nullable Output> resourceGuardOperationRequests) {
            $.resourceGuardOperationRequests = resourceGuardOperationRequests;
            return this;
        }

        /**
         * @param resourceGuardOperationRequests ResourceGuardOperationRequests on which LAC check will be performed
         * 
         * @return builder
         * 
         */
        public Builder resourceGuardOperationRequests(List resourceGuardOperationRequests) {
            return resourceGuardOperationRequests(Output.of(resourceGuardOperationRequests));
        }

        /**
         * @param resourceGuardOperationRequests ResourceGuardOperationRequests on which LAC check will be performed
         * 
         * @return builder
         * 
         */
        public Builder resourceGuardOperationRequests(String... resourceGuardOperationRequests) {
            return resourceGuardOperationRequests(List.of(resourceGuardOperationRequests));
        }

        /**
         * @param serverName Host/Cluster Name for instance or AG
         * 
         * @return builder
         * 
         */
        public Builder serverName(@Nullable Output serverName) {
            $.serverName = serverName;
            return this;
        }

        /**
         * @param serverName Host/Cluster Name for instance or AG
         * 
         * @return builder
         * 
         */
        public Builder serverName(String serverName) {
            return serverName(Output.of(serverName));
        }

        /**
         * @param softDeleteRetentionPeriodInDays Soft delete retention period in days
         * 
         * @return builder
         * 
         */
        public Builder softDeleteRetentionPeriodInDays(@Nullable Output softDeleteRetentionPeriodInDays) {
            $.softDeleteRetentionPeriodInDays = softDeleteRetentionPeriodInDays;
            return this;
        }

        /**
         * @param softDeleteRetentionPeriodInDays Soft delete retention period in days
         * 
         * @return builder
         * 
         */
        public Builder softDeleteRetentionPeriodInDays(Integer softDeleteRetentionPeriodInDays) {
            return softDeleteRetentionPeriodInDays(Output.of(softDeleteRetentionPeriodInDays));
        }

        /**
         * @param sourceResourceId ARM ID of the resource to be backed up.
         * 
         * @return builder
         * 
         */
        public Builder sourceResourceId(@Nullable Output sourceResourceId) {
            $.sourceResourceId = sourceResourceId;
            return this;
        }

        /**
         * @param sourceResourceId ARM ID of the resource to be backed up.
         * 
         * @return builder
         * 
         */
        public Builder sourceResourceId(String sourceResourceId) {
            return sourceResourceId(Output.of(sourceResourceId));
        }

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

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy