scripts/Volume.ps1

# Volume.ps1: This is an autogenerated file. Part of Nimble Group Management SDK. All edits to this file will be lost!
#
# ? Copyright 2017 Hewlett Packard Enterprise Development LP.

function New-NSVolume {
  # .ExternalHelp ../NimPSSDK.psm1-help.xml
  [CmdletBinding()]
  param(
    [Parameter(ParameterSetName='allButId', Mandatory = $True)]
    [AllowEmptyString()]
    [string] $name,

    [Parameter(ParameterSetName='allButId')]
    
    [Nullable[long]] $size,

    [Parameter(ParameterSetName='allButId')]
    [AllowEmptyString()]
    [string] $description,

    [Parameter(ParameterSetName='allButId')]
    [AllowEmptyString()]
    [string] $perfpolicy_id,

    [Parameter(ParameterSetName='allButId')]
    
    [Nullable[long]] $reserve,

    [Parameter(ParameterSetName='allButId')]
    
    [Nullable[long]] $warn_level,

    [Parameter(ParameterSetName='allButId')]
    
    [Nullable[long]] $limit,

    [Parameter(ParameterSetName='allButId')]
    
    [Nullable[long]] $snap_reserve,

    [Parameter(ParameterSetName='allButId')]
    
    [Nullable[long]] $snap_warn_level,

    [Parameter(ParameterSetName='allButId')]
    
    [Nullable[long]] $snap_limit,

    [Parameter(ParameterSetName='allButId')]
    
    [Nullable[long]] $snap_limit_percent,

    [Parameter(ParameterSetName='allButId')]
    
    [Nullable[bool]] $online,

    [Parameter(ParameterSetName='allButId')]
    [AllowEmptyString()]
    [string] $owned_by_group_id,

    [Parameter(ParameterSetName='allButId')]
    
    [Nullable[bool]] $multi_initiator,

    [Parameter(ParameterSetName='allButId')]
    [ValidateSet( 'volume', 'group')]
    [string] $iscsi_target_scope,

    [Parameter(ParameterSetName='allButId')]
    [AllowEmptyString()]
    [string] $pool_id,

    [Parameter(ParameterSetName='allButId')]
    
    [Nullable[bool]] $read_only,

    [Parameter(ParameterSetName='allButId')]
    
    [Nullable[long]] $block_size,

    [Parameter(ParameterSetName='allButId')]
    
    [Nullable[bool]] $clone,

    [Parameter(ParameterSetName='allButId')]
    [AllowEmptyString()]
    [string] $base_snap_id,

    [Parameter(ParameterSetName='allButId')]
    [ValidateSet( 'smis', 'vvol', 'openstack', 'openstackv2', 'none')]
    [string] $agent_type,

    [Parameter(ParameterSetName='allButId')]
    [AllowEmptyString()]
    [string] $dest_pool_id,

    [Parameter(ParameterSetName='allButId')]
    
    [Nullable[bool]] $cache_pinned,

    [Parameter(ParameterSetName='allButId')]
    
    [Nullable[bool]] $thinly_provisioned,

    [Parameter(ParameterSetName='allButId')]
    
    [Nullable[bool]] $inherit_acl,

    [Parameter(ParameterSetName='allButId')]
    [ValidateSet( 'aes_256_xts', 'none')]
    [string] $encryption_cipher,

    [Parameter(ParameterSetName='allButId')]
    [AllowEmptyString()]
    [string] $app_uuid,

    [Parameter(ParameterSetName='allButId')]
    [AllowEmptyString()]
    [string] $folder_id,

    [Parameter(ParameterSetName='allButId')]
    [Object[]] $metadata,

    [Parameter(ParameterSetName='allButId')]
    
    [Nullable[bool]] $dedupe_enabled,

    [Parameter(ParameterSetName='allButId')]
    
    [Nullable[long]] $limit_iops,

    [Parameter(ParameterSetName='allButId')]
    
    [Nullable[long]] $limit_mbps,

    [Parameter(ParameterSetName='allButId')]
    
    [Nullable[bool]] $needs_content_repl

  )

    process {
        # Gather request params based on user input.
        $RequestData = @{}
        $ParameterList = (Get-Command -Name $MyInvocation.InvocationName).Parameters;
        foreach ($key in $ParameterList.keys)
        {
            $var = Get-Variable -Name $key -ErrorAction SilentlyContinue;
            if($var -and ($PSBoundParameters.ContainsKey($key)))
            {
                $RequestData.Add("$($var.name)", ($var.value))
            }
        }
        $Params = @{
            ObjectName = 'Volume'
            APIPath = 'volumes'
            Properties = $RequestData
        }

        $ResponseObject = New-NimbleStorageAPIObject @Params
        return $ResponseObject
    }
}

function Get-NSVolume {
  # .ExternalHelp ../NimPSSDK.psm1-help.xml
  [CmdletBinding(DefaultParameterSetName='id')]
  param(
    [Parameter(ParameterSetName='id')]
    [Parameter(ParameterSetName='nonId')]
    [ValidateSet('id','name','full_name','search_name','size','description','perfpolicy_name','perfpolicy_id','reserve','warn_level','limit','snap_reserve','snap_warn_level','snap_limit','snap_limit_percent','num_snaps','projected_num_snaps','online','owned_by_group','owned_by_group_id','multi_initiator','iscsi_target_scope','pool_name','pool_id','read_only','serial_number','secondary_serial_number','target_name','block_size','offline_reason','clone','parent_vol_name','parent_vol_id','base_snap_name','base_snap_id','replication_role','volcoll_name','volcoll_id','agent_type','force','creation_time','last_modified','protection_type','last_snap','last_replicated_snap','dest_pool_name','dest_pool_id','move_start_time','move_aborting','move_bytes_migrated','move_bytes_remaining','move_est_compl_time','usage_valid','space_usage_level','total_usage_bytes','vol_usage_compressed_bytes','vol_usage_uncompressed_bytes','vol_usage_mapped_bytes','snap_usage_compressed_bytes','snap_usage_uncompressed_bytes','snap_usage_populated_bytes','cache_pinned','pinned_cache_size','cache_needed_for_pin','upstream_cache_pinned','cache_policy','thinly_provisioned','vol_state','online_snaps','num_connections','num_iscsi_connections','num_fc_connections','access_control_records','inherit_acl','encryption_cipher','app_uuid','folder_id','folder_name','metadata','iscsi_sessions','fc_sessions','caching_enabled','previously_deduped','dedupe_enabled','vpd_t10','vpd_ieee0','vpd_ieee1','app_category','limit_iops','limit_mbps','needs_content_repl','content_repl_errors_found','last_content_snap_br_cg_uid','last_content_snap_br_gid','last_content_snap_id','cksum_last_verified','pre_filter','avg_stats_last_5mins','srep_last_sync','srep_resync_percent')]
    [string[]]$fields,

    [Parameter(ParameterSetName='id')]
    [ValidatePattern('([0-9a-f]{2})([0-9a-f]{16})([0-9a-f]{16})([0-9a-f]{8})')]
    [string] $id,

    [Parameter(ParameterSetName='nonId')]
    [string]$name,

    [Parameter(ParameterSetName='nonId')]
    [string]$full_name,

    [Parameter(ParameterSetName='nonId')]
    [string]$search_name,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$size,

    [Parameter(ParameterSetName='nonId')]
    [string]$description,

    [Parameter(ParameterSetName='nonId')]
    [string]$perfpolicy_name,

    [Parameter(ParameterSetName='nonId')]
    [string]$perfpolicy_id,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$reserve,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$warn_level,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$limit,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$snap_reserve,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$snap_warn_level,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$snap_limit,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$snap_limit_percent,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$num_snaps,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$projected_num_snaps,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[bool]]$online,

    [Parameter(ParameterSetName='nonId')]
    [string]$owned_by_group,

    [Parameter(ParameterSetName='nonId')]
    [string]$owned_by_group_id,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[bool]]$multi_initiator,

    [Parameter(ParameterSetName='nonId')]
    [ValidateSet( 'volume', 'group')]
    [string]$iscsi_target_scope,

    [Parameter(ParameterSetName='nonId')]
    [string]$pool_name,

    [Parameter(ParameterSetName='nonId')]
    [string]$pool_id,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[bool]]$read_only,

    [Parameter(ParameterSetName='nonId')]
    [string]$serial_number,

    [Parameter(ParameterSetName='nonId')]
    [string]$secondary_serial_number,

    [Parameter(ParameterSetName='nonId')]
    [string]$target_name,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$block_size,

    [Parameter(ParameterSetName='nonId')]
    [ValidateSet( 'replica', 'recovery', 'nvram_loss_recovery', 'serial_number_collision', 'encryption_key_deleted', 'over_volume_usage_limit', 'over_folder_overdraft_limit', 'cache_unpin_in_progress', 'vvol_unbind', 'over_volume_limit', 'over_snapshot_limit', 'encryption_inactive', 'pool_free_space_exhausted', 'srep_unconfigured', 'user', 'over_volume_reserve', 'over_snapshot_reserve')]
    [string]$offline_reason,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[bool]]$clone,

    [Parameter(ParameterSetName='nonId')]
    [string]$parent_vol_name,

    [Parameter(ParameterSetName='nonId')]
    [string]$parent_vol_id,

    [Parameter(ParameterSetName='nonId')]
    [string]$base_snap_name,

    [Parameter(ParameterSetName='nonId')]
    [string]$base_snap_id,

    [Parameter(ParameterSetName='nonId')]
    [ValidateSet( 'periodic_snapshot_downstream', 'synchronous_upstream', 'synchronous_downstream', 'no_replication', 'periodic_snapshot_upstream')]
    [string]$replication_role,

    [Parameter(ParameterSetName='nonId')]
    [string]$volcoll_name,

    [Parameter(ParameterSetName='nonId')]
    [string]$volcoll_id,

    [Parameter(ParameterSetName='nonId')]
    [ValidateSet( 'smis', 'vvol', 'openstack', 'openstackv2', 'none')]
    [string]$agent_type,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[bool]]$force,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$creation_time,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$last_modified,

    [Parameter(ParameterSetName='nonId')]
    [ValidateSet( 'unprotected', 'remote', 'local')]
    [string]$protection_type,

    [Parameter(ParameterSetName='nonId')]
    [Object]$last_snap,

    [Parameter(ParameterSetName='nonId')]
    [Object]$last_replicated_snap,

    [Parameter(ParameterSetName='nonId')]
    [string]$dest_pool_name,

    [Parameter(ParameterSetName='nonId')]
    [string]$dest_pool_id,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$move_start_time,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[bool]]$move_aborting,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$move_bytes_migrated,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$move_bytes_remaining,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$move_est_compl_time,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[bool]]$usage_valid,

    [Parameter(ParameterSetName='nonId')]
    [ValidateSet( 'normal', 'critical', 'warning')]
    [string]$space_usage_level,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$total_usage_bytes,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$vol_usage_compressed_bytes,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$vol_usage_uncompressed_bytes,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$vol_usage_mapped_bytes,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$snap_usage_compressed_bytes,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$snap_usage_uncompressed_bytes,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$snap_usage_populated_bytes,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[bool]]$cache_pinned,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$pinned_cache_size,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$cache_needed_for_pin,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[bool]]$upstream_cache_pinned,

    [Parameter(ParameterSetName='nonId')]
    [ValidateSet( 'normal', 'no_write', 'aggressive_read_no_write', 'disabled', 'aggressive')]
    [string]$cache_policy,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[bool]]$thinly_provisioned,

    [Parameter(ParameterSetName='nonId')]
    [ValidateSet( 'offline', 'login_only', 'non_writable', 'read_only', 'online')]
    [string]$vol_state,

    [Parameter(ParameterSetName='nonId')]
    [Object[]]$online_snaps,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$num_connections,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$num_iscsi_connections,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$num_fc_connections,

    [Parameter(ParameterSetName='nonId')]
    [Object[]]$access_control_records,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[bool]]$inherit_acl,

    [Parameter(ParameterSetName='nonId')]
    [ValidateSet( 'aes_256_xts', 'none')]
    [string]$encryption_cipher,

    [Parameter(ParameterSetName='nonId')]
    [string]$app_uuid,

    [Parameter(ParameterSetName='nonId')]
    [string]$folder_id,

    [Parameter(ParameterSetName='nonId')]
    [string]$folder_name,

    [Parameter(ParameterSetName='nonId')]
    [Object[]]$metadata,

    [Parameter(ParameterSetName='nonId')]
    [Object[]]$iscsi_sessions,

    [Parameter(ParameterSetName='nonId')]
    [Object[]]$fc_sessions,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[bool]]$caching_enabled,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[bool]]$previously_deduped,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[bool]]$dedupe_enabled,

    [Parameter(ParameterSetName='nonId')]
    [string]$vpd_t10,

    [Parameter(ParameterSetName='nonId')]
    [string]$vpd_ieee0,

    [Parameter(ParameterSetName='nonId')]
    [string]$vpd_ieee1,

    [Parameter(ParameterSetName='nonId')]
    [string]$app_category,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$limit_iops,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$limit_mbps,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[bool]]$needs_content_repl,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[bool]]$content_repl_errors_found,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$last_content_snap_br_cg_uid,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$last_content_snap_br_gid,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$last_content_snap_id,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$cksum_last_verified,

    [Parameter(ParameterSetName='nonId')]
    [string]$pre_filter,

    [Parameter(ParameterSetName='nonId')]
    [Object]$avg_stats_last_5mins,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$srep_last_sync,

    [Parameter(ParameterSetName='nonId')]
    [Nullable[long]]$srep_resync_percent

  )

  process
  {
    $API = 'volumes'
    $Param = @{
      ObjectName = 'Volume'
      APIPath = 'volumes'
    }

    if ($fields)
    {
        $Param.Fields = $fields
    }

    if ($id)
    {
        # Get a single object for given Id.
        $Param.Id = $id
        $ResponseObject = Get-NimbleStorageAPIObject @Param
        return $ResponseObject
    }
    else
    {
        # Get list of objects matching the given filter.
        $Param.Filter = @{}
        $ParameterList = (Get-Command -Name $MyInvocation.InvocationName).Parameters;
        foreach ($key in $ParameterList.keys)
        {
            if ($key.ToLower() -ne 'fields')
            {
                $var = Get-Variable -Name $key -ErrorAction SilentlyContinue;
                if($var -and ($PSBoundParameters.ContainsKey($key)))
                {
                    $Param.Filter.Add("$($var.name)", ($var.value))
                }
            }
        }
        $ResponseObjectList = Get-NimbleStorageAPIObjectList @Param
        return $ResponseObjectList
    }
  }
}

function Set-NSVolume {
  # .ExternalHelp ../NimPSSDK.psm1-help.xml
  [CmdletBinding()]
  param(

    [Parameter(ValueFromPipeline=$True, ValueFromPipelineByPropertyName=$True, Mandatory = $True, ParameterSetName='all')]
    [string]$id,

    [Parameter(ParameterSetName='all')]
    [AllowEmptyString()]
    [string] $name,

    [Parameter(ParameterSetName='all')]
    
    [Nullable[long]] $size,

    [Parameter(ParameterSetName='all')]
    [AllowEmptyString()]
    [string] $description,

    [Parameter(ParameterSetName='all')]
    [AllowEmptyString()]
    [string] $perfpolicy_id,

    [Parameter(ParameterSetName='all')]
    
    [Nullable[long]] $reserve,

    [Parameter(ParameterSetName='all')]
    
    [Nullable[long]] $warn_level,

    [Parameter(ParameterSetName='all')]
    
    [Nullable[long]] $limit,

    [Parameter(ParameterSetName='all')]
    
    [Nullable[long]] $snap_reserve,

    [Parameter(ParameterSetName='all')]
    
    [Nullable[long]] $snap_warn_level,

    [Parameter(ParameterSetName='all')]
    
    [Nullable[long]] $snap_limit,

    [Parameter(ParameterSetName='all')]
    
    [Nullable[long]] $snap_limit_percent,

    [Parameter(ParameterSetName='all')]
    
    [Nullable[bool]] $online,

    [Parameter(ParameterSetName='all')]
    [AllowEmptyString()]
    [string] $owned_by_group_id,

    [Parameter(ParameterSetName='all')]
    
    [Nullable[bool]] $multi_initiator,

    [Parameter(ParameterSetName='all')]
    [ValidateSet( 'volume', 'group')]
    [string] $iscsi_target_scope,

    [Parameter(ParameterSetName='all')]
    
    [Nullable[bool]] $read_only,

    [Parameter(ParameterSetName='all')]
    
    [Nullable[long]] $block_size,

    [Parameter(ParameterSetName='all')]
    [AllowEmptyString()]
    [string] $volcoll_id,

    [Parameter(ParameterSetName='all')]
    [ValidateSet( 'smis', 'vvol', 'openstack', 'openstackv2', 'none')]
    [string] $agent_type,

    [Parameter(ParameterSetName='all')]
    
    [Nullable[bool]] $force,

    [Parameter(ParameterSetName='all')]
    
    [Nullable[bool]] $cache_pinned,

    [Parameter(ParameterSetName='all')]
    
    [Nullable[bool]] $thinly_provisioned,

    [Parameter(ParameterSetName='all')]
    [AllowEmptyString()]
    [string] $app_uuid,

    [Parameter(ParameterSetName='all')]
    [AllowEmptyString()]
    [string] $folder_id,

    [Parameter(ParameterSetName='all')]
    [Object[]] $metadata,

    [Parameter(ParameterSetName='all')]
    
    [Nullable[bool]] $caching_enabled,

    [Parameter(ParameterSetName='all')]
    
    [Nullable[bool]] $dedupe_enabled,

    [Parameter(ParameterSetName='all')]
    
    [Nullable[long]] $limit_iops,

    [Parameter(ParameterSetName='all')]
    
    [Nullable[long]] $limit_mbps,

    [Parameter(ParameterSetName='all')]
    
    [Nullable[bool]] $needs_content_repl

  )

    process {
        # Gather request params based on user input.
        $RequestData = @{}
        $ParameterList = (Get-Command -Name $MyInvocation.InvocationName).Parameters;
        foreach ($key in $ParameterList.keys)
        {
            if ($key.ToLower() -ne 'id')
            {
                $var = Get-Variable -Name $key -ErrorAction SilentlyContinue;
                if($var -and ($PSBoundParameters.ContainsKey($key)))
                {
                    $RequestData.Add("$($var.name)", ($var.value))
                }
            }
        }
        $Params = @{
            ObjectName = 'Volume'
            APIPath = 'volumes'
            Id = $id
            Properties = $RequestData
        }

        $ResponseObject = Set-NimbleStorageAPIObject @Params
        return $ResponseObject
    }
}

function Remove-NSVolume {
  # .ExternalHelp ../NimPSSDK.psm1-help.xml
  [CmdletBinding()]
  param(
    [Parameter(ValueFromPipeline=$True, ValueFromPipelineByPropertyName=$True, Mandatory = $True, ParameterSetName='id')]
    [string]$id
  )

  process {
    $Params = @{
        ObjectName = 'Volume'
        APIPath = 'volumes'
        Id = $id
    }

    Remove-NimbleStorageAPIObject @Params
  }
}

function Restore-NSVolume {
    # .ExternalHelp ../NimPSSDK.psm1-help.xml
    [CmdletBinding(DefaultParameterSetName='allArgs')]
    param (
    [Parameter(ValueFromPipelineByPropertyName=$True, ParameterSetName='allArgs', Mandatory = $True)]
    [AllowEmptyString()]
    [string]$id,

    [Parameter(ValueFromPipelineByPropertyName=$True, ParameterSetName='allArgs', Mandatory = $True)]
    [AllowEmptyString()]
    [string]$base_snap_id

  )

  process{
    $Params = @{
        APIPath = 'volumes'
        Action = 'restore'
        ReturnType = 'void'
    }
    $Params.Arguments = @{}
    $ParameterList = (Get-Command -Name $MyInvocation.InvocationName).Parameters;
    foreach ($key in $ParameterList.keys)
    {
        $var = Get-Variable -Name $key -ErrorAction SilentlyContinue;
        if($var -and ($PSBoundParameters.ContainsKey($key)))
        {
            $Params.Arguments.Add("$($var.name)", ($var.value))
        }
    }

    $ResponseObject = Invoke-NimbleStorageAPIAction @Params
    return $ResponseObject
  }
}
function Move-NSVolume {
    # .ExternalHelp ../NimPSSDK.psm1-help.xml
    [CmdletBinding(DefaultParameterSetName='allArgs')]
    param (
    [Parameter(ValueFromPipelineByPropertyName=$True, ParameterSetName='allArgs', Mandatory = $True)]
    [AllowEmptyString()]
    [string]$id,

    [Parameter(ValueFromPipelineByPropertyName=$True, ParameterSetName='allArgs', Mandatory = $True)]
    [AllowEmptyString()]
    [string]$dest_pool_id,

    [Parameter(ValueFromPipelineByPropertyName=$True, ParameterSetName='allArgs')]
    
    [Nullable[bool]]$force_vvol

  )

  process{
    $Params = @{
        APIPath = 'volumes'
        Action = 'move'
        ReturnType = 'NsVolumeListReturn'
    }
    $Params.Arguments = @{}
    $ParameterList = (Get-Command -Name $MyInvocation.InvocationName).Parameters;
    foreach ($key in $ParameterList.keys)
    {
        $var = Get-Variable -Name $key -ErrorAction SilentlyContinue;
        if($var -and ($PSBoundParameters.ContainsKey($key)))
        {
            $Params.Arguments.Add("$($var.name)", ($var.value))
        }
    }

    $ResponseObject = Invoke-NimbleStorageAPIAction @Params
    return $ResponseObject
  }
}
function Move-NSVolumeBulk {
    # .ExternalHelp ../NimPSSDK.psm1-help.xml
    [CmdletBinding(DefaultParameterSetName='allArgs')]
    param (
    [Parameter(ValueFromPipelineByPropertyName=$True, ParameterSetName='allArgs', Mandatory = $True)]
    [Object[]]$vol_ids,

    [Parameter(ValueFromPipelineByPropertyName=$True, ParameterSetName='allArgs', Mandatory = $True)]
    [AllowEmptyString()]
    [string]$dest_pool_id,

    [Parameter(ValueFromPipelineByPropertyName=$True, ParameterSetName='allArgs')]
    
    [Nullable[bool]]$force_vvol

  )

  process{
    $Params = @{
        APIPath = 'volumes'
        Action = 'bulk_move'
        ReturnType = 'NsVolumeListReturn'
    }
    $Params.Arguments = @{}
    $ParameterList = (Get-Command -Name $MyInvocation.InvocationName).Parameters;
    foreach ($key in $ParameterList.keys)
    {
        $var = Get-Variable -Name $key -ErrorAction SilentlyContinue;
        if($var -and ($PSBoundParameters.ContainsKey($key)))
        {
            $Params.Arguments.Add("$($var.name)", ($var.value))
        }
    }

    $ResponseObject = Invoke-NimbleStorageAPIAction @Params
    return $ResponseObject
  }
}
function Stop-NSVolumeMove {
    # .ExternalHelp ../NimPSSDK.psm1-help.xml
    [CmdletBinding(DefaultParameterSetName='allArgs')]
    param (
    [Parameter(ValueFromPipelineByPropertyName=$True, ParameterSetName='allArgs', Mandatory = $True)]
    [AllowEmptyString()]
    [string]$id

  )

  process{
    $Params = @{
        APIPath = 'volumes'
        Action = 'abort_move'
        ReturnType = 'void'
    }
    $Params.Arguments = @{}
    $ParameterList = (Get-Command -Name $MyInvocation.InvocationName).Parameters;
    foreach ($key in $ParameterList.keys)
    {
        $var = Get-Variable -Name $key -ErrorAction SilentlyContinue;
        if($var -and ($PSBoundParameters.ContainsKey($key)))
        {
            $Params.Arguments.Add("$($var.name)", ($var.value))
        }
    }

    $ResponseObject = Invoke-NimbleStorageAPIAction @Params
    return $ResponseObject
  }
}
function Set-NSVolumeBulkDeDupe {
    # .ExternalHelp ../NimPSSDK.psm1-help.xml
    [CmdletBinding(DefaultParameterSetName='allArgs')]
    param (
    [Parameter(ValueFromPipelineByPropertyName=$True, ParameterSetName='allArgs', Mandatory = $True)]
    [Object[]]$vol_ids,

    [Parameter(ValueFromPipelineByPropertyName=$True, ParameterSetName='allArgs', Mandatory = $True)]
    
    [Nullable[bool]]$dedupe_enabled

  )

  process{
    $Params = @{
        APIPath = 'volumes'
        Action = 'bulk_set_dedupe'
        ReturnType = 'void'
    }
    $Params.Arguments = @{}
    $ParameterList = (Get-Command -Name $MyInvocation.InvocationName).Parameters;
    foreach ($key in $ParameterList.keys)
    {
        $var = Get-Variable -Name $key -ErrorAction SilentlyContinue;
        if($var -and ($PSBoundParameters.ContainsKey($key)))
        {
            $Params.Arguments.Add("$($var.name)", ($var.value))
        }
    }

    $ResponseObject = Invoke-NimbleStorageAPIAction @Params
    return $ResponseObject
  }
}
function Set-NSVolumeBulkOnline {
    # .ExternalHelp ../NimPSSDK.psm1-help.xml
    [CmdletBinding(DefaultParameterSetName='allArgs')]
    param (
    [Parameter(ValueFromPipelineByPropertyName=$True, ParameterSetName='allArgs', Mandatory = $True)]
    [Object[]]$vol_ids,

    [Parameter(ValueFromPipelineByPropertyName=$True, ParameterSetName='allArgs', Mandatory = $True)]
    
    [Nullable[bool]]$online

  )

  process{
    $Params = @{
        APIPath = 'volumes'
        Action = 'bulk_set_online_and_offline'
        ReturnType = 'void'
    }
    $Params.Arguments = @{}
    $ParameterList = (Get-Command -Name $MyInvocation.InvocationName).Parameters;
    foreach ($key in $ParameterList.keys)
    {
        $var = Get-Variable -Name $key -ErrorAction SilentlyContinue;
        if($var -and ($PSBoundParameters.ContainsKey($key)))
        {
            $Params.Arguments.Add("$($var.name)", ($var.value))
        }
    }

    $ResponseObject = Invoke-NimbleStorageAPIAction @Params
    return $ResponseObject
  }
}


# SIG # Begin signature block
# MIIiUgYJKoZIhvcNAQcCoIIiQzCCIj8CAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBuOxGgN3cqXj7X
# eb5VG/V4+SdQt2QjLpYKd/URTnmjsKCCEIwwggVRMIIEOaADAgECAhAqlTIY4QtL
# e2/RSyqeww0mMA0GCSqGSIb3DQEBCwUAMIG9MQswCQYDVQQGEwJVUzEXMBUGA1UE
# ChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
# cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
# cml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290
# IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTE2MDUxMjAwMDAwMFoXDTI2MDUx
# MTIzNTk1OVowgZExCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRTeW1hbnRlYyBDb3Jw
# b3JhdGlvbjEfMB0GA1UECxMWU3ltYW50ZWMgVHJ1c3QgTmV0d29yazFCMEAGA1UE
# AxM5U3ltYW50ZWMgQ2xhc3MgMyBFeHRlbmRlZCBWYWxpZGF0aW9uIENvZGUgU2ln
# bmluZyBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApZCU
# ss4Vva9QGeDEzgpo6PhoHDzlK84LS1feob0ads/HnzSxAG14+SblzJmsdMae4Gzh
# LZEgk4drboRs1S5SF9CP2ers/Owg8g3aP22cJdHb+yDs8ND/SxC2uTkRjfYMokxP
# uB33fdDlz/dcM4BmpNYib3vjeBcGBfTGxpS3/stWKn4P+hjzSANNp24WtxUbfdwv
# 20MOKR7ReG9oGBu3gst+WI/Y0ph/kE27xws8cf7MxMv2o0IQrB3Kg/yRviyqgK+3
# mWlGcdOVIJnNUS6V+KwSHnzitCJpLgvAF3yg/e1cpi4iK2X/fc0xpGOs3yLlk3yi
# ToLCEyy/HIsiPatm7QIDAQABo4IBdTCCAXEwLgYIKwYBBQUHAQEEIjAgMB4GCCsG
# AQUFBzABhhJodHRwOi8vcy5zeW1jZC5jb20wEgYDVR0TAQH/BAgwBgEB/wIBADBg
# BgNVHSAEWTBXMFUGBWeBDAEDMEwwIwYIKwYBBQUHAgEWF2h0dHBzOi8vZC5zeW1j
# Yi5jb20vY3BzMCUGCCsGAQUFBwICMBkaF2h0dHBzOi8vZC5zeW1jYi5jb20vcnBh
# MDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9zLnN5bWNiLmNvbS91bml2ZXJzYWwt
# cm9vdC5jcmwwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwMwDgYDVR0PAQH/BAQDAgEG
# MCkGA1UdEQQiMCCkHjAcMRowGAYDVQQDExFTeW1hbnRlY1BLSS0yLTM4ODAdBgNV
# HQ4EFgQUq4sRSQsqAmJ1SpvFAiCghNJL+N4wHwYDVR0jBBgwFoAUtnf6aUhHn1MS
# 1cLqBzJ2B9GXBxkwDQYJKoZIhvcNAQELBQADggEBADAxqBF+Ga4dNNPS18ywHMoB
# oUoWX2jFyk0FWQH0/IUKp88fsBwgZAlBGBK0490yM3KZEytIXUmWESLnucRvBTBN
# bKwzvk1PImLW8WcqFnvGjI4OuZYAnQ5kAZJk6jf4BH4RYm+MLJxdC7j/3X9AzOiI
# 8p0mNEm0H735Wz94cy6B+mka85SPlTB+wrTYlSXSev6KOOiwb/ZvOfDO+oRWEH9W
# p8UUYLRPWjmBSqzhMmBLDhSg9R6hSEOXWZG9HWhmmDAAi8JZ1H72hRt6f7rbZWgO
# rW5ztlQ59GgDhXyhvFOzO6GCP3gkNQKkroWGwgXngHVcBZF57aqNh2kmiheB58Mw
# ggWNMIIDdaADAgECAgphLSPLAAAAAAAhMA0GCSqGSIb3DQEBBQUAMH8xCzAJBgNV
# BAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4w
# HAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAMTIE1pY3Jvc29m
# dCBDb2RlIFZlcmlmaWNhdGlvbiBSb290MB4XDTExMDIyMjE5NDYzOVoXDTIxMDIy
# MjE5NTYzOVowgb0xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5j
# LjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazE6MDgGA1UECxMxKGMp
# IDIwMDggVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE4
# MDYGA1UEAxMvVmVyaVNpZ24gVW5pdmVyc2FsIFJvb3QgQ2VydGlmaWNhdGlvbiBB
# dXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDHYTdesQE0
# 22LXFZv/WFqMIyPWYI6R15CYg3rmWBk4jMX25WSFtKJx++29udrNTQC0yC1zpcdp
# cZUfOTyyRAec6A76TUrEId8pYY8yImGCxYcfbox8XxYgUUTRcE9X6uMc48x57ljY
# DsKzRZPALOeaFyt7ADd6QTN44TPi8xAaf4csvvb190Li5b+HYolfAEvfxd3kdUQy
# QToecW5pywt1RgjRytIrldDP+7lAa2SMV038ExF5hO1eVPY0nwgB8xAlBhdK2vEd
# emZrmGBmpNnv0i6C8fDvCepEyRVq4gNuM9Osn1UAx/YIapS5X9zgM/GEYPlbJxG0
# /Bbyu1ZqgCWNAgMBAAGjgcswgcgwEQYDVR0gBAowCDAGBgRVHSAAMA8GA1UdEwEB
# /wQFMAMBAf8wCwYDVR0PBAQDAgGGMB0GA1UdDgQWBBS2d/ppSEefUxLVwuoHMnYH
# 0ZcHGTAfBgNVHSMEGDAWgBRi+wohW39DbhHaCVRQa/XSlnHxnjBVBgNVHR8ETjBM
# MEqgSKBGhkRodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0
# cy9NaWNyb3NvZnRDb2RlVmVyaWZSb290LmNybDANBgkqhkiG9w0BAQUFAAOCAgEA
# WUdSmjRDPbATxDK4+DfZVVANKqRnZzOUyf/Y9QysjVo5g0htsrtDj3sL81uvNHpP
# nrcI5/4BOBHeLzucPpYLslCC5rVVtGCWE0jtJy0lAnI4s/NlWYpiM3bVbPmV9J01
# TIOgwWf8g7V2k8boUhtZubqFlAo70SgFGxkM8yMXZUZ4DtlzSsC8PcBI4aT4h+UW
# 4VaHZTjhABeiHkQr9k9aKTywG7hfZUtI62qYKV5X4vVi2ENHsy5qE0GnfTgjBg33
# XOZ/us1lBJJSUiZgqKM8Ig2tt7pMMm9S3qubccme6L6fXqatd9dtJZVWKhhDwszB
# buHO30Xv/rdRKnyYtP5mg59rbOx01Z8yHyQ7QzrRBB0ASlul0m1mTMjBTezDATXB
# uHn94Mb2qCmgko09Q3d4ph5MwjgEWOs6gzQExjROE0WyW3IvcmpP5Rp8GGtE48hY
# H45xDIBrTit7PPhK45OSxLCavKZht9N8ynD1+v/NB6LZ6BHMbERQn3GwgtI2pllz
# vbcLW2mGe6Ufx53B0grdLkzCMbaHKo0Qevqnfjxf8LCg9UUF3nkSegKF8R6K05mH
# FylcvnVY1nkBBpVjOfsFFsc9SVGs+muYLcyXbqyzw2+CnACWfyQN6VlAYbNk27n5
# QaG57tlYjf8EV87Y/ur/Z1vOE/yc/PbhZs2joN13EbIwggWiMIIEiqADAgECAhAo
# MknpQET0/8yu7uTbXTF2MA0GCSqGSIb3DQEBCwUAMIGRMQswCQYDVQQGEwJVUzEd
# MBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNVBAsTFlN5bWFudGVj
# IFRydXN0IE5ldHdvcmsxQjBABgNVBAMTOVN5bWFudGVjIENsYXNzIDMgRXh0ZW5k
# ZWQgVmFsaWRhdGlvbiBDb2RlIFNpZ25pbmcgQ0EgLSBHMzAeFw0xODExMTkwMDAw
# MDBaFw0yMTExMTgyMzU5NTlaMIIBIzETMBEGCysGAQQBgjc8AgEDEwJVUzEZMBcG
# CysGAQQBgjc8AgECDAhEZWxhd2FyZTEZMBcGCysGAQQBgjc8AgEBDAhTYW4gSm9z
# ZTEdMBsGA1UEDxMUUHJpdmF0ZSBPcmdhbml6YXRpb24xEDAOBgNVBAUTBzU2OTky
# NjUxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMREwDwYDVQQHDAhT
# YW4gSm9zZTErMCkGA1UECgwiSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgQ29t
# cGFueTEWMBQGA1UECwwNTmltYmxlc3RvcmFnZTErMCkGA1UEAwwiSGV3bGV0dCBQ
# YWNrYXJkIEVudGVycHJpc2UgQ29tcGFueTCCASIwDQYJKoZIhvcNAQEBBQADggEP
# ADCCAQoCggEBAKWSqwdskNaMZ0X9Nqn4RKr2Bc131ZU5pS3FWyBGPRumS2sFtCTa
# frdZ9i1xQL0dF3KcNHFFBAnkM/Ig4+UNOR/TIlAD7ssnDxNxfYG07GXxPmAlogoI
# 2s6CWQ1mmLjZoJPHcGqcBsjKvn9sw/OZ1buOjB9SPBn02sh3S2L7dFnlQ1LuJDYa
# sL0BlOzye9leSysvqyhDwMsYv3K7wNpyLoxi7Ee4z/ZBupMZY3LY8F7RMg6W2aHK
# zzqDaP/X867mLqHedB6aK80aQY3C4MVFfOqiLHQFIG7/gVa16aO4U1q8HDUZswRx
# IeiRMOaHje8VRdhtWUU2U+CQC4/RRx1GLsMCAwEAAaOCAV8wggFbMAkGA1UdEwQC
# MAAwDgYDVR0PAQH/BAQDAgeAMCsGA1UdHwQkMCIwIKAeoByGGmh0dHA6Ly9yaC5z
# eW1jYi5jb20vcmguY3JsMGAGA1UdIARZMFcwVQYFZ4EMAQMwTDAjBggrBgEFBQcC
# ARYXaHR0cHM6Ly9kLnN5bWNiLmNvbS9jcHMwJQYIKwYBBQUHAgIwGQwXaHR0cHM6
# Ly9kLnN5bWNiLmNvbS9ycGEwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwMwHwYDVR0j
# BBgwFoAUq4sRSQsqAmJ1SpvFAiCghNJL+N4wHQYDVR0OBBYEFCwOW0/Kegfs4BMM
# 4OMor35vnOjTMFcGCCsGAQUFBwEBBEswSTAfBggrBgEFBQcwAYYTaHR0cDovL3Jo
# LnN5bWNkLmNvbTAmBggrBgEFBQcwAoYaaHR0cDovL3JoLnN5bWNiLmNvbS9yaC5j
# cnQwDQYJKoZIhvcNAQELBQADggEBAHFMScjMHXHXJv6cZj0Kwh1Uphw2DfoLL5rz
# dOYd0vT8PH3WU3WwfJssqsU6LxvPIQlVj75z73PoegdDYLOH2NRfxMGYuw9Ru+4P
# vBEjWpJOeV3j5rM8yubcgF6twn6hkDbI5GsfaK7MJgovXOglzKuV7mCkJMHb8LDT
# qPE6mT9zDUR7YRaavhxV9YiiCnU7RLZd7HwtmJvygF/xkyJg+XYoTolQw7ZEtBVb
# UScbXdDmJO0BWpWlkAF+gMmIBlcdoZ7Avwf4DdQdp+KiDKRlMFTgp0fJ7uzfTZDY
# P+yEYst/1wNjCavw8EoALakact7/SR/x1WP0hR5qALp/jg4gdqIxghEcMIIRGAIB
# ATCBpjCBkTELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBvcmF0
# aW9uMR8wHQYDVQQLExZTeW1hbnRlYyBUcnVzdCBOZXR3b3JrMUIwQAYDVQQDEzlT
# eW1hbnRlYyBDbGFzcyAzIEV4dGVuZGVkIFZhbGlkYXRpb24gQ29kZSBTaWduaW5n
# IENBIC0gRzMCECgySelARPT/zK7u5NtdMXYwDQYJYIZIAWUDBAIBBQCgfDAQBgor
# BgEEAYI3AgEMMQIwADAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEE
# AYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgZyW82v2+ZoOm
# XEn7HNW4BEbIMgJlmgiIVgBgR281noIwDQYJKoZIhvcNAQEBBQAEggEAjvGoOpqF
# q+8Vxi0K9FAu09545+fOGgbFz+BVGIRAT0FCgw+beU2wGPhGrUpeiqNruGD27hpw
# 0qJTwxIl2NuqLLq5kbsoN2q2N1m6HN7z70Z8N9DdyEAis4I4XFdLFiLrjY5n/sdg
# dCKfF3vBKc7Tu4HWOIQnZZty/Vo/JL4+tjvaHY/50DgqG8+cO3Gei1oOQlwAxoOH
# ul95KiRKtgQRkpIQr9AYBE0A1dWTExrNInlMDrLB9Av8YIFaKSzGJgQkpght/mNT
# rffkKgc8owQVk4iJaWa3U8VIsMwu3r9BpW6jcZOV+/oP6qbcI6UetDopRYWoul1o
# h+ClLDNJEGRSTqGCDsgwgg7EBgorBgEEAYI3AwMBMYIOtDCCDrAGCSqGSIb3DQEH
# AqCCDqEwgg6dAgEDMQ8wDQYJYIZIAWUDBAIBBQAwdwYLKoZIhvcNAQkQAQSgaARm
# MGQCAQEGCWCGSAGG/WwHATAxMA0GCWCGSAFlAwQCAQUABCDnnW+K/eff1enLG/qR
# D+AZR4V9B8JsmWU37nmBp2OuQAIQKdz+OahroiyvPdUrjp1OcRgPMjAyMDA5MDMx
# MDQ5MDRaoIILuzCCBoIwggVqoAMCAQICEATNP4VornbGG7D+cWDMp20wDQYJKoZI
# hvcNAQELBQAwcjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
# MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTExMC8GA1UEAxMoRGlnaUNlcnQgU0hB
# MiBBc3N1cmVkIElEIFRpbWVzdGFtcGluZyBDQTAeFw0xOTEwMDEwMDAwMDBaFw0z
# MDEwMTcwMDAwMDBaMEwxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwg
# SW5jLjEkMCIGA1UEAxMbVElNRVNUQU1QLVNIQTI1Ni0yMDE5LTEwLTE1MIIBIjAN
# BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6WQ1nPqpmGVkG+QX3LgpNsxnCViF
# TTDgyf/lOzwRKFCvBzHiXQkYwvaJjGkIBCPgdy2dFeW46KFqjv/UrtJ6Fu/4QbUd
# OXXBzy+nrEV+lG2sAwGZPGI+fnr9RZcxtPq32UI+p1Wb31pPWAKoMmkiE76Lgi3G
# mKtrm7TJ8mURDHQNsvAIlnTE6LJIoqEUpfj64YlwRDuN7/uk9MO5vRQs6wwoJyWA
# qxBLFhJgC2kijE7NxtWyZVkh4HwsEo1wDo+KyuDT17M5d1DQQiwues6cZ3o4d1RA
# /0+VBCDU68jOhxQI/h2A3dDnK3jqvx9wxu5CFlM2RZtTGUlinXoCm5UUowIDAQAB
# o4IDODCCAzQwDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/
# BAwwCgYIKwYBBQUHAwgwggG/BgNVHSAEggG2MIIBsjCCAaEGCWCGSAGG/WwHATCC
# AZIwKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwggFk
# BggrBgEFBQcCAjCCAVYeggFSAEEAbgB5ACAAdQBzAGUAIABvAGYAIAB0AGgAaQBz
# ACAAQwBlAHIAdABpAGYAaQBjAGEAdABlACAAYwBvAG4AcwB0AGkAdAB1AHQAZQBz
# ACAAYQBjAGMAZQBwAHQAYQBuAGMAZQAgAG8AZgAgAHQAaABlACAARABpAGcAaQBD
# AGUAcgB0ACAAQwBQAC8AQwBQAFMAIABhAG4AZAAgAHQAaABlACAAUgBlAGwAeQBp
# AG4AZwAgAFAAYQByAHQAeQAgAEEAZwByAGUAZQBtAGUAbgB0ACAAdwBoAGkAYwBo
# ACAAbABpAG0AaQB0ACAAbABpAGEAYgBpAGwAaQB0AHkAIABhAG4AZAAgAGEAcgBl
# ACAAaQBuAGMAbwByAHAAbwByAGEAdABlAGQAIABoAGUAcgBlAGkAbgAgAGIAeQAg
# AHIAZQBmAGUAcgBlAG4AYwBlAC4wCwYJYIZIAYb9bAMVMB8GA1UdIwQYMBaAFPS2
# 4SAd/imu0uRhpbKiJbLIFzVuMB0GA1UdDgQWBBRWUw/BxgenTdfYbldygFBM5Oye
# wTBxBgNVHR8EajBoMDKgMKAuhixodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vc2hh
# Mi1hc3N1cmVkLXRzLmNybDAyoDCgLoYsaHR0cDovL2NybDQuZGlnaWNlcnQuY29t
# L3NoYTItYXNzdXJlZC10cy5jcmwwgYUGCCsGAQUFBwEBBHkwdzAkBggrBgEFBQcw
# AYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tME8GCCsGAQUFBzAChkNodHRwOi8v
# Y2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRTSEEyQXNzdXJlZElEVGltZXN0
# YW1waW5nQ0EuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQAug6FEBUoE47kyUvrZgfAa
# u/gJjSO5PdiSoeZGHEovbno8Y243F6Mav1gjskOclINOOQmwLOjH4eLM7ct5a87e
# IwFH7ZVUgeCAexKxrwKGqTpzav74n8GN0SGM5CmCw4oLYAACnR9HxJ+0CmhTf1oQ
# pvgi5vhTkjFf2IKDLW0TQq6DwRBOpCT0R5zeDyJyd1x/T+k5mCtXkkTX726T2UPH
# BDNjUTdWnkcEEcOjWFQh2OKOVtdJP1f8Cp8jXnv0lI3dnRq733oqptJFplUMj/ZM
# ivKWz4lG3DGykZCjXzMwYFX1/GswrKHt5EdOM55naii1TcLtW5eC+MupCGxTCbT3
# MIIFMTCCBBmgAwIBAgIQCqEl1tYyG35B5AXaNpfCFTANBgkqhkiG9w0BAQsFADBl
# MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
# d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
# b3QgQ0EwHhcNMTYwMTA3MTIwMDAwWhcNMzEwMTA3MTIwMDAwWjByMQswCQYDVQQG
# EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
# cnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQgSUQgVGltZXN0
# YW1waW5nIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvdAy7kvN
# j3/dqbqCmcU5VChXtiNKxA4HRTNREH3Q+X1NaH7ntqD0jbOI5Je/YyGQmL8TvFfT
# w+F+CNZqFAA49y4eO+7MpvYyWf5fZT/gm+vjRkcGGlV+Cyd+wKL1oODeIj8O/36V
# +/OjuiI+GKwR5PCZA207hXwJ0+5dyJoLVOOoCXFr4M8iEA91z3FyTgqt30A6XLdR
# 4aF5FMZNJCMwXbzsPGBqrC8HzP3w6kfZiFBe/WZuVmEnKYmEUeaC50ZQ/ZQqLKfk
# dT66mA+Ef58xFNat1fJky3seBdCEGXIX8RcG7z3N1k3vBkL9olMqT4UdxB08r8/a
# rBD13ays6Vb/kwIDAQABo4IBzjCCAcowHQYDVR0OBBYEFPS24SAd/imu0uRhpbKi
# JbLIFzVuMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6enIZ3zbcgPMBIGA1UdEwEB
# /wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMBMGA1UdJQQMMAoGCCsGAQUFBwMI
# MHkGCCsGAQUFBwEBBG0wazAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNl
# cnQuY29tMEMGCCsGAQUFBzAChjdodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20v
# RGlnaUNlcnRBc3N1cmVkSURSb290Q0EuY3J0MIGBBgNVHR8EejB4MDqgOKA2hjRo
# dHRwOi8vY3JsNC5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURSb290Q0Eu
# Y3JsMDqgOKA2hjRodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1
# cmVkSURSb290Q0EuY3JsMFAGA1UdIARJMEcwOAYKYIZIAYb9bAACBDAqMCgGCCsG
# AQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BTMAsGCWCGSAGG/WwH
# ATANBgkqhkiG9w0BAQsFAAOCAQEAcZUS6VGHVmnN793afKpjerN4zwY3QITvS4S/
# ys8DAv3Fp8MOIEIsr3fzKx8MIVoqtwU0HWqumfgnoma/Capg33akOpMP+LLR2HwZ
# YuhegiUexLoceywh4tZbLBQ1QwRostt1AuByx5jWPGTlH0gQGF+JOGFNYkYkh2OM
# kVIsrymJ5Xgf1gsUpYDXEkdws3XVk4WTfraSZ/tTYYmo9WuWwPRYaQ18yAGxuSh1
# t5ljhSKMYcp5lH5Z/IwP42+1ASa2bKXuh1Eh5Fhgm7oMLSttosR+u8QlK0cCCHxJ
# rhO24XxCQijGGFbPQTS2Zl22dHv1VjMiLyI2skuiSpXY9aaOUjGCAk0wggJJAgEB
# MIGGMHIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNV
# BAsTEHd3dy5kaWdpY2VydC5jb20xMTAvBgNVBAMTKERpZ2lDZXJ0IFNIQTIgQXNz
# dXJlZCBJRCBUaW1lc3RhbXBpbmcgQ0ECEATNP4VornbGG7D+cWDMp20wDQYJYIZI
# AWUDBAIBBQCggZgwGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMBwGCSqGSIb3
# DQEJBTEPFw0yMDA5MDMxMDQ5MDRaMCsGCyqGSIb3DQEJEAIMMRwwGjAYMBYEFAMl
# vVBe2pYwLcIvT6AeTCi+KDTFMC8GCSqGSIb3DQEJBDEiBCCGWGbrVdscI626VyrR
# 7kBlkBa5SxnkgTx6bTKxhHD5SDANBgkqhkiG9w0BAQEFAASCAQDD0zOfySCkYW2H
# q18mh45A4ExIFTLv3VqyS5T/3O5TRN1KX9RbQKXOHMyAy4HMPzXX38hToOlGhsyR
# UGKfI6gkpOlZ0D1ykMRDeFqhsXKJ4TRJhTdCJyIp+QE8NvaomD8yREjKWyt8VqNR
# srSd1SV+xViCiIxWre/JS2DpAVVWujVqgRTgnNDIOAvJc5ozAZPKdGAUJpWl3wJs
# uJfXOhfdvv31EgU1Vev+qnz6XxzuyHOpJDP17FQHhqLHDQbnSWUd1dhf+6wJnJMF
# iVmAMe7o4nVRpZN8t3x0piD8SF/JTdOfNzq95FgfA2gv1mTQ/7+aJDeZWMzANWRn
# SQPZFDmm
# SIG # End signature block