Model/SettingsClustersSoftwareReportsHardwareCompatibilityStorageDeviceOverridesComplianceStatusKey.ps1

#
# Settings Paths
# The esx settings package provides services to manage ESX settings.
# Contact: powercli@vmware.com
# Generated by OpenAPI Generator: https://openapi-generator.tech
#

<#
.DESCRIPTION
 
The ComplianceStatus.Key structure specifies information about the storage device for which this override must be applied to.
 
.PARAMETER Model
No description available.
.PARAMETER Vendor
No description available.
.PARAMETER Capacity
No description available.
.PARAMETER PartNumber
storage device part number If unset the override will be applied to the entries without a part number.
.PARAMETER FirmwareVersion
storage device firmware version If unset the override is applied to the entries with an unknown firmware version.
.PARAMETER DriverName
Driver name of this storage device if applicable/available. This field will be unset if there is no driver associated with the device.
.PARAMETER DriverVersion
Driver version of this storage device if applicable/available. This field will be unset if there is no driver associated with the device.
.PARAMETER Release
vSphere release that an override must be applied to. If this field is unset, InvalidArgument is thrown. The field is left optional to support wildcard matching in a future release.
.PARAMETER ValidatedFeaturesInUse
Validated features for which this override applies If a service is specified but no specific features are included, the device is taken to be in use by the service. If this field is unset this is taken to mean that the device is active for the vSAN service (and no specific features). This is done in order to support 7.0 U3 clients which do not set this field. Subset of validated features for which we provide certification - for example RDMA, not IPV6 Note that this list represents the features in actual current use, which could include features for which the device is not certified
.OUTPUTS
 
SettingsClustersSoftwareReportsHardwareCompatibilityStorageDeviceOverridesComplianceStatusKey<PSCustomObject>
 
.LINK
 
Online Version: https://developer.vmware.com/docs/vsphere-automation/latest/esx/data-structures/Settings/Clusters/Software/Reports/HardwareCompatibility/StorageDeviceOverrides/ComplianceStatus/Key/
#>


function Initialize-SettingsClustersSoftwareReportsHardwareCompatibilityStorageDeviceOverridesComplianceStatusKey {
    [CmdletBinding(HelpURI = "https://developer.vmware.com/docs/vsphere-automation/latest/esx/data-structures/Settings/Clusters/Software/Reports/HardwareCompatibility/StorageDeviceOverrides/ComplianceStatus/Key/")]
    Param (
        [Parameter(Mandatory = $true)]
        [ValidateScript({ $_ -is [string] })]
        ${Model},
        [Parameter(Mandatory = $true)]
        [ValidateScript({ $_ -is [string] })]
        ${Vendor},
        [Parameter(Mandatory = $true)]
        [Int64]
        ${Capacity},
        [Parameter(Mandatory = $false)]
        [ValidateScript({ $_ -is [string] })]
        ${PartNumber},
        [Parameter(Mandatory = $false)]
        [ValidateScript({ $_ -is [string] })]
        ${FirmwareVersion},
        [Parameter(Mandatory = $false)]
        [ValidateScript({ $_ -is [string] })]
        ${DriverName},
        [Parameter(Mandatory = $false)]
        [ValidateScript({ $_ -is [string] })]
        ${DriverVersion},
        [Parameter(Mandatory = $false)]
        [ValidateScript({ $_ -is [string] })]
        ${Release},
        [Parameter(Mandatory = $false)]
        [System.Collections.Hashtable]
        ${ValidatedFeaturesInUse}
    )

    Process {
        'Creating PSCustomObject: VMware.Sdk.vSphere.Esx.Settings => vSphereSettingsClustersSoftwareReportsHardwareCompatibilityStorageDeviceOverridesComplianceStatusKey' | Write-Debug

        if ($Capacity -eq $null) {
            throw "invalid value for 'Capacity', 'Capacity' cannot be null."
        }


        $PSO = [PSCustomObject]@{
            "PSTypeName" = "SettingsClustersSoftwareReportsHardwareCompatibilityStorageDeviceOverridesComplianceStatusKey"
            "model" = ${Model}
            "vendor" = ${Vendor}
            "capacity" = ${Capacity}
            "part_number" = ${PartNumber}
            "firmware_version" = ${FirmwareVersion}
            "driver_name" = ${DriverName}
            "driver_version" = ${DriverVersion}
            "release" = ${Release}
            "validated_features_in_use" = ${ValidatedFeaturesInUse}
        }


        return $PSO
    }
}