# README
Zoom.us Golang Client Library
Go (Golang) client library for the Zoom.us REST API Version 2. See here for Version 1 support.
About
Built out of necessity, this repo will only support select endpoints at first. Hopefully, it will eventually support all Zoom API endpoints.
Examples
For example use, see the Godoc documentation or the examples directory
Tests
To run unit tests and the linter:
./fmtpolice
go test -v ./...
To run the integration tests:
# first, define the required environment variables
export ZOOM_API_KEY="<key>"
export ZOOM_API_SECRET="<secret>"
export ZOOM_EXAMPLE_EMAIL="<account email>"
# then run the tests with the integration build tag
go test -tags integration -v ./...
Contributing
Contributions welcome! Please see the contributing guidelines for more details.
Contact
For any questions regarding this library, please contact @rafecolton or the Himalayan Institute webteam at [email protected]
Code inspired by mattbaird/gochimp
# Functions
AddMembers calls POST /groups/{groupId}/members.
CreateMeeting calls POST /users/{userId}/meetings.
CreateUser calls POST /users/{userId}/meetings.
DeleteMeeting calls DELETE /meetings/{meetingID}.
DeleteUser calls DELETE /users/{userID}.
GetAccountLockSettings calls /users/{userId}, searching for a user by ID or email, using the default client.
GetAccountManagedDomains calls /users/{userId}, searching for a user by ID or email, using the default client.
GetAccountSettings gets the account settings for a master or sub account.
GetAccountTrustedDomains calls /users/{userId}, searching for a user by ID or email, using the default client.
GetGroup calls /groups/{groupId}, searching for a group by ID or email, using the default client.
GetMeeting calls /meetings/ID.
GetMeetingRecordings calls /meetings/{meetingId}/recordings endpoint.
GetMeetingRecordingSettings calls /meetings/{meetingId}/recordings/settings endpoint.
GetRole calls /roles/{roleId}, searching for a role by ID or email, using the default client.
GetUser calls /users/{userId}, searching for a user by ID or email, using the default client.
GetUserPermissions calls /users/{userId}/permissions.
GetWebinarInfo gets into about a single webinar, using the default client.
GetWebinarPanelists calls /webinar/panelists using the default client.
ListAllRecordings calls /users/{user_id}/recordings endpoint and gets all cloud recordings for a user, using the default client.
ListMeetings calls /users/ID/meetings.
ListUsers calls /user/list, listing all users, using the default client.
ListWebinarRegistrants lists webinars using the default client.
ListWebinars calls /webinar/list, listing all webinars that don't require registration, using the default client.
NewClient returns a new API client.
No description provided by the author
RegisterForWebinar registers a user for a webinar, using the default client.
# Constants
Active status.
AddMenbersPath - v2 path for add group members.
API user login type.
ApprovalTypeAutomaticallyApprove is an automatically approved meeting.
ApprovalTypeManuallyApprove is a meeting that requires manual approval.
DEFAULT.
ApprovedType - approved registrants.
AudioBoth is a meeting that allows telephony and VoIP.
AudioTelephony is a meeting that is telephony only.
AudioVoIP is a meeting that is VoIP only.
AutoCreate action does not send the user a confirmation email.
AutoRecordingCloud record on cloud.
AutoRecordingLocal record on local.
AutoRecordingNone disabled.
Basic user type.
Create action will be send new user a confirmation email required to activate.
CreateMeetingPath - v2 create a meeting for a user.
CreateUserPath - v2 path for creating a user.
CustCreate action creates a user without a password that cannot log into Zoom web portal or Zoom client.
DateFormat is a date only format string.
DecisionMaker role in purchasing.
Delete is DELETE HTTP method.
DeleteAction action deletes a user.
DeleteMeetingPath - v2 delete a meeting.
DeleteUserPath - v2 path for deleting a user.
DeniedType - denied registrants.
DisassociateAction action disassociates a user.
EvaluatorRecommender role in purchasing.
Facebook user login type.
FiftyOneToOneHundred is "51-100" employees.
FiveHundredOneToOneThousand is "501-1,000" employees.
FiveThousandOneToTenThousand is "5,001-10,000" employees.
FourToSixMonths is "4-6 months" purchasing timeframe.
Get is GET HTTP method.
GetAccountLockSettingsPath - v2 path for getting a specific user.
GetAccountManagedDomainsPath - v2 path for getting a specific user.
GetAccountSettingsPath - path to get account settings.
GetAccountTrustedDomainsPath - v2 path for getting a specific user.
GetGroupPath - v2 path for getting a specific group.
GetMeetingPath - v2 retrieve the details of a meeting.
GetMeetingRecordingSettingsPath - get the settings for a recording.
GetMeetingRecordingsPath - v2 get all the recordings from a meeting.
GetRolePath - v2 path for getting a specific role.
GetUserPath - v2 path for getting a specific user.
GetUserPermissionsPath - v2 path for getting a specific user.
GetWebinarInfoPath - v2 path for retrieving info on a single webinar.
GetWebinarPanelistsPath - v2 path for listing panelists for a webinar.
GlobalDialInNumberTypeToll toll type of number.
GlobalDialInNumberTypeTollFree toll free type of number.
Google user login type.
Inactive status.
Influencer role in purchasing.
Licensed user type.
ListAllRecordingsPath - v2 lists all recordings.
ListGroupMembersPath - v2 path for listing group members.
ListGroupsPath - v2 path for listing groups.
ListMeetingsPath - v2 lists all the meetings that were scheduled for a user.
DEFAULT.
ListMeetingTypeScheduled is a meeting that is scheduled.
ListMeetingTypeUpcoming is an upcoming meeting.
ListRegistrantsPath - v2 path for listing panelists for a webinar.
ListRoleMembersPath - v2 path for listing role members.
ListRolesPath - v2 path for listing roles.
ListUsersPath - v2 path for listing users.
ListWebinarsPath - v2 lists all webinars.
MeetingStatusFinished is a meeting that is finished.
MeetingStatusStarted is a meeting that is started.
MeetingStatusWaiting is a meeting that is waiting.
MeetingTypeInstant is an instant meeting.
MeetingTypeRecurring is a recurring meeting with fixed time.
MeetingTypeRecurringNoFixedTime is a recurring meeting with no fixed time.
Default.
MonthlyWeekFirst first week of the month.
MonthlyWeekFourth fourth week of the month.
MonthlyWeekLast last week of the month.
MonthlyWeekSecond second week of the month.
MonthlyWeekThird third week of the month.
MoreThan6Months is "More than 6 months" purchasing timeframe.
MoreThanTenThousand is "More than 10,000" employees.
NoTimeframe is no purchasing timeframe.
NotInvolved has no role in purchasing.
OneHundredOneToTwoFifty is "101-250" employees.
OneThousdandOneToFiveThousand is "1,001-5,001" employees.
OneToThreeMonths is "1-3 months" purchasing timeframe.
OneToTwenty is "1-20" employees.
OnPrem user type.
Patch is PATCH HTTP method.
Pending status.
PendingApprovalType - registrants pending approval.
Post is POST HTTP method.
Put is PUT HTTP method.
RecordingTypeAudioOnly is an audio only recording.
RecordingTypeAudioTranscript is an audio transcript recording.
RecordingTypeChatFile is a chat file recording.
RecordingTypeGalleryView is a gallery view recording.
RecordingTypeSharedScreen is a shared screen recording.
RecordingTypeSharedScreenWithGalleryView is a shared screen with gallery view recording.
RecordingTypeSharedScreenWithSpeakerView is a shared screen with spearker view recording.
RecordingTypeSharedScreenWithSpeakerViewCC is a shared screen with spearker view (CC) recording.
RecordingTypeSpeakerView is a speaker view recording.
RecordingTypeTIMELINE is a timeline recording.
RecurrenceTypeDaily daily recurrence.
RecurrenceTypeMonthly monthly recurrence.
RecurrenceTypeWeekly weekly recurrence.
RegisterForWebinarPath - v2 path for registering a user for a webinar.
RegistrationTypeRegisterEachTime Attendeed need to register for each occurrence to attend.
RegistrationTypeRegisterOnce Attendees register once and can attend any of the occurrences.
RegistrationTypeRegisterOnceAndChooseOccurrences Attendees register once and can choose one or more occurrences to attend.
SSO single sign on user login type.
SSOCreate action is provided for when the "Pre-Provisioning SSO User" option is enabled.
TrashTypeMeetingRecordings list all meeting recordings from the trash.
TrashTypeRecordingFile list all individual recording files from the trash.
TwentyOneToFifty is "21-50" employees.
TwoFiftyOneToFiveHundred is "251-500" employees.
TypeRecurringWebinar is a recurring webinar.
TypeRecurringWebinarFixedTime is a recurring webinar with fixed time.
TypeWebinar is the default webinar type.
WeekDayFriday Friday.
WeekDayMonday Monday.
WeekDaySaturday Saturday.
WeekDaySunday Sunday.
WeekDayThursday Thursday.
WeekDayTuesday Tuesday.
WeekDayWednesday Wednesday.
WithinMonth is "Within a month" purchasing timeframe.
Zoom user login type.
# Variables
AccountID is a package-wide Account ID, used when no client is instantiated.
APIKey is a package-wide API key, used when no client is instantiated.
APISecret is a package-wide API secret, used when no client is instantiated.
ClientID is a package-wide Client ID, used when no client is instantiated.
ClientSecret is a package-wide Client Secret, used when no client is instantiated.
Debug causes debugging message to be printed, using the log package, when set to true.
# Structs
No description provided by the author
AccountLockSettings represents account lock settings.
AccountManagedDomains represents account managed domains.
AccountSettings represents account settings.
AccountTrustedDomains represents account trusted domains.
AddMemberOptions are details about add group members.
APIError contains the code and message returned by any Zoom errors.
Client is responsible for making API requests.
No description provided by the author
CloudRecordingSettings represents settings for a recording.
CreateMeetingOptions are the options to create a meeting with.
CreateUserInfo are details about a user to create.
CreateUserOptions are the options to create a user with.
CustomAttribute represents a custom attribute.
CustomQuestion is the type for custom questions on registration form.
Date is a custom Date type that accounts for null values and empty strings // during JSON marshaling and unmarshaling.
DeleteMeetingOptions are the options to delete a meeting.
DeleteUserOptions are the options to delete a user with.
GetAccountLockSettingsOpts contains options for GetAccountLockSettings.
GetAccountManagedDomainsOpts contains options for GetAccountManagedDomains.
GetAccountSettingsOpts contains options for GetAccountSettings.
GetAccountTrustedDomainsOpts contains options for GetAccountTrustedDomains.
GetGroupOpts contains options for GetGroup.
GetMeetingOptions are the options to get a meeting.
No description provided by the author
No description provided by the author
GetRoleOpts contains options for GetRole.
GetUserOpts contains options for GetUser.
GetUserPermissionsOpts contains options for GetUserPermissions.
GetWebinarPanelistsResponse - response from call to /webinar/panelists.
No description provided by the author
Group represents an account group.
No description provided by the author
No description provided by the author
ListGroupMembersOptions contains options for ListGroupMembers.
ListGroupMembersResponse contains the response from a call to ListGroupMembers.
ListGroupsResponse contains the response from a call to ListGroups.
No description provided by the author
No description provided by the author
No description provided by the author
ListRoleMembersOptions contains options for ListRoleMembers.
ListRoleMembersResponse contains the response from a call to ListRoleMembers.
ListRolesResponse contains the response from a call to ListRoles.
ListUsersOptions contains options for ListUsers.
ListUsersResponse contains the response from a call to ListUsers.
ListWebinarRegistrantsOptions - options for listing webinar registrants.
ListWebinarRegistrantsResponse - response for listing webinar registrants.
ListWebinarsOptions contains options for ListWebinars.
ListWebinarsResponse contains the response from a call to ListWebinars.
No description provided by the author
No description provided by the author
Member is a member of a group or role.
No description provided by the author
PhonNumbers represents represents a custom attribute.
No description provided by the author
No description provided by the author
RegisterForWebinarResponse is the response object returned when registering for a webinar.
ResopnseAddGroupMembers represents response for added member to group.
Role represents an account role.
RoleSubAccountPrivileges are a partner plan feature.
Time is a custom Time type that accounts for null values and empty strings // during JSON marshaling and unmarshaling.
No description provided by the author
URL is a custom URL type that enables JSON marshaling/unmarshaling of url.URL.
User represents an account user.
No description provided by the author
Webinar represents a webinar object.
WebinarOccurrence contains recurrence data for recurring webinars.
WebinarPanelist contains information returned by /webinar/panelists.
WebinarRegistrant contains options for webinar registration for both creating a registration and looking one up.
# Type aliases
No description provided by the author
No description provided by the author
No description provided by the author
CreateUserAction specifies how to create a new user.
DeleteUserAction specifies how to delete a new user.
No description provided by the author
HTTPMethod is the HTTP request method types.
No description provided by the author
ListWebinarRegistrantsStatusType contains possible options for "status" field when listing registrants.
No description provided by the author
No description provided by the author
No description provided by the author
NumberOfEmployeesType contains a list of valid values for number of employees in a registrant's company.
PurchaseProcessRoleType contains a lsit of valid values for a registrant's role in the purchasing process.
PurchasingTimeFrameType contains the list of valid values for purchasing timeframe.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
UserLoginType is one of a fixed number of possible user login type.
UserStatus is a user's active status, for ListUser.
UserType is one of a fixed number of possible user types.
WebinarType is one of a fixed number of possible webinar types.
No description provided by the author