Public/vVols/Get-UnityvmwarePE.ps1

Function Get-UnityVMwarePE {

  <#
      .SYNOPSIS
      A resource representing VMware protocol endpoint of both possible types: NAS protocol endpoint and SCSI protocol endpoint. An instance of this class is created automatically as part of VVol datastore (storage resource) host access configuration.
      .DESCRIPTION
      A resource representing VMware protocol endpoint of both possible types: NAS protocol endpoint and SCSI protocol endpoint. An instance of this class is created automatically as part of VVol datastore (storage resource) host access configuration.
      You need to have an active session with the array.
      .NOTES
      Written by Erwan Quelin under MIT licence - https://github.com/equelin/Unity-Powershell/blob/master/LICENSE
      .LINK
      https://github.com/equelin/Unity-Powershell
      .PARAMETER Session
      Specifies an UnitySession Object.
      .PARAMETER Name
      Specifies the object name.
      .PARAMETER ID
      Specifies the object ID.
      .EXAMPLE
      Get-UnityVMwarePE
 
      Retrieve information about all UnityvmwarePE
      .EXAMPLE
      Get-UnityVMwarePE -ID 'id01'
 
      Retrieves information about a specific UnityvmwarePE
  #>


  [CmdletBinding(DefaultParameterSetName='Name')]
  Param (
    [Parameter(Mandatory = $false,HelpMessage = 'EMC Unity Session')]
    $session = ($global:DefaultUnitySession | where-object {$_.IsConnected -eq $true}),
    [Parameter(Mandatory = $false,ParameterSetName='Name',ValueFromPipeline=$True,ValueFromPipelinebyPropertyName=$True,HelpMessage = 'UnityvmwarePE Name')]
    [String[]]$Name,
    [Parameter(Mandatory = $false,ParameterSetName='ID',ValueFromPipeline=$True,ValueFromPipelinebyPropertyName=$True,HelpMessage = 'UnityvmwarePE ID')]
    [String[]]$ID
  )

  Begin {
    Write-Debug -Message "[$($MyInvocation.MyCommand)] Executing function"

    #Initialazing variables
    $URI = '/api/types/vmwarePE/instances' #URI
    $TypeName = 'UnityvmwarePE'
  }

  Process {
    Foreach ($sess in $session) {

      Write-Debug -Message "[$($MyInvocation.MyCommand)] Processing Session: $($Session.Server) with SessionId: $($Session.SessionId)"

      Get-UnityItemByKey -Session $Sess -URI $URI -Typename $Typename -Key $PsCmdlet.ParameterSetName -Value $PSBoundParameters[$PsCmdlet.ParameterSetName]

    } # End Foreach ($sess in $session)
  } # End Process
} # End Function