# Access in-meeting user information

<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

After you join a meeting, use `ZoomToolSuiteAPI.Meeting.MeetingAPI` to read participant lists,
`ZoomToolSuiteAPI.Meeting.Participants` to resolve a user by ID or role, and
`ZoomToolSuiteEventListenerProtocol` - your initSDK listener - for roster changes.

## Join a meeting, leave a meeting, or change status

When users join, leave, or change status in a meeting or webinar, implement `onUserStatusChanged`
on the same object you pass to `initSDK`. Inspect userList for current `ZoomToolSuiteUser` entries.
`actionType` indicates add, leave, sync, and other actions by `ZoomToolSuiteUserAction`.

```swift
extension MyEventListener: ZoomToolSuiteEventListenerProtocol {
    func onUserStatusChanged(
        _ errorCode: ZoomToolSuiteErrors,
        actionType: ZoomToolSuiteUserAction,
        userList: [ZoomToolSuiteUser]
    ) {
        for user in userList {
            let _ = user.iUserID
            let _ = user.strUserName
        }
    }
}
```

## Get participant information

To get the current participants' information in a meeting, use `getParticipantsList`.
In a webinar, get this information by using the `getAttendeeList`.

```swift
let participants = ZoomToolSuiteAPI.Meeting.MeetingAPI.getParticipantsList()
for user in participants {
    let _ = user.iUserID
    let _ = user.strUserName
}
let attendees = ZoomToolSuiteAPI.Meeting.MeetingAPI.getAttendeeList() // webinar-style attendee list when applicable
```

## Look up a specific user

Get the current user by using `getMySelf`. To find another specific user, pass their `userID` to `getUserByUserID`.

```swift
let me = ZoomToolSuiteAPI.Meeting.Participants.getMySelf()
let other = ZoomToolSuiteAPI.Meeting.Participants.getUserByUserID(12345, meetingType: .default)
```

### View the user's meeting or webinar role

Meeting and webinar roles use one of these values under `ZoomToolSuiteUserRole`.

-   `ZoomToolSuiteUserRoleNone` - No role has been assigned.
-   `ZoomToolSuiteUserRoleHost` - The host of the current meeting or webinar.
-   `ZoomToolSuiteUserRoleCoHost` - A co-host of the current meeting or webinar.
-   `ZoomToolSuiteUserRoleAttendee` - An attendee of the current meeting or webinar.
-   `ZoomToolSuiteUserRolePanelist` - A panelist in the current meeting or webinar.
-   `ZoomToolSuiteUserRoleBreakoutRoomModerator` - The breakout room moderator.

### Get the user's role in the current meeting

To check a user's current role, use `getUserRoleByUserID`.

```swift
ZoomToolSuiteAPI.Meeting.Participants.getUserRoleByUserID(userID: 12345) { result in
    if result.error_code == .success {
        let role = result.role
    }
}
```

### Determine whether a given user is the current user

To check if a user is the current user, use the `bMyself` boolean.

```swift
let user = ZoomToolSuiteAPI.Meeting.Participants.getMySelf()
let isMe = user.bMyself
```
