Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
// *** 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.netapp.outputs;
import com.pulumi.azure.netapp.outputs.VolumeGroupSapHanaVolumeDataProtectionReplication;
import com.pulumi.azure.netapp.outputs.VolumeGroupSapHanaVolumeDataProtectionSnapshotPolicy;
import com.pulumi.azure.netapp.outputs.VolumeGroupSapHanaVolumeExportPolicyRule;
import com.pulumi.core.annotations.CustomType;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Double;
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;
@CustomType
public final class VolumeGroupSapHanaVolume {
/**
* @return The ID of the Capacity Pool. Changing this forces a new Application Volume Group to be created and data will be lost.
*
*/
private String capacityPoolId;
/**
* @return A `data_protection_replication` block as defined below. Changing this forces a new Application Volume Group to be created and data will be lost.
*
*/
private @Nullable VolumeGroupSapHanaVolumeDataProtectionReplication dataProtectionReplication;
/**
* @return A `data_protection_snapshot_policy` block as defined below.
*
*/
private @Nullable VolumeGroupSapHanaVolumeDataProtectionSnapshotPolicy dataProtectionSnapshotPolicy;
/**
* @return One or more `export_policy_rule` blocks as defined below.
*
*/
private List exportPolicyRules;
/**
* @return The ID of the Application Volume Group.
*
*/
private @Nullable String id;
private @Nullable List mountIpAddresses;
/**
* @return The name which should be used for this volume. Changing this forces a new Application Volume Group to be created and data will be lost.
*
*/
private String name;
/**
* @return The target volume protocol expressed as a list. Changing this forces a new Application Volume Group to be created and data will be lost. Supported values for Application Volume Group include `NFSv3` or `NFSv4.1`, multi-protocol is not supported and there are certain rules on which protocol is supporteed per volume spec, please check [Configure application volume groups for the SAP HANA REST API](https://learn.microsoft.com/en-us/azure/azure-netapp-files/configure-application-volume-group-sap-hana-api) document for details.
*
*/
private String protocols;
/**
* @return The ID of the proximity placement group. Changing this forces a new Application Volume Group to be created and data will be lost. For SAP-HANA application, it is required to have PPG enabled so Azure NetApp Files can pin the volumes next to your compute resources, please check [Requirements and considerations for application volume group for SAP HANA](https://learn.microsoft.com/en-us/azure/azure-netapp-files/application-volume-group-considerations) for details and other requirements.
*
*/
private @Nullable String proximityPlacementGroupId;
/**
* @return Volume security style. Possible values are `ntfs` and `unix`. Changing this forces a new Application Volume Group to be created and data will be lost.
*
*/
private String securityStyle;
/**
* @return Volume security style. Possible values are `Premium`, `Standard` and `Ultra`. Changing this forces a new Application Volume Group to be created and data will be lost.
*
*/
private String serviceLevel;
/**
* @return Specifies whether the .snapshot (NFS clients) path of a volume is visible. Changing this forces a new Application Volume Group to be created and data will be lost.
*
*/
private Boolean snapshotDirectoryVisible;
/**
* @return The maximum Storage Quota allowed for a file system in Gigabytes.
*
*/
private Integer storageQuotaInGb;
/**
* @return The ID of the Subnet the NetApp Volume resides in, which must have the `Microsoft.NetApp/volumes` delegation. Changing this forces a new Application Volume Group to be created and data will be lost.
*
*/
private String subnetId;
/**
* @return A mapping of tags which should be assigned to the Application Volume Group.
*
*/
private @Nullable Map tags;
/**
* @return Throughput of this volume in Mibps.
*
*/
private Double throughputInMibps;
/**
* @return A unique file path for the volume. Changing this forces a new Application Volume Group to be created and data will be lost.
*
*/
private String volumePath;
/**
* @return Volume specification name. Possible values are `data`, `log`, `shared`, `data-backup` and `log-backup`. Changing this forces a new Application Volume Group to be created and data will be lost.
*
*/
private String volumeSpecName;
private VolumeGroupSapHanaVolume() {}
/**
* @return The ID of the Capacity Pool. Changing this forces a new Application Volume Group to be created and data will be lost.
*
*/
public String capacityPoolId() {
return this.capacityPoolId;
}
/**
* @return A `data_protection_replication` block as defined below. Changing this forces a new Application Volume Group to be created and data will be lost.
*
*/
public Optional dataProtectionReplication() {
return Optional.ofNullable(this.dataProtectionReplication);
}
/**
* @return A `data_protection_snapshot_policy` block as defined below.
*
*/
public Optional dataProtectionSnapshotPolicy() {
return Optional.ofNullable(this.dataProtectionSnapshotPolicy);
}
/**
* @return One or more `export_policy_rule` blocks as defined below.
*
*/
public List exportPolicyRules() {
return this.exportPolicyRules;
}
/**
* @return The ID of the Application Volume Group.
*
*/
public Optional id() {
return Optional.ofNullable(this.id);
}
public List mountIpAddresses() {
return this.mountIpAddresses == null ? List.of() : this.mountIpAddresses;
}
/**
* @return The name which should be used for this volume. Changing this forces a new Application Volume Group to be created and data will be lost.
*
*/
public String name() {
return this.name;
}
/**
* @return The target volume protocol expressed as a list. Changing this forces a new Application Volume Group to be created and data will be lost. Supported values for Application Volume Group include `NFSv3` or `NFSv4.1`, multi-protocol is not supported and there are certain rules on which protocol is supporteed per volume spec, please check [Configure application volume groups for the SAP HANA REST API](https://learn.microsoft.com/en-us/azure/azure-netapp-files/configure-application-volume-group-sap-hana-api) document for details.
*
*/
public String protocols() {
return this.protocols;
}
/**
* @return The ID of the proximity placement group. Changing this forces a new Application Volume Group to be created and data will be lost. For SAP-HANA application, it is required to have PPG enabled so Azure NetApp Files can pin the volumes next to your compute resources, please check [Requirements and considerations for application volume group for SAP HANA](https://learn.microsoft.com/en-us/azure/azure-netapp-files/application-volume-group-considerations) for details and other requirements.
*
*/
public Optional proximityPlacementGroupId() {
return Optional.ofNullable(this.proximityPlacementGroupId);
}
/**
* @return Volume security style. Possible values are `ntfs` and `unix`. Changing this forces a new Application Volume Group to be created and data will be lost.
*
*/
public String securityStyle() {
return this.securityStyle;
}
/**
* @return Volume security style. Possible values are `Premium`, `Standard` and `Ultra`. Changing this forces a new Application Volume Group to be created and data will be lost.
*
*/
public String serviceLevel() {
return this.serviceLevel;
}
/**
* @return Specifies whether the .snapshot (NFS clients) path of a volume is visible. Changing this forces a new Application Volume Group to be created and data will be lost.
*
*/
public Boolean snapshotDirectoryVisible() {
return this.snapshotDirectoryVisible;
}
/**
* @return The maximum Storage Quota allowed for a file system in Gigabytes.
*
*/
public Integer storageQuotaInGb() {
return this.storageQuotaInGb;
}
/**
* @return The ID of the Subnet the NetApp Volume resides in, which must have the `Microsoft.NetApp/volumes` delegation. Changing this forces a new Application Volume Group to be created and data will be lost.
*
*/
public String subnetId() {
return this.subnetId;
}
/**
* @return A mapping of tags which should be assigned to the Application Volume Group.
*
*/
public Map tags() {
return this.tags == null ? Map.of() : this.tags;
}
/**
* @return Throughput of this volume in Mibps.
*
*/
public Double throughputInMibps() {
return this.throughputInMibps;
}
/**
* @return A unique file path for the volume. Changing this forces a new Application Volume Group to be created and data will be lost.
*
*/
public String volumePath() {
return this.volumePath;
}
/**
* @return Volume specification name. Possible values are `data`, `log`, `shared`, `data-backup` and `log-backup`. Changing this forces a new Application Volume Group to be created and data will be lost.
*
*/
public String volumeSpecName() {
return this.volumeSpecName;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(VolumeGroupSapHanaVolume defaults) {
return new Builder(defaults);
}
@CustomType.Builder
public static final class Builder {
private String capacityPoolId;
private @Nullable VolumeGroupSapHanaVolumeDataProtectionReplication dataProtectionReplication;
private @Nullable VolumeGroupSapHanaVolumeDataProtectionSnapshotPolicy dataProtectionSnapshotPolicy;
private List exportPolicyRules;
private @Nullable String id;
private @Nullable List mountIpAddresses;
private String name;
private String protocols;
private @Nullable String proximityPlacementGroupId;
private String securityStyle;
private String serviceLevel;
private Boolean snapshotDirectoryVisible;
private Integer storageQuotaInGb;
private String subnetId;
private @Nullable Map tags;
private Double throughputInMibps;
private String volumePath;
private String volumeSpecName;
public Builder() {}
public Builder(VolumeGroupSapHanaVolume defaults) {
Objects.requireNonNull(defaults);
this.capacityPoolId = defaults.capacityPoolId;
this.dataProtectionReplication = defaults.dataProtectionReplication;
this.dataProtectionSnapshotPolicy = defaults.dataProtectionSnapshotPolicy;
this.exportPolicyRules = defaults.exportPolicyRules;
this.id = defaults.id;
this.mountIpAddresses = defaults.mountIpAddresses;
this.name = defaults.name;
this.protocols = defaults.protocols;
this.proximityPlacementGroupId = defaults.proximityPlacementGroupId;
this.securityStyle = defaults.securityStyle;
this.serviceLevel = defaults.serviceLevel;
this.snapshotDirectoryVisible = defaults.snapshotDirectoryVisible;
this.storageQuotaInGb = defaults.storageQuotaInGb;
this.subnetId = defaults.subnetId;
this.tags = defaults.tags;
this.throughputInMibps = defaults.throughputInMibps;
this.volumePath = defaults.volumePath;
this.volumeSpecName = defaults.volumeSpecName;
}
@CustomType.Setter
public Builder capacityPoolId(String capacityPoolId) {
if (capacityPoolId == null) {
throw new MissingRequiredPropertyException("VolumeGroupSapHanaVolume", "capacityPoolId");
}
this.capacityPoolId = capacityPoolId;
return this;
}
@CustomType.Setter
public Builder dataProtectionReplication(@Nullable VolumeGroupSapHanaVolumeDataProtectionReplication dataProtectionReplication) {
this.dataProtectionReplication = dataProtectionReplication;
return this;
}
@CustomType.Setter
public Builder dataProtectionSnapshotPolicy(@Nullable VolumeGroupSapHanaVolumeDataProtectionSnapshotPolicy dataProtectionSnapshotPolicy) {
this.dataProtectionSnapshotPolicy = dataProtectionSnapshotPolicy;
return this;
}
@CustomType.Setter
public Builder exportPolicyRules(List exportPolicyRules) {
if (exportPolicyRules == null) {
throw new MissingRequiredPropertyException("VolumeGroupSapHanaVolume", "exportPolicyRules");
}
this.exportPolicyRules = exportPolicyRules;
return this;
}
public Builder exportPolicyRules(VolumeGroupSapHanaVolumeExportPolicyRule... exportPolicyRules) {
return exportPolicyRules(List.of(exportPolicyRules));
}
@CustomType.Setter
public Builder id(@Nullable String id) {
this.id = id;
return this;
}
@CustomType.Setter
public Builder mountIpAddresses(@Nullable List mountIpAddresses) {
this.mountIpAddresses = mountIpAddresses;
return this;
}
public Builder mountIpAddresses(String... mountIpAddresses) {
return mountIpAddresses(List.of(mountIpAddresses));
}
@CustomType.Setter
public Builder name(String name) {
if (name == null) {
throw new MissingRequiredPropertyException("VolumeGroupSapHanaVolume", "name");
}
this.name = name;
return this;
}
@CustomType.Setter
public Builder protocols(String protocols) {
if (protocols == null) {
throw new MissingRequiredPropertyException("VolumeGroupSapHanaVolume", "protocols");
}
this.protocols = protocols;
return this;
}
@CustomType.Setter
public Builder proximityPlacementGroupId(@Nullable String proximityPlacementGroupId) {
this.proximityPlacementGroupId = proximityPlacementGroupId;
return this;
}
@CustomType.Setter
public Builder securityStyle(String securityStyle) {
if (securityStyle == null) {
throw new MissingRequiredPropertyException("VolumeGroupSapHanaVolume", "securityStyle");
}
this.securityStyle = securityStyle;
return this;
}
@CustomType.Setter
public Builder serviceLevel(String serviceLevel) {
if (serviceLevel == null) {
throw new MissingRequiredPropertyException("VolumeGroupSapHanaVolume", "serviceLevel");
}
this.serviceLevel = serviceLevel;
return this;
}
@CustomType.Setter
public Builder snapshotDirectoryVisible(Boolean snapshotDirectoryVisible) {
if (snapshotDirectoryVisible == null) {
throw new MissingRequiredPropertyException("VolumeGroupSapHanaVolume", "snapshotDirectoryVisible");
}
this.snapshotDirectoryVisible = snapshotDirectoryVisible;
return this;
}
@CustomType.Setter
public Builder storageQuotaInGb(Integer storageQuotaInGb) {
if (storageQuotaInGb == null) {
throw new MissingRequiredPropertyException("VolumeGroupSapHanaVolume", "storageQuotaInGb");
}
this.storageQuotaInGb = storageQuotaInGb;
return this;
}
@CustomType.Setter
public Builder subnetId(String subnetId) {
if (subnetId == null) {
throw new MissingRequiredPropertyException("VolumeGroupSapHanaVolume", "subnetId");
}
this.subnetId = subnetId;
return this;
}
@CustomType.Setter
public Builder tags(@Nullable Map tags) {
this.tags = tags;
return this;
}
@CustomType.Setter
public Builder throughputInMibps(Double throughputInMibps) {
if (throughputInMibps == null) {
throw new MissingRequiredPropertyException("VolumeGroupSapHanaVolume", "throughputInMibps");
}
this.throughputInMibps = throughputInMibps;
return this;
}
@CustomType.Setter
public Builder volumePath(String volumePath) {
if (volumePath == null) {
throw new MissingRequiredPropertyException("VolumeGroupSapHanaVolume", "volumePath");
}
this.volumePath = volumePath;
return this;
}
@CustomType.Setter
public Builder volumeSpecName(String volumeSpecName) {
if (volumeSpecName == null) {
throw new MissingRequiredPropertyException("VolumeGroupSapHanaVolume", "volumeSpecName");
}
this.volumeSpecName = volumeSpecName;
return this;
}
public VolumeGroupSapHanaVolume build() {
final var _resultValue = new VolumeGroupSapHanaVolume();
_resultValue.capacityPoolId = capacityPoolId;
_resultValue.dataProtectionReplication = dataProtectionReplication;
_resultValue.dataProtectionSnapshotPolicy = dataProtectionSnapshotPolicy;
_resultValue.exportPolicyRules = exportPolicyRules;
_resultValue.id = id;
_resultValue.mountIpAddresses = mountIpAddresses;
_resultValue.name = name;
_resultValue.protocols = protocols;
_resultValue.proximityPlacementGroupId = proximityPlacementGroupId;
_resultValue.securityStyle = securityStyle;
_resultValue.serviceLevel = serviceLevel;
_resultValue.snapshotDirectoryVisible = snapshotDirectoryVisible;
_resultValue.storageQuotaInGb = storageQuotaInGb;
_resultValue.subnetId = subnetId;
_resultValue.tags = tags;
_resultValue.throughputInMibps = throughputInMibps;
_resultValue.volumePath = volumePath;
_resultValue.volumeSpecName = volumeSpecName;
return _resultValue;
}
}
}