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

com.pulumi.azurenative.netapp.kotlin.outputs.GetVolumeResult.kt Maven / Gradle / Ivy

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

package com.pulumi.azurenative.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

/**
 * Volume resource
 * @property actualThroughputMibps Actual throughput in MiB/s for auto qosType volumes calculated based on size and serviceLevel
 * @property avsDataStore Specifies whether the volume is enabled for Azure VMware Solution (AVS) datastore purpose
 * @property backupId UUID v4 or resource identifier used to identify the Backup.
 * @property baremetalTenantId Unique Baremetal Tenant Identifier.
 * @property capacityPoolResourceId Pool Resource Id used in case of creating a volume through volume group
 * @property cloneProgress When a volume is being restored from another volume's snapshot, will show the percentage completion of this cloning process. When this value is empty/null there is no cloning process currently happening on this volume. This value will update every 5 minutes during cloning.
 * @property coolAccess Specifies whether Cool Access(tiering) is enabled for the volume.
 * @property coolnessPeriod Specifies the number of days after which data that is not accessed by clients will be tiered.
 * @property creationToken A unique file path for the volume. Used when creating mount targets
 * @property dataProtection DataProtection type volumes include an object containing details of the replication
 * @property dataStoreResourceId Data store resource unique identifier
 * @property defaultGroupQuotaInKiBs Default group quota for volume in KiBs. If isDefaultQuotaEnabled is set, the minimum value of 4 KiBs applies.
 * @property defaultUserQuotaInKiBs Default user quota for volume in KiBs. If isDefaultQuotaEnabled is set, the minimum value of 4 KiBs applies .
 * @property deleteBaseSnapshot If enabled (true) the snapshot the volume was created from will be automatically deleted after the volume create operation has finished.  Defaults to false
 * @property enableSubvolumes Flag indicating whether subvolume operations are enabled on the volume
 * @property encrypted Specifies if the volume is encrypted or not. Only available on volumes created or updated after 2022-01-01.
 * @property encryptionKeySource Source of key used to encrypt data in volume. Applicable if NetApp account has encryption.keySource = 'Microsoft.KeyVault'. Possible values (case-insensitive) are: 'Microsoft.NetApp, Microsoft.KeyVault'
 * @property etag A unique read-only string that changes whenever the resource is updated.
 * @property exportPolicy Set of export policy rules
 * @property fileAccessLogs Flag indicating whether file access logs are enabled for the volume, based on active diagnostic settings present on the volume.
 * @property fileSystemId Unique FileSystem Identifier.
 * @property id Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
 * @property isDefaultQuotaEnabled Specifies if default quota is enabled for the volume.
 * @property isLargeVolume Specifies whether volume is a Large Volume or Regular Volume.
 * @property isRestoring Restoring
 * @property kerberosEnabled Describe if a volume is KerberosEnabled. To be use with swagger version 2020-05-01 or later
 * @property keyVaultPrivateEndpointResourceId The resource ID of private endpoint for KeyVault. It must reside in the same VNET as the volume. Only applicable if encryptionKeySource = 'Microsoft.KeyVault'.
 * @property ldapEnabled Specifies whether LDAP is enabled or not for a given NFS volume.
 * @property location The geo-location where the resource lives
 * @property maximumNumberOfFiles Maximum number of files allowed. Needs a service request in order to be changed. Only allowed to be changed if volume quota is more than 4TiB.
 * @property mountTargets List of mount targets
 * @property name The name of the resource
 * @property networkFeatures Basic network, or Standard features available to the volume.
 * @property networkSiblingSetId Network Sibling Set ID for the the group of volumes sharing networking resources.
 * @property originatingResourceId Id of the snapshot or backup that the volume is restored from.
 * @property placementRules Application specific placement rules for the particular volume
 * @property protocolTypes Set of protocol types, default NFSv3, CIFS for SMB protocol
 * @property provisionedAvailabilityZone The availability zone where the volume is provisioned. This refers to the logical availability zone where the volume resides.
 * @property provisioningState Azure lifecycle management
 * @property proximityPlacementGroup Proximity placement group associated with the volume
 * @property securityStyle The security style of volume, default unix, defaults to ntfs for dual protocol or CIFS protocol
 * @property serviceLevel The service level of the file system
 * @property smbAccessBasedEnumeration Enables access based enumeration share property for SMB Shares. Only applicable for SMB/DualProtocol volume
 * @property smbContinuouslyAvailable Enables continuously available share property for smb volume. Only applicable for SMB volume
 * @property smbEncryption Enables encryption for in-flight smb3 data. Only applicable for SMB/DualProtocol volume. To be used with swagger version 2020-08-01 or later
 * @property smbNonBrowsable Enables non browsable property for SMB Shares. Only applicable for SMB/DualProtocol volume
 * @property snapshotDirectoryVisible If enabled (true) the volume will contain a read-only snapshot directory which provides access to each of the volume's snapshots (defaults to true).
 * @property snapshotId UUID v4 or resource identifier used to identify the Snapshot.
 * @property storageToNetworkProximity Provides storage to network proximity information for the volume.
 * @property subnetId The Azure Resource URI for a delegated subnet. Must have the delegation Microsoft.NetApp/volumes
 * @property systemData Azure Resource Manager metadata containing createdBy and modifiedBy information.
 * @property t2Network T2 network information
 * @property tags Resource tags.
 * @property throughputMibps
 * @property type The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
 * @property unixPermissions UNIX permissions for NFS volume accepted in octal 4 digit format. First digit selects the set user ID(4), set group ID (2) and sticky (1) attributes. Second digit selects permission for the owner of the file: read (4), write (2) and execute (1). Third selects permissions for other users in the same group. the fourth for other users not in the group. 0755 - gives read/write/execute permissions to owner and read/execute to group and other users.
 * @property usageThreshold Maximum storage quota allowed for a file system in bytes. This is a soft quota used for alerting only. Minimum size is 100 GiB. Upper limit is 100TiB, 500Tib for LargeVolume. Specified in bytes.
 * @property volumeGroupName Volume Group Name
 * @property volumeSpecName Volume spec name is the application specific designation or identifier for the particular volume in a volume group for e.g. data, log
 * @property volumeType What type of volume is this. For destination volumes in Cross Region Replication, set type to DataProtection
 * @property zones Availability Zone
 */
public data class GetVolumeResult(
    public val actualThroughputMibps: Double,
    public val avsDataStore: String? = null,
    public val backupId: String? = null,
    public val baremetalTenantId: String,
    public val capacityPoolResourceId: String? = null,
    public val cloneProgress: Int,
    public val coolAccess: Boolean? = null,
    public val coolnessPeriod: Int? = null,
    public val creationToken: String,
    public val dataProtection: VolumePropertiesResponseDataProtection? = null,
    public val dataStoreResourceId: List,
    public val defaultGroupQuotaInKiBs: Double? = null,
    public val defaultUserQuotaInKiBs: Double? = null,
    public val deleteBaseSnapshot: Boolean? = null,
    public val enableSubvolumes: String? = null,
    public val encrypted: Boolean,
    public val encryptionKeySource: String? = null,
    public val etag: String,
    public val exportPolicy: VolumePropertiesResponseExportPolicy? = null,
    public val fileAccessLogs: String,
    public val fileSystemId: String,
    public val id: String,
    public val isDefaultQuotaEnabled: Boolean? = null,
    public val isLargeVolume: Boolean? = null,
    public val isRestoring: Boolean? = null,
    public val kerberosEnabled: Boolean? = null,
    public val keyVaultPrivateEndpointResourceId: String? = null,
    public val ldapEnabled: Boolean? = null,
    public val location: String,
    public val maximumNumberOfFiles: Double,
    public val mountTargets: List,
    public val name: String,
    public val networkFeatures: String? = null,
    public val networkSiblingSetId: String,
    public val originatingResourceId: String,
    public val placementRules: List? = null,
    public val protocolTypes: List? = null,
    public val provisionedAvailabilityZone: String,
    public val provisioningState: String,
    public val proximityPlacementGroup: String? = null,
    public val securityStyle: String? = null,
    public val serviceLevel: String? = null,
    public val smbAccessBasedEnumeration: String? = null,
    public val smbContinuouslyAvailable: Boolean? = null,
    public val smbEncryption: Boolean? = null,
    public val smbNonBrowsable: String? = null,
    public val snapshotDirectoryVisible: Boolean? = null,
    public val snapshotId: String? = null,
    public val storageToNetworkProximity: String,
    public val subnetId: String,
    public val systemData: SystemDataResponse,
    public val t2Network: String,
    public val tags: Map? = null,
    public val throughputMibps: Double? = null,
    public val type: String,
    public val unixPermissions: String? = null,
    public val usageThreshold: Double,
    public val volumeGroupName: String,
    public val volumeSpecName: String? = null,
    public val volumeType: String? = null,
    public val zones: List? = null,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.azurenative.netapp.outputs.GetVolumeResult): GetVolumeResult = GetVolumeResult(
            actualThroughputMibps = javaType.actualThroughputMibps(),
            avsDataStore = javaType.avsDataStore().map({ args0 -> args0 }).orElse(null),
            backupId = javaType.backupId().map({ args0 -> args0 }).orElse(null),
            baremetalTenantId = javaType.baremetalTenantId(),
            capacityPoolResourceId = javaType.capacityPoolResourceId().map({ args0 -> args0 }).orElse(null),
            cloneProgress = javaType.cloneProgress(),
            coolAccess = javaType.coolAccess().map({ args0 -> args0 }).orElse(null),
            coolnessPeriod = javaType.coolnessPeriod().map({ args0 -> args0 }).orElse(null),
            creationToken = javaType.creationToken(),
            dataProtection = javaType.dataProtection().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.azurenative.netapp.kotlin.outputs.VolumePropertiesResponseDataProtection.Companion.toKotlin(args0)
                })
            }).orElse(null),
            dataStoreResourceId = javaType.dataStoreResourceId().map({ args0 -> args0 }),
            defaultGroupQuotaInKiBs = javaType.defaultGroupQuotaInKiBs().map({ args0 -> args0 }).orElse(null),
            defaultUserQuotaInKiBs = javaType.defaultUserQuotaInKiBs().map({ args0 -> args0 }).orElse(null),
            deleteBaseSnapshot = javaType.deleteBaseSnapshot().map({ args0 -> args0 }).orElse(null),
            enableSubvolumes = javaType.enableSubvolumes().map({ args0 -> args0 }).orElse(null),
            encrypted = javaType.encrypted(),
            encryptionKeySource = javaType.encryptionKeySource().map({ args0 -> args0 }).orElse(null),
            etag = javaType.etag(),
            exportPolicy = javaType.exportPolicy().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.azurenative.netapp.kotlin.outputs.VolumePropertiesResponseExportPolicy.Companion.toKotlin(args0)
                })
            }).orElse(null),
            fileAccessLogs = javaType.fileAccessLogs(),
            fileSystemId = javaType.fileSystemId(),
            id = javaType.id(),
            isDefaultQuotaEnabled = javaType.isDefaultQuotaEnabled().map({ args0 -> args0 }).orElse(null),
            isLargeVolume = javaType.isLargeVolume().map({ args0 -> args0 }).orElse(null),
            isRestoring = javaType.isRestoring().map({ args0 -> args0 }).orElse(null),
            kerberosEnabled = javaType.kerberosEnabled().map({ args0 -> args0 }).orElse(null),
            keyVaultPrivateEndpointResourceId = javaType.keyVaultPrivateEndpointResourceId().map({ args0 ->
                args0
            }).orElse(null),
            ldapEnabled = javaType.ldapEnabled().map({ args0 -> args0 }).orElse(null),
            location = javaType.location(),
            maximumNumberOfFiles = javaType.maximumNumberOfFiles(),
            mountTargets = javaType.mountTargets().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.azurenative.netapp.kotlin.outputs.MountTargetPropertiesResponse.Companion.toKotlin(args0)
                })
            }),
            name = javaType.name(),
            networkFeatures = javaType.networkFeatures().map({ args0 -> args0 }).orElse(null),
            networkSiblingSetId = javaType.networkSiblingSetId(),
            originatingResourceId = javaType.originatingResourceId(),
            placementRules = javaType.placementRules().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.azurenative.netapp.kotlin.outputs.PlacementKeyValuePairsResponse.Companion.toKotlin(args0)
                })
            }),
            protocolTypes = javaType.protocolTypes().map({ args0 -> args0 }),
            provisionedAvailabilityZone = javaType.provisionedAvailabilityZone(),
            provisioningState = javaType.provisioningState(),
            proximityPlacementGroup = javaType.proximityPlacementGroup().map({ args0 -> args0 }).orElse(null),
            securityStyle = javaType.securityStyle().map({ args0 -> args0 }).orElse(null),
            serviceLevel = javaType.serviceLevel().map({ args0 -> args0 }).orElse(null),
            smbAccessBasedEnumeration = javaType.smbAccessBasedEnumeration().map({ args0 ->
                args0
            }).orElse(null),
            smbContinuouslyAvailable = javaType.smbContinuouslyAvailable().map({ args0 -> args0 }).orElse(null),
            smbEncryption = javaType.smbEncryption().map({ args0 -> args0 }).orElse(null),
            smbNonBrowsable = javaType.smbNonBrowsable().map({ args0 -> args0 }).orElse(null),
            snapshotDirectoryVisible = javaType.snapshotDirectoryVisible().map({ args0 -> args0 }).orElse(null),
            snapshotId = javaType.snapshotId().map({ args0 -> args0 }).orElse(null),
            storageToNetworkProximity = javaType.storageToNetworkProximity(),
            subnetId = javaType.subnetId(),
            systemData = javaType.systemData().let({ args0 ->
                com.pulumi.azurenative.netapp.kotlin.outputs.SystemDataResponse.Companion.toKotlin(args0)
            }),
            t2Network = javaType.t2Network(),
            tags = javaType.tags().map({ args0 -> args0.key.to(args0.value) }).toMap(),
            throughputMibps = javaType.throughputMibps().map({ args0 -> args0 }).orElse(null),
            type = javaType.type(),
            unixPermissions = javaType.unixPermissions().map({ args0 -> args0 }).orElse(null),
            usageThreshold = javaType.usageThreshold(),
            volumeGroupName = javaType.volumeGroupName(),
            volumeSpecName = javaType.volumeSpecName().map({ args0 -> args0 }).orElse(null),
            volumeType = javaType.volumeType().map({ args0 -> args0 }).orElse(null),
            zones = javaType.zones().map({ args0 -> args0 }),
        )
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy