Model/NodesCephOsdMetadataDevicesInner.ps1

#
# Proxmox VE
# Generated module to access all Proxmox VE Api Endpoints
# Version: 0.3
# Contact: amna.wolf@gmail.com
# Generated by OpenAPI Generator: https://openapi-generator.tech
#

<#
.SYNOPSIS

No summary available.

.DESCRIPTION

No description available.

.PARAMETER DevNode
Device node
.PARAMETER Device
Kind of OSD device
.PARAMETER Devices
Physical disks used
.PARAMETER Size
Size in bytes
.PARAMETER SupportDiscard
Discard support of the physical device
.PARAMETER Type
Type of device. For example, hdd or ssd
.OUTPUTS

NodesCephOsdMetadataDevicesInner<PSCustomObject>
#>


function Initialize-PVENodesCephOsdMetadataDevicesInner {
    [CmdletBinding()]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${DevNode},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("block", "db", "wal")]
        [String]
        ${Device},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Devices},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Int32]]
        ${Size},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${SupportDiscard},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Type}
    )

    Process {
        'Creating PSCustomObject: ProxmoxPVE => PVENodesCephOsdMetadataDevicesInner' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug


         $DisplayNameMapping =@{
            "DevNode"="dev_node"; "Device"="device"; "Devices"="devices"; "Size"="size"; "SupportDiscard"="support_discard"; "Type"="type"
        }
        
         $OBJ = @{}
        foreach($parameter in   $PSBoundParameters.Keys){
            #If Specifield map the Display name back
            $OBJ.($DisplayNameMapping.($parameter)) = "$PSBoundParameters.$parameter"
        }

        $PSO = [PSCustomObject]$OBJ


        return $PSO
    }
}

<#
.SYNOPSIS

Convert from JSON to NodesCephOsdMetadataDevicesInner<PSCustomObject>

.DESCRIPTION

Convert from JSON to NodesCephOsdMetadataDevicesInner<PSCustomObject>

.PARAMETER Json

Json object

.OUTPUTS

NodesCephOsdMetadataDevicesInner<PSCustomObject>
#>

function ConvertFrom-PVEJsonToNodesCephOsdMetadataDevicesInner {
    Param(
        [AllowEmptyString()]
        [string]$Json
    )

    Process {
        'Converting JSON to PSCustomObject: ProxmoxPVE => PVENodesCephOsdMetadataDevicesInner' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $JsonParameters = ConvertFrom-Json -InputObject $Json

        # check if Json contains properties not defined in PVENodesCephOsdMetadataDevicesInner
        $AllProperties = ("dev_node", "device", "devices", "size", "support_discard", "type")
        foreach ($name in $JsonParameters.PsObject.Properties.Name) {
            if (!($AllProperties.Contains($name))) {
                throw "Error! JSON key '$name' not found in the properties: $($AllProperties)"
            }
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "dev_node"))) { #optional property not found
            $DevNode = $null
        } else {
            $DevNode = $JsonParameters.PSobject.Properties["dev_node"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "device"))) { #optional property not found
            $Device = $null
        } else {
            $Device = $JsonParameters.PSobject.Properties["device"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "devices"))) { #optional property not found
            $Devices = $null
        } else {
            $Devices = $JsonParameters.PSobject.Properties["devices"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "size"))) { #optional property not found
            $Size = $null
        } else {
            $Size = $JsonParameters.PSobject.Properties["size"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "support_discard"))) { #optional property not found
            $SupportDiscard = $null
        } else {
            $SupportDiscard = $JsonParameters.PSobject.Properties["support_discard"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "type"))) { #optional property not found
            $Type = $null
        } else {
            $Type = $JsonParameters.PSobject.Properties["type"].value
        }

        $PSO = [PSCustomObject]@{
            "dev_node" = ${DevNode}
            "device" = ${Device}
            "devices" = ${Devices}
            "size" = ${Size}
            "support_discard" = ${SupportDiscard}
            "type" = ${Type}
        }

        return $PSO
    }

}