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

com.pulumi.azure.netapp.kotlin.outputs.VolumeGroupSapHanaVolume.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azure.netapp.kotlin.outputs

import kotlin.Boolean
import kotlin.Double
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.collections.Map

/**
 *
 * @property capacityPoolId The ID of the Capacity Pool. Changing this forces a new Application Volume Group to be created and data will be lost.
 * @property dataProtectionReplication A `data_protection_replication` block as defined below. Changing this forces a new Application Volume Group to be created and data will be lost.
 * @property dataProtectionSnapshotPolicy A `data_protection_snapshot_policy` block as defined below.
 * @property exportPolicyRules One or more `export_policy_rule` blocks as defined below.
 * @property id The ID of the Application Volume Group.
 * @property mountIpAddresses
 * @property name 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.
 * @property protocols 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.
 * @property proximityPlacementGroupId 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.
 * @property securityStyle 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.
 * @property serviceLevel 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.
 * @property snapshotDirectoryVisible 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.
 * @property storageQuotaInGb The maximum Storage Quota allowed for a file system in Gigabytes.
 * @property subnetId 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.
 * @property tags A mapping of tags which should be assigned to the Application Volume Group.
 * @property throughputInMibps Throughput of this volume in Mibps.
 * @property volumePath A unique file path for the volume. Changing this forces a new Application Volume Group to be created and data will be lost.
 * @property volumeSpecName 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 data class VolumeGroupSapHanaVolume(
    public val capacityPoolId: String,
    public val dataProtectionReplication: VolumeGroupSapHanaVolumeDataProtectionReplication? = null,
    public val dataProtectionSnapshotPolicy: VolumeGroupSapHanaVolumeDataProtectionSnapshotPolicy? =
        null,
    public val exportPolicyRules: List,
    public val id: String? = null,
    public val mountIpAddresses: List? = null,
    public val name: String,
    public val protocols: String,
    public val proximityPlacementGroupId: String? = null,
    public val securityStyle: String,
    public val serviceLevel: String,
    public val snapshotDirectoryVisible: Boolean,
    public val storageQuotaInGb: Int,
    public val subnetId: String,
    public val tags: Map? = null,
    public val throughputInMibps: Double,
    public val volumePath: String,
    public val volumeSpecName: String,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.azure.netapp.outputs.VolumeGroupSapHanaVolume):
            VolumeGroupSapHanaVolume = VolumeGroupSapHanaVolume(
            capacityPoolId = javaType.capacityPoolId(),
            dataProtectionReplication = javaType.dataProtectionReplication().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.azure.netapp.kotlin.outputs.VolumeGroupSapHanaVolumeDataProtectionReplication.Companion.toKotlin(args0)
                })
            }).orElse(null),
            dataProtectionSnapshotPolicy = javaType.dataProtectionSnapshotPolicy().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.azure.netapp.kotlin.outputs.VolumeGroupSapHanaVolumeDataProtectionSnapshotPolicy.Companion.toKotlin(args0)
                })
            }).orElse(null),
            exportPolicyRules = javaType.exportPolicyRules().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.azure.netapp.kotlin.outputs.VolumeGroupSapHanaVolumeExportPolicyRule.Companion.toKotlin(args0)
                })
            }),
            id = javaType.id().map({ args0 -> args0 }).orElse(null),
            mountIpAddresses = javaType.mountIpAddresses().map({ args0 -> args0 }),
            name = javaType.name(),
            protocols = javaType.protocols(),
            proximityPlacementGroupId = javaType.proximityPlacementGroupId().map({ args0 ->
                args0
            }).orElse(null),
            securityStyle = javaType.securityStyle(),
            serviceLevel = javaType.serviceLevel(),
            snapshotDirectoryVisible = javaType.snapshotDirectoryVisible(),
            storageQuotaInGb = javaType.storageQuotaInGb(),
            subnetId = javaType.subnetId(),
            tags = javaType.tags().map({ args0 -> args0.key.to(args0.value) }).toMap(),
            throughputInMibps = javaType.throughputInMibps(),
            volumePath = javaType.volumePath(),
            volumeSpecName = javaType.volumeSpecName(),
        )
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy