internal/autorest/out/nodes/Get-DracoonARNode.ps1

function Get-DracoonARNode {
<#
.SYNOPSIS
    Request list of nodes
 
.DESCRIPTION
    ### Description:
Provides a hierarchical list of file system nodes (rooms, folders or files) of a given parent that are accessible by the current user.
 
### Precondition:
Authenticated user.
 
### Postcondition:
List of nodes is returned.
 
### Further Information:
`EncryptionInfo` is **NOT** provided.
 
### Filtering:
All filter fields are connected via logical conjunction (**AND**)
Filter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`
 
<details style="padding-left: 10px">
<summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>
 
`type:eq:room:folder|perm:eq:read`
Get nodes where type equals (`room` **OR** `folder`) **AND** user has `read` permissions.
 
</details>
 
### Filtering options:
<details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
<summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>
 
| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
| :--- | :--- | :--- | :--- | :--- |
| `type` | Node type filter | `eq` | Node type equals value.<br>Multiple values are allowed and will be connected via logical disjunction (**OR**).<br>e.g. `type:eq:room:folder` | <ul><li>`room`</li><li>`folder`</li><li>`file`</li></ul> |
| `perm` | Permission filter | `eq` | Permission equals value.<br>Multiple values are allowed and will be connected via logical disjunction (**OR**).<br>e.g. `perm:eq:read:create:delete` | <ul><li>`manage`</li><li>`read`</li><li>`change`</li><li>`create`</li><li>`delete`</li><li>`manageDownloadShare`</li><li>`manageUploadShare`</li><li>`canReadRecycleBin`</li><li>`canRestoreRecycleBin`</li><li>`canDeleteRecycleBin`</li></ul> |
| `childPerm` | Same as `perm`, but less restrictive (applies to child nodes only).<br>Child nodes of the parent node which do not meet the filter condition<br>are **NOT** returned. | `eq` | cf. `perm` | cf. `perm` |
| `name` | Node name filter | `cn, eq` | Node name contains / equals value. | `search String` |
| `encrypted` | Node encryption status filter | `eq` | | `true or false` |
| `branchVersion` | Node branch version filter | `ge, le` | Branch version is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `branchVersion:ge:1423280937404`&#124;`branchVersion:le:1523280937404` | `version number` |
| `timestampCreation` | Creation timestamp filter | `ge, le` | Creation timestamp is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `timestampCreation:ge:2016-12-31T23:00:00.123`&#124;<br>`timestampCreation:le:2018-01-01T11:00:00.540` | `Date (yyyy-MM-dd)` |
| `timestampModification` | Modification timestamp filter | `ge, le` | Modification timestamp is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `timestampModification:ge:2016-12-31T23:00:00.123`&#124;<br>`timestampModification:le:2018-01-01T11:00:00.540` | `Date (yyyy-MM-dd)` |
 
</details>
 
---
 
### Sorting:
Sort string syntax: `FIELD_NAME:ORDER`
`ORDER` can be `asc` or `desc`.
Multiple sort fields are **NOT** supported.
Nodes are sorted by type first, then by sent sort string.
 
<details style="padding-left: 10px">
<summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>
 
`name:desc`
Sort by `name` descending.
 
</details>
 
### Sorting options:
<details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
<summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>
 
| `FIELD_NAME` | Description |
| :--- | :--- |
| `name` | Node name |
| `createdAt` | Creation date |
| `createdBy` | Creator first name, last name |
| `updatedAt` | Last modification date |
| `updatedBy` | Last modifier first name, last name |
| `fileType` | File type (extension) |
| `classification` | Classification ID:<ul><li>1 - public</li><li>2 - internal</li><li>3 - confidential</li><li>4 - strictly confidential</li></ul> |
| `size` | Node size |
| `cntDeletedVersions` | Number of deleted versions of this file / folder (**NOT** recursive; for files and folders only) |
| `timestampCreation` | Creation timestamp |
| `timestampModification` | Modification timestamp |
 
</details>
 
### Deprecated sorting options:
<details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
<summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>
 
| `FIELD_NAME` | Description |
| :--- | :--- |
| <del>`cntAdmins`</del> | Number of admins (for rooms only) |
| <del>`cntUsers`</del> | Number of users (for rooms only) |
| <del>`cntChildren`</del> | Number of direct children (**NOT** recursive; for rooms and folders only) |
 
</details>
 
.PARAMETER XSdsAuthToken
    Authentication token
 
.PARAMETER Connection
    Object of Class ARAHConnection, stores the authentication Token and the API Base-URL
 
.PARAMETER Filter
    Filter string
 
.PARAMETER Offset
    Range offset
 
.PARAMETER Parent_id
    Parent node ID.
 
Only rooms and folders can be parents.
 
Parent ID `0` or empty is the root node.
 
.PARAMETER Node_id
    Node ID
 
.PARAMETER Room_manager
    Show all rooms for management perspective.
 
Only possible for _Rooms Managers_.
 
For all other users, it will be ignored.
 
.PARAMETER Sort
    Sort string
 
.PARAMETER Limit
    Range limit.
 
Maximum 500.
 
 For more results please use paging (`offset` + `limit`).
 
.PARAMETER XSdsDateFormat
    Date time format (cf. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) & [leettime.de](http://leettime.de/))
 
.PARAMETER Depth_level
    * `0` - top level nodes only
 
* `n` (any positive number) - include `n` levels starting from the current node
 
.EXAMPLE
    PS C:\> Get-DracoonARNode -Connection $connection
 
    ### Description:
Provides a hierarchical list of file system nodes (rooms, folders or files) of a given parent that are accessible by the current user.
 
### Precondition:
Authenticated user.
 
### Postcondition:
List of nodes is returned.
 
### Further Information:
`EncryptionInfo` is **NOT** provided.
 
### Filtering:
All filter fields are connected via logical conjunction (**AND**)
Filter string syntax: `FIELD_NAME:OPERATOR:VALUE[:VALUE...]`
 
<details style="padding-left: 10px">
<summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>
 
`type:eq:room:folder|perm:eq:read`
Get nodes where type equals (`room` **OR** `folder`) **AND** user has `read` permissions.
 
</details>
 
### Filtering options:
<details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
<summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>
 
| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |
| :--- | :--- | :--- | :--- | :--- |
| `type` | Node type filter | `eq` | Node type equals value.<br>Multiple values are allowed and will be connected via logical disjunction (**OR**).<br>e.g. `type:eq:room:folder` | <ul><li>`room`</li><li>`folder`</li><li>`file`</li></ul> |
| `perm` | Permission filter | `eq` | Permission equals value.<br>Multiple values are allowed and will be connected via logical disjunction (**OR**).<br>e.g. `perm:eq:read:create:delete` | <ul><li>`manage`</li><li>`read`</li><li>`change`</li><li>`create`</li><li>`delete`</li><li>`manageDownloadShare`</li><li>`manageUploadShare`</li><li>`canReadRecycleBin`</li><li>`canRestoreRecycleBin`</li><li>`canDeleteRecycleBin`</li></ul> |
| `childPerm` | Same as `perm`, but less restrictive (applies to child nodes only).<br>Child nodes of the parent node which do not meet the filter condition<br>are **NOT** returned. | `eq` | cf. `perm` | cf. `perm` |
| `name` | Node name filter | `cn, eq` | Node name contains / equals value. | `search String` |
| `encrypted` | Node encryption status filter | `eq` | | `true or false` |
| `branchVersion` | Node branch version filter | `ge, le` | Branch version is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `branchVersion:ge:1423280937404`&#124;`branchVersion:le:1523280937404` | `version number` |
| `timestampCreation` | Creation timestamp filter | `ge, le` | Creation timestamp is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `timestampCreation:ge:2016-12-31T23:00:00.123`&#124;<br>`timestampCreation:le:2018-01-01T11:00:00.540` | `Date (yyyy-MM-dd)` |
| `timestampModification` | Modification timestamp filter | `ge, le` | Modification timestamp is greater / less equals than value.<br>Multiple operator values are allowed and will be connected via logical conjunction (**AND**).<br>e.g. `timestampModification:ge:2016-12-31T23:00:00.123`&#124;<br>`timestampModification:le:2018-01-01T11:00:00.540` | `Date (yyyy-MM-dd)` |
 
</details>
 
---
 
### Sorting:
Sort string syntax: `FIELD_NAME:ORDER`
`ORDER` can be `asc` or `desc`.
Multiple sort fields are **NOT** supported.
Nodes are sorted by type first, then by sent sort string.
 
<details style="padding-left: 10px">
<summary style="cursor: pointer; outline: none"><strong>Example</strong></summary>
 
`name:desc`
Sort by `name` descending.
 
</details>
 
### Sorting options:
<details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
<summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>
 
| `FIELD_NAME` | Description |
| :--- | :--- |
| `name` | Node name |
| `createdAt` | Creation date |
| `createdBy` | Creator first name, last name |
| `updatedAt` | Last modification date |
| `updatedBy` | Last modifier first name, last name |
| `fileType` | File type (extension) |
| `classification` | Classification ID:<ul><li>1 - public</li><li>2 - internal</li><li>3 - confidential</li><li>4 - strictly confidential</li></ul> |
| `size` | Node size |
| `cntDeletedVersions` | Number of deleted versions of this file / folder (**NOT** recursive; for files and folders only) |
| `timestampCreation` | Creation timestamp |
| `timestampModification` | Modification timestamp |
 
</details>
 
### Deprecated sorting options:
<details style="padding: 10px; background-color: #F6F7F8; border: 1px solid #AAA; border-radius: 5px;">
<summary style="cursor: pointer; outline: none"><strong>Expand</strong></summary>
 
| `FIELD_NAME` | Description |
| :--- | :--- |
| <del>`cntAdmins`</del> | Number of admins (for rooms only) |
| <del>`cntUsers`</del> | Number of users (for rooms only) |
| <del>`cntChildren`</del> | Number of direct children (**NOT** recursive; for rooms and folders only) |
 
</details>
 
.EXAMPLE
    PS C:\> Get-DracoonARNode -Node_id $node_id
 
    ### Description:
Get node (room, folder or file).
 
### Precondition:
User has <span style='padding: 3px; background-color: #F6F7F8; border: 1px solid #000; border-radius: 5px; display: inline;'>&#128275; read</span> permissions in auth parent room.
 
### Postcondition:
Requested node is returned.
 
### Further Information:
None.
 
.LINK
    <unknown>
#>

    [CmdletBinding(DefaultParameterSetName = 'default')]
    param (
        [Parameter(ValueFromPipelineByPropertyName = $true, ParameterSetName = 'default')]
        [Parameter(ValueFromPipelineByPropertyName = $true, ParameterSetName = 'requestNode')]
        [string]
        $XSdsAuthToken,

        [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true, ParameterSetName = 'default')]
        [object]
        $Connection,

        [Parameter(ValueFromPipelineByPropertyName = $true, ParameterSetName = 'default')]
        [string]
        $Filter,

        [Parameter(ValueFromPipelineByPropertyName = $true, ParameterSetName = 'default')]
        [object]
        $Offset,

        [Parameter(ValueFromPipelineByPropertyName = $true, ParameterSetName = 'default')]
        [object]
        $Parent_id,

        [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true, ParameterSetName = 'requestNode')]
        [string]
        $Node_id,

        [Parameter(ValueFromPipelineByPropertyName = $true, ParameterSetName = 'default')]
        [boolean]
        $Room_manager,

        [Parameter(ValueFromPipelineByPropertyName = $true, ParameterSetName = 'default')]
        [string]
        $Sort,

        [Parameter(ValueFromPipelineByPropertyName = $true, ParameterSetName = 'default')]
        [object]
        $Limit,

        [Parameter(ValueFromPipelineByPropertyName = $true, ParameterSetName = 'default')]
        [Parameter(ValueFromPipelineByPropertyName = $true, ParameterSetName = 'requestNode')]
        [object]
        $XSdsDateFormat,

        [Parameter(ValueFromPipelineByPropertyName = $true, ParameterSetName = 'default')]
        [object]
        $Depth_level
    )
    process {
        $__mapping = @{
            'XSdsAuthToken' = 'X-Sds-Auth-Token'
            'Connection' = 'Connection'
            'Filter' = 'filter'
            'Offset' = 'offset'
            'Parent_id' = 'parent_id'
            'Room_manager' = 'room_manager'
            'Sort' = 'sort'
            'Limit' = 'limit'
            'XSdsDateFormat' = 'X-Sds-Date-Format'
            'Depth_level' = 'depth_level'
        }
        $__body = $PSBoundParameters | ConvertTo-DracoonARHashtable -Include @() -Mapping $__mapping
        $__query = $PSBoundParameters | ConvertTo-DracoonARHashtable -Include @('Filter','Offset','Parent_id','Room_manager','Sort','Limit','Depth_level') -Mapping $__mapping
        $__header = $PSBoundParameters | ConvertTo-DracoonARHashtable -Include @('XSdsAuthToken','XSdsDateFormat') -Mapping $__mapping
        $__path = 'nodes'
        if ($Node_id) { $__path += "/$Node_id" }
        Invoke-DracoonAPI -Path $__path -Method get -Body $__body -Query $__query -Header $__header -Connection $Connection
    }
}