action dracoon_request_pending_assignments { label: "Request user-room assignments per group" description: "### Description: \nRequests a list of user-room assignments by groups that have **NOT** been approved yet \nThese can have the state:\n* **WAITING** \n* **DENIED** \n* **ACCEPTED** \n\n**ACCEPTED** assignments are already removed from the list.\n\n### Precondition:\nNone.\n\n### Postcondition:\nList of user-room assignments is returned.\n\n### Further Information:\nRoom administrators **SHOULD** regularly request pending assingments to provide access to rooms for other users.\n\n### Filtering:\nAll filter fields are connected via logical conjunction (**AND**) \nFilter string syntax: `FIELD_NAME:OPERATOR:VALUE` \n\n
\nExample\n\n`state:eq:WAITING` \nFilter assignments by state `WAITING`.\n\n
\n\n### Filtering options:\n
\nExpand\n\n| `FIELD_NAME` | Filter Description | `OPERATOR` | Operator Description | `VALUE` |\n| :--- | :--- | :--- | :--- | :--- |\n| `userId` | User ID filter | `eq` | User ID equals value. | `positive Integer` |\n| `groupId` | Group ID filter | `eq` | Group ID equals value. | `positive Integer` |\n| `roomId` | Room ID filter | `eq` | Room ID equals value. | `positive Integer` |\n| `state` | Assignment state | `eq` | Assignment state equals value. | `WAITING or DENIED` |\n\n
\n\n---\n\n### Sorting:\nSort string syntax: `FIELD_NAME:ORDER` \n`ORDER` can be `asc` or `desc`. \nMultiple sort criteria are possible. \nFields are connected via logical conjunction **AND**.\n\n
\nExample\n\n`userId:desc|state:asc` \nSort by `userId` descending **AND** `state` ascending.\n\n
\n\n### Sorting options:\n
\nExpand\n\n| `FIELD_NAME` | Description |\n| :--- | :--- |\n| `userId` | User ID |\n| `groupId` | Group ID |\n| `roomId` | Room ID |\n| `state` | State |\n\n
" provider: dracoon method: GET path: "/v4/nodes/rooms/pending" encoding: json input: { type: "object" properties: { "X-Sds-Auth-Token": { type: "string" } filter: { type: "string" } limit: { type: "integer" format: "int32" } offset: { type: "integer" format: "int32" } sort: { type: "string" } } additionalProperties: false } output: { type: "object" description: "List of pending assignments" required: ["items"] properties: { items: { type: "array" description: "List of pending assignment information" items: { type: "object" description: "Pending assignment information" required: ["groupInfo", "pendingGroupData", "pendingUserData", "roomId", "roomName", "state", "userInfo"] properties: { groupInfo: { type: "object" description: "Group information" required: ["id", "name"] properties: { id: { type: "integer" format: "int64" description: "Unique identifier for the group" } name: { type: "string" description: "Group name" } } } pendingGroupData: { type: "object" description: "Pending group information" required: ["id", "name"] properties: { id: { type: "integer" format: "int64" description: "Unique identifier for the group\n\nuse `id` from `GroupInfo` instead" } name: { type: "string" description: "Group name\n\nuse `name` from `GroupInfo` instead" } } } pendingUserData: { type: "object" description: "Pending user information" required: ["displayName", "email", "id", "login"] properties: { displayName: { type: "string" description: "Display name\n\nuse information from `UserInfo` instead to combine a display name" } email: { type: "string" description: "Email \n\nuse `email` from `UserInfo` instead" } id: { type: "integer" format: "int64" description: "Unique identifier for the user" } login: { type: "string" description: "User login name" } } } roomId: { type: "integer" format: "int64" description: "Room ID" } roomName: { type: "string" description: "Room name" } state: { type: "string" description: "Acceptance state:\n\n* `ACCEPTED`\n\n* `WAITING`\n\n* `DENIED`" enum: ["ACCEPTED", "DENIED", "WAITING"] } userInfo: { type: "object" description: "User information" required: ["avatarUuid", "firstName", "id", "lastName", "userName", "userType"] properties: { avatarUuid: { type: "string" description: "🚀 Since v4.11.0\n\nAvatar UUID" } displayName: { type: "string" description: "🚧 Deprecated since v4.11.0\n\nDisplay name\n\nuse other fields from `UserInfo` instead to combine a display name" } email: { type: "string" description: "🚀 Since v4.11.0\n\nEmail " } firstName: { type: "string" description: "🚀 Since v4.11.0\n\nUser first name (mandatory if `userType` is `internal`)" } id: { type: "integer" format: "int64" description: "Unique identifier for the user" } lastName: { type: "string" description: "🚀 Since v4.11.0\n\nUser last name (mandatory if `userType` is `internal`)" } title: { type: "string" description: "🚧 Deprecated since v4.18.0\n\nJob title" } userName: { type: "string" description: "🚀 Since v4.13.0\n\nUsername (only returned for `internal` users)" } userType: { type: "string" description: "🚀 Since v4.11.0\n\nUser type:\n\n* `internal` - ordinary DRACOON user\n\n* `external` - external user without DRACOON account\n\n* `system` - system user (non human 👽)\n\n* `deleted` - deleted DRACOON user" enum: ["system", "internal", "external", "deleted"] } } } } } } range: { type: "object" description: "Range information" required: ["limit", "offset", "total"] properties: { limit: { type: "integer" format: "int64" description: "Range limit. Maximum 500." } offset: { type: "integer" format: "int64" description: "Range offset" } total: { type: "integer" format: "int64" description: "Total items available" } } } } } }