com.pulumi.azure.mssql.outputs.VirtualMachineAutoBackup 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.azure.mssql.outputs;
import com.pulumi.azure.mssql.outputs.VirtualMachineAutoBackupManualSchedule;
import com.pulumi.core.annotations.CustomType;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
@CustomType
public final class VirtualMachineAutoBackup {
/**
* @return Enable or disable encryption for backups. Defaults to `false`.
*
*/
private @Nullable Boolean encryptionEnabled;
/**
* @return Encryption password to use. Must be specified when encryption is enabled.
*
*/
private @Nullable String encryptionPassword;
/**
* @return A `manual_schedule` block as documented below. When this block is present, the schedule type is set to `Manual`. Without this block, the schedule type is set to `Automated`.
*
*/
private @Nullable VirtualMachineAutoBackupManualSchedule manualSchedule;
/**
* @return Retention period of backups, in days. Valid values are from `1` to `30`.
*
*/
private Integer retentionPeriodInDays;
/**
* @return Access key for the storage account where backups will be kept.
*
*/
private String storageAccountAccessKey;
/**
* @return Blob endpoint for the storage account where backups will be kept.
*
*/
private String storageBlobEndpoint;
/**
* @return Include or exclude system databases from auto backup.
*
*/
private @Nullable Boolean systemDatabasesBackupEnabled;
private VirtualMachineAutoBackup() {}
/**
* @return Enable or disable encryption for backups. Defaults to `false`.
*
*/
public Optional encryptionEnabled() {
return Optional.ofNullable(this.encryptionEnabled);
}
/**
* @return Encryption password to use. Must be specified when encryption is enabled.
*
*/
public Optional encryptionPassword() {
return Optional.ofNullable(this.encryptionPassword);
}
/**
* @return A `manual_schedule` block as documented below. When this block is present, the schedule type is set to `Manual`. Without this block, the schedule type is set to `Automated`.
*
*/
public Optional manualSchedule() {
return Optional.ofNullable(this.manualSchedule);
}
/**
* @return Retention period of backups, in days. Valid values are from `1` to `30`.
*
*/
public Integer retentionPeriodInDays() {
return this.retentionPeriodInDays;
}
/**
* @return Access key for the storage account where backups will be kept.
*
*/
public String storageAccountAccessKey() {
return this.storageAccountAccessKey;
}
/**
* @return Blob endpoint for the storage account where backups will be kept.
*
*/
public String storageBlobEndpoint() {
return this.storageBlobEndpoint;
}
/**
* @return Include or exclude system databases from auto backup.
*
*/
public Optional systemDatabasesBackupEnabled() {
return Optional.ofNullable(this.systemDatabasesBackupEnabled);
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(VirtualMachineAutoBackup defaults) {
return new Builder(defaults);
}
@CustomType.Builder
public static final class Builder {
private @Nullable Boolean encryptionEnabled;
private @Nullable String encryptionPassword;
private @Nullable VirtualMachineAutoBackupManualSchedule manualSchedule;
private Integer retentionPeriodInDays;
private String storageAccountAccessKey;
private String storageBlobEndpoint;
private @Nullable Boolean systemDatabasesBackupEnabled;
public Builder() {}
public Builder(VirtualMachineAutoBackup defaults) {
Objects.requireNonNull(defaults);
this.encryptionEnabled = defaults.encryptionEnabled;
this.encryptionPassword = defaults.encryptionPassword;
this.manualSchedule = defaults.manualSchedule;
this.retentionPeriodInDays = defaults.retentionPeriodInDays;
this.storageAccountAccessKey = defaults.storageAccountAccessKey;
this.storageBlobEndpoint = defaults.storageBlobEndpoint;
this.systemDatabasesBackupEnabled = defaults.systemDatabasesBackupEnabled;
}
@CustomType.Setter
public Builder encryptionEnabled(@Nullable Boolean encryptionEnabled) {
this.encryptionEnabled = encryptionEnabled;
return this;
}
@CustomType.Setter
public Builder encryptionPassword(@Nullable String encryptionPassword) {
this.encryptionPassword = encryptionPassword;
return this;
}
@CustomType.Setter
public Builder manualSchedule(@Nullable VirtualMachineAutoBackupManualSchedule manualSchedule) {
this.manualSchedule = manualSchedule;
return this;
}
@CustomType.Setter
public Builder retentionPeriodInDays(Integer retentionPeriodInDays) {
if (retentionPeriodInDays == null) {
throw new MissingRequiredPropertyException("VirtualMachineAutoBackup", "retentionPeriodInDays");
}
this.retentionPeriodInDays = retentionPeriodInDays;
return this;
}
@CustomType.Setter
public Builder storageAccountAccessKey(String storageAccountAccessKey) {
if (storageAccountAccessKey == null) {
throw new MissingRequiredPropertyException("VirtualMachineAutoBackup", "storageAccountAccessKey");
}
this.storageAccountAccessKey = storageAccountAccessKey;
return this;
}
@CustomType.Setter
public Builder storageBlobEndpoint(String storageBlobEndpoint) {
if (storageBlobEndpoint == null) {
throw new MissingRequiredPropertyException("VirtualMachineAutoBackup", "storageBlobEndpoint");
}
this.storageBlobEndpoint = storageBlobEndpoint;
return this;
}
@CustomType.Setter
public Builder systemDatabasesBackupEnabled(@Nullable Boolean systemDatabasesBackupEnabled) {
this.systemDatabasesBackupEnabled = systemDatabasesBackupEnabled;
return this;
}
public VirtualMachineAutoBackup build() {
final var _resultValue = new VirtualMachineAutoBackup();
_resultValue.encryptionEnabled = encryptionEnabled;
_resultValue.encryptionPassword = encryptionPassword;
_resultValue.manualSchedule = manualSchedule;
_resultValue.retentionPeriodInDays = retentionPeriodInDays;
_resultValue.storageAccountAccessKey = storageAccountAccessKey;
_resultValue.storageBlobEndpoint = storageBlobEndpoint;
_resultValue.systemDatabasesBackupEnabled = systemDatabasesBackupEnabled;
return _resultValue;
}
}
}