@dereekb/zoom 12.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +6 -0
- package/index.cjs.d.ts +1 -0
- package/index.cjs.js +4346 -0
- package/index.esm.d.ts +1 -0
- package/index.esm.js +4293 -0
- package/nestjs/CHANGELOG.md +183 -0
- package/nestjs/README.md +11 -0
- package/nestjs/package.json +7 -0
- package/nestjs/src/index.d.ts +1 -0
- package/nestjs/src/index.js +5 -0
- package/nestjs/src/index.js.map +1 -0
- package/nestjs/src/lib/index.d.ts +2 -0
- package/nestjs/src/lib/index.js +6 -0
- package/nestjs/src/lib/index.js.map +1 -0
- package/nestjs/src/lib/oauth/index.d.ts +3 -0
- package/nestjs/src/lib/oauth/index.js +7 -0
- package/nestjs/src/lib/oauth/index.js.map +1 -0
- package/nestjs/src/lib/oauth/oauth.api.d.ts +12 -0
- package/nestjs/src/lib/oauth/oauth.api.js +41 -0
- package/nestjs/src/lib/oauth/oauth.api.js.map +1 -0
- package/nestjs/src/lib/oauth/oauth.config.d.ts +14 -0
- package/nestjs/src/lib/oauth/oauth.config.js +50 -0
- package/nestjs/src/lib/oauth/oauth.config.js.map +1 -0
- package/nestjs/src/lib/oauth/oauth.module.d.ts +29 -0
- package/nestjs/src/lib/oauth/oauth.module.js +36 -0
- package/nestjs/src/lib/oauth/oauth.module.js.map +1 -0
- package/nestjs/src/lib/oauth/oauth.service.d.ts +55 -0
- package/nestjs/src/lib/oauth/oauth.service.js +226 -0
- package/nestjs/src/lib/oauth/oauth.service.js.map +1 -0
- package/nestjs/src/lib/zoom/index.d.ts +3 -0
- package/nestjs/src/lib/zoom/index.js +7 -0
- package/nestjs/src/lib/zoom/index.js.map +1 -0
- package/nestjs/src/lib/zoom/zoom.api.d.ts +21 -0
- package/nestjs/src/lib/zoom/zoom.api.js +65 -0
- package/nestjs/src/lib/zoom/zoom.api.js.map +1 -0
- package/nestjs/src/lib/zoom/zoom.config.d.ts +10 -0
- package/nestjs/src/lib/zoom/zoom.config.js +15 -0
- package/nestjs/src/lib/zoom/zoom.config.js.map +1 -0
- package/nestjs/src/lib/zoom/zoom.module.d.ts +22 -0
- package/nestjs/src/lib/zoom/zoom.module.js +40 -0
- package/nestjs/src/lib/zoom/zoom.module.js.map +1 -0
- package/package.json +31 -0
- package/src/index.d.ts +1 -0
- package/src/lib/index.d.ts +7 -0
- package/src/lib/oauth/index.d.ts +5 -0
- package/src/lib/oauth/oauth.api.d.ts +39 -0
- package/src/lib/oauth/oauth.config.d.ts +44 -0
- package/src/lib/oauth/oauth.d.ts +71 -0
- package/src/lib/oauth/oauth.error.api.d.ts +30 -0
- package/src/lib/oauth/oauth.factory.d.ts +34 -0
- package/src/lib/zoom/index.d.ts +7 -0
- package/src/lib/zoom/zoom.api.meeting.d.ts +144 -0
- package/src/lib/zoom/zoom.api.meeting.type.d.ts +297 -0
- package/src/lib/zoom/zoom.api.user.d.ts +32 -0
- package/src/lib/zoom/zoom.api.user.type.d.ts +287 -0
- package/src/lib/zoom/zoom.config.d.ts +69 -0
- package/src/lib/zoom/zoom.error.api.d.ts +6 -0
- package/src/lib/zoom/zoom.factory.d.ts +23 -0
- package/src/lib/zoom.api.page.d.ts +73 -0
- package/src/lib/zoom.config.d.ts +39 -0
- package/src/lib/zoom.error.api.d.ts +145 -0
- package/src/lib/zoom.limit.d.ts +37 -0
- package/src/lib/zoom.type.d.ts +12 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { FetchRequestFactoryError, FetchResponseError } from '@dereekb/util/fetch';
|
|
2
|
+
import { ZoomServerErrorData, ParsedZoomServerError } from '../zoom.error.api';
|
|
3
|
+
/**
|
|
4
|
+
* Error in the following cases:
|
|
5
|
+
* - the refresh token string is invalid
|
|
6
|
+
*/
|
|
7
|
+
export declare const ZOOM_ACCOUNTS_INVALID_GRANT_ERROR_CODE = "invalid_grant";
|
|
8
|
+
export interface ZoomOauthInvalidGrantErrorData {
|
|
9
|
+
readonly reason: 'Invalid Token!';
|
|
10
|
+
readonly error: 'invalid_grant';
|
|
11
|
+
}
|
|
12
|
+
export type ZoomOAuthAccessTokenErrorCode = typeof ZOOM_ACCOUNTS_INVALID_GRANT_ERROR_CODE;
|
|
13
|
+
/**
|
|
14
|
+
* Thrown if the call to the Zoom API creating an access token using a refresh token fails.
|
|
15
|
+
*/
|
|
16
|
+
export declare class ZoomOAuthAccessTokenError extends FetchRequestFactoryError {
|
|
17
|
+
readonly errorCode: ZoomOAuthAccessTokenErrorCode;
|
|
18
|
+
constructor(errorCode: ZoomOAuthAccessTokenErrorCode);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Thrown if a valid ZoomAccessToken cannot be retrieved successfully.
|
|
22
|
+
*/
|
|
23
|
+
export declare class ZoomOAuthAuthFailureError extends FetchRequestFactoryError {
|
|
24
|
+
readonly reason?: string | undefined;
|
|
25
|
+
constructor(reason?: string | undefined);
|
|
26
|
+
}
|
|
27
|
+
export declare const logZoomOAuthErrorToConsole: import("../zoom.error.api").LogZoomServerErrorFunction;
|
|
28
|
+
export declare function parseZoomOAuthError(responseError: FetchResponseError): Promise<ParsedZoomServerError>;
|
|
29
|
+
export declare function parseZoomOAuthServerErrorResponseData(zoomServerError: ZoomServerErrorData, responseError: FetchResponseError): ParsedZoomServerError;
|
|
30
|
+
export declare const handleZoomOAuthErrorFetch: import("../zoom.error.api").HandleZoomErrorFetchFactory;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ZoomOAuthConfig, ZoomOAuthContextRef, ZoomOAuthFetchFactory } from './oauth.config';
|
|
2
|
+
import { LogZoomServerErrorFunction } from '../zoom.error.api';
|
|
3
|
+
import { ZoomAccessTokenCache, ZoomAccessTokenFactory, ZoomAccessTokenRefresher } from './oauth';
|
|
4
|
+
import { Maybe, Milliseconds } from '@dereekb/util';
|
|
5
|
+
export type ZoomOAuth = ZoomOAuthContextRef;
|
|
6
|
+
export interface ZoomOAuthFactoryConfig {
|
|
7
|
+
/**
|
|
8
|
+
* Creates a new fetch instance to use when making calls.
|
|
9
|
+
*/
|
|
10
|
+
fetchFactory?: ZoomOAuthFetchFactory;
|
|
11
|
+
/**
|
|
12
|
+
* Custom log error function.
|
|
13
|
+
*/
|
|
14
|
+
logZoomServerErrorFunction?: LogZoomServerErrorFunction;
|
|
15
|
+
}
|
|
16
|
+
export type ZoomOAuthFactory = (config: ZoomOAuthConfig) => ZoomOAuth;
|
|
17
|
+
export declare function zoomOAuthFactory(factoryConfig: ZoomOAuthFactoryConfig): ZoomOAuthFactory;
|
|
18
|
+
export interface ZoomOAuthZoomAccessTokenFactoryConfig {
|
|
19
|
+
/**
|
|
20
|
+
* Number of milliseconds before the expiration time a token should be discarded.
|
|
21
|
+
*
|
|
22
|
+
* Defaults to 1 minute.
|
|
23
|
+
*/
|
|
24
|
+
readonly tokenExpirationBuffer?: Milliseconds;
|
|
25
|
+
readonly tokenRefresher: ZoomAccessTokenRefresher;
|
|
26
|
+
readonly accessTokenCache?: Maybe<ZoomAccessTokenCache>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Creates a ZoomOAuthZoomAccessTokenFactoryConfig
|
|
30
|
+
*
|
|
31
|
+
* @param config
|
|
32
|
+
* @returns
|
|
33
|
+
*/
|
|
34
|
+
export declare function zoomOAuthZoomAccessTokenFactory(config: ZoomOAuthZoomAccessTokenFactoryConfig): ZoomAccessTokenFactory;
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { ISO8601DateString } from '@dereekb/util';
|
|
2
|
+
import { ZoomMeetingType, ZoomRecurrenceInfo, ZoomMeetingSettings, ZoomMeetingAgenda, ZoomMeetingDuration, ZoomMeetingTrackingField, ZoomMeetingTemplateId, ZoomMeetingPassword, ZoomMeeting, ZoomMeetingId } from './zoom.api.meeting.type';
|
|
3
|
+
import { ZoomContext } from './zoom.config';
|
|
4
|
+
import { ZoomPageFilter, ZoomPageResult } from '../zoom.api.page';
|
|
5
|
+
import { FetchPageFactory } from '@dereekb/util/fetch';
|
|
6
|
+
import { ZoomUserId } from '../zoom.type';
|
|
7
|
+
import { SilenceZoomErrorConfig } from '../zoom.error.api';
|
|
8
|
+
export interface GetMeetingInput {
|
|
9
|
+
readonly meetingId: string;
|
|
10
|
+
}
|
|
11
|
+
export type GetMeetingResponse = ZoomMeeting;
|
|
12
|
+
export type GetMeetingFunction = (input: GetMeetingInput) => Promise<GetMeetingResponse>;
|
|
13
|
+
/**
|
|
14
|
+
* https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/meeting
|
|
15
|
+
*/
|
|
16
|
+
export declare function getMeeting(context: ZoomContext): GetMeetingFunction;
|
|
17
|
+
export interface ListMeetingsForUserInput extends ZoomPageFilter {
|
|
18
|
+
readonly user: ZoomUserId | 'me';
|
|
19
|
+
}
|
|
20
|
+
export type ListMeetingsForUserResponse = ZoomPageResult<ZoomMeeting>;
|
|
21
|
+
export type ListMeetingsForUserFunction = (input: ListMeetingsForUserInput) => Promise<ListMeetingsForUserResponse>;
|
|
22
|
+
/**
|
|
23
|
+
* https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/meetings
|
|
24
|
+
*/
|
|
25
|
+
export declare function listMeetingsForUser(context: ZoomContext): ListMeetingsForUserFunction;
|
|
26
|
+
export type ListMeetingsForUserPageFactory = FetchPageFactory<ListMeetingsForUserInput, ListMeetingsForUserResponse>;
|
|
27
|
+
export declare function listMeetingsForUserPageFactory(context: ZoomContext): ListMeetingsForUserPageFactory;
|
|
28
|
+
/**
|
|
29
|
+
* https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/meetingCreate
|
|
30
|
+
*/
|
|
31
|
+
export interface CreateMeetingForUserTemplate {
|
|
32
|
+
/**
|
|
33
|
+
* The meeting's agenda. This value has a maximum length of 2,000 characters.
|
|
34
|
+
* @example "My Meeting"
|
|
35
|
+
*/
|
|
36
|
+
readonly agenda?: ZoomMeetingAgenda;
|
|
37
|
+
/**
|
|
38
|
+
* Whether to generate a default passcode using the user's settings. This value defaults to `false`.
|
|
39
|
+
*
|
|
40
|
+
* If this value is `true` and the user has the PMI setting enabled with a passcode, then the user's meetings will use the PMI passcode. It will **not** use a default passcode.
|
|
41
|
+
* @default false
|
|
42
|
+
* @example false
|
|
43
|
+
*/
|
|
44
|
+
readonly default_password?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* The meeting's scheduled duration, in minutes. This field is only used for scheduled meetings (`2`).
|
|
47
|
+
* @example 60
|
|
48
|
+
*/
|
|
49
|
+
readonly duration?: ZoomMeetingDuration;
|
|
50
|
+
/**
|
|
51
|
+
* The passcode required to join the meeting. By default, a passcode can **only** have a maximum length of 10 characters and only contain alphanumeric characters and the `@`, `-`, `_`, and `*` characters.
|
|
52
|
+
*
|
|
53
|
+
* **Note:**
|
|
54
|
+
* - If the account owner or administrator has configured [minimum passcode requirement settings](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604), the passcode **must** meet those requirements.
|
|
55
|
+
* - If passcode requirements are enabled, use the [**Get user settings**](/docs/api/users/#tag/users/GET/users/{userId}/settings) API or the [**Get account settings**](/docs/api/accounts/#tag/accounts/GET/accounts/{accountId}/settings) API to get the requirements.
|
|
56
|
+
* - If the **Require a passcode when scheduling new meetings** account setting is enabled and locked, a passcode will be automatically generated if one is not provided.
|
|
57
|
+
* @example "123456"
|
|
58
|
+
*/
|
|
59
|
+
readonly password?: ZoomMeetingPassword;
|
|
60
|
+
/**
|
|
61
|
+
* Whether to create a prescheduled meeting via the [GSuite app](https://support.zoom.us/hc/en-us/articles/360020187492-Zoom-for-GSuite-add-on). This **only** supports the meeting `type` value of `2` (scheduled meetings) and `3` (recurring meetings with no fixed time).
|
|
62
|
+
* - `true` - Create a prescheduled meeting.
|
|
63
|
+
* - `false` - Create a regular meeting.
|
|
64
|
+
* @default false
|
|
65
|
+
* @example false
|
|
66
|
+
*/
|
|
67
|
+
readonly pre_schedule?: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Recurrence object. Use this object only for a meeting with type `8`, a recurring meeting with a fixed time.
|
|
70
|
+
*/
|
|
71
|
+
readonly recurrence?: ZoomRecurrenceInfo;
|
|
72
|
+
/**
|
|
73
|
+
* The email address or user ID of the user to schedule a meeting for.
|
|
74
|
+
* @example "jchill@example.com"
|
|
75
|
+
*/
|
|
76
|
+
readonly schedule_for?: string;
|
|
77
|
+
/**
|
|
78
|
+
* Meeting settings object. See ZoomMeetingSettings for all available options.
|
|
79
|
+
*/
|
|
80
|
+
readonly settings?: ZoomMeetingSettings;
|
|
81
|
+
/**
|
|
82
|
+
* The meeting's topic.
|
|
83
|
+
*/
|
|
84
|
+
readonly topic?: string;
|
|
85
|
+
/**
|
|
86
|
+
* The meeting's scheduled start time, in ISO 8601 format.
|
|
87
|
+
*/
|
|
88
|
+
readonly start_time?: ISO8601DateString;
|
|
89
|
+
/**
|
|
90
|
+
* The time zone to use for the meeting.
|
|
91
|
+
*/
|
|
92
|
+
readonly timezone?: string;
|
|
93
|
+
/**
|
|
94
|
+
* The meeting type.
|
|
95
|
+
* - `1`: Instant
|
|
96
|
+
* - `2`: Scheduled
|
|
97
|
+
* - `3`: Recurring (no fixed time)
|
|
98
|
+
* - `8`: Recurring (fixed time)
|
|
99
|
+
*/
|
|
100
|
+
readonly type?: ZoomMeetingType;
|
|
101
|
+
/**
|
|
102
|
+
* Tracking fields for the meeting.
|
|
103
|
+
*/
|
|
104
|
+
readonly tracking_fields?: ZoomMeetingTrackingField[];
|
|
105
|
+
/**
|
|
106
|
+
* Template ID to use for the meeting.
|
|
107
|
+
*/
|
|
108
|
+
readonly template_id?: ZoomMeetingTemplateId;
|
|
109
|
+
}
|
|
110
|
+
export interface CreateMeetingForUserInput {
|
|
111
|
+
readonly user: ZoomUserId | 'me';
|
|
112
|
+
readonly template: CreateMeetingForUserTemplate;
|
|
113
|
+
}
|
|
114
|
+
export type CreateMeetingForUserResponse = ZoomMeeting;
|
|
115
|
+
/**
|
|
116
|
+
* https://developers.zoom.us/docs/api/meetings/#tag/meetings/POST/users/{userId}/meetings
|
|
117
|
+
*/
|
|
118
|
+
export declare function createMeetingForUser(context: ZoomContext): (input: CreateMeetingForUserInput) => Promise<CreateMeetingForUserResponse>;
|
|
119
|
+
export interface DeleteMeetingInput extends SilenceZoomErrorConfig {
|
|
120
|
+
readonly meetingId: ZoomMeetingId;
|
|
121
|
+
/**
|
|
122
|
+
* The occurrence ID of the meeting to delete.
|
|
123
|
+
*/
|
|
124
|
+
readonly occurrence_id?: string;
|
|
125
|
+
/**
|
|
126
|
+
* `true`: Notify host and alternative host about the meeting cancellation via email.
|
|
127
|
+
* `false`: Do not send any email notification.
|
|
128
|
+
*/
|
|
129
|
+
readonly schedule_for_reminder?: boolean;
|
|
130
|
+
/**
|
|
131
|
+
* `true`: Notify registrants about the meeting cancellation via email.
|
|
132
|
+
* `false`: Do not send any email notification to meeting registrants.
|
|
133
|
+
*
|
|
134
|
+
* The default value of this field is `false`.
|
|
135
|
+
*/
|
|
136
|
+
readonly cancel_meeting_reminder?: boolean;
|
|
137
|
+
}
|
|
138
|
+
export type DeleteMeetingResponse = unknown;
|
|
139
|
+
export type DeleteMeetingFunction = (input: DeleteMeetingInput) => Promise<DeleteMeetingResponse>;
|
|
140
|
+
export declare const DELETE_MEETING_DOES_NOT_EXIST_ERROR_CODE = 3001;
|
|
141
|
+
/**
|
|
142
|
+
* https://developers.zoom.us/docs/api/meetings/#tag/meetings/DELETE/meetings/{meetingId}
|
|
143
|
+
*/
|
|
144
|
+
export declare function deleteMeeting(context: ZoomContext): DeleteMeetingFunction;
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
import { CommaSeparatedString, DayOfMonth, EmailAddress, ISO8601DateString, Minutes, WebsiteDomain } from '@dereekb/util';
|
|
2
|
+
import { ZoomUserId } from '../zoom.type';
|
|
3
|
+
import { type ZoomUserPersonalMeetingId } from './zoom.api.user.type';
|
|
4
|
+
export type ZoomMeetingId = string;
|
|
5
|
+
export type ZoomMeetingTemplateId = string;
|
|
6
|
+
export type ZoomMeetingOccurrenceDuration = number;
|
|
7
|
+
/**
|
|
8
|
+
* URL for participants to join the meeting.
|
|
9
|
+
*
|
|
10
|
+
* This URL should only be shared with users that you would like to invite for the meeting.
|
|
11
|
+
*/
|
|
12
|
+
export type ZoomMeetingJoinUrl = string;
|
|
13
|
+
/**
|
|
14
|
+
* URL for participants to join the meeting.
|
|
15
|
+
*
|
|
16
|
+
* This URL should only be shared with users that you would like to invite for the meeting.
|
|
17
|
+
*/
|
|
18
|
+
export type ZoomMeetingChatJoinUrl = string;
|
|
19
|
+
export type ZoomRegistrationUrl = string;
|
|
20
|
+
/**
|
|
21
|
+
* The status of the occurrence.
|
|
22
|
+
*/
|
|
23
|
+
export type ZoomMeetingOccurrenceStatus = 'available' | 'deleted';
|
|
24
|
+
export interface ZoomMeetingOccurrence {
|
|
25
|
+
/**
|
|
26
|
+
* The meeting duration in minutes.
|
|
27
|
+
*/
|
|
28
|
+
readonly duration: Minutes;
|
|
29
|
+
/**
|
|
30
|
+
* Occurrence ID. The unique identifier for an occurrence of a recurring webinar.
|
|
31
|
+
*
|
|
32
|
+
* Recurring webinars can have a maximum of 50 occurrences.
|
|
33
|
+
*/
|
|
34
|
+
readonly occurrence_id: string;
|
|
35
|
+
/**
|
|
36
|
+
* The start time of the meeting.
|
|
37
|
+
*/
|
|
38
|
+
readonly start_time: ISO8601DateString;
|
|
39
|
+
/**
|
|
40
|
+
* The status of the occurrence.
|
|
41
|
+
*/
|
|
42
|
+
readonly status: ZoomMeetingOccurrenceStatus;
|
|
43
|
+
}
|
|
44
|
+
export interface ZoomMeeting {
|
|
45
|
+
/**
|
|
46
|
+
* The ID of the user who scheduled this meeting on behalf of the host.
|
|
47
|
+
*/
|
|
48
|
+
readonly assistant_id?: ZoomUserId;
|
|
49
|
+
/**
|
|
50
|
+
* The meeting host's email address.
|
|
51
|
+
*/
|
|
52
|
+
readonly host_email: EmailAddress;
|
|
53
|
+
/**
|
|
54
|
+
* The meeting ID (meeting number): Unique identifier of the meeting in long format (int64), also known as the meeting number.
|
|
55
|
+
*/
|
|
56
|
+
readonly id: ZoomMeetingId;
|
|
57
|
+
/**
|
|
58
|
+
* The URL that registrants can use to register for a meeting. Only returned for meetings with registration enabled.
|
|
59
|
+
*/
|
|
60
|
+
readonly registration_url?: ZoomRegistrationUrl;
|
|
61
|
+
/**
|
|
62
|
+
* The meeting's agenda. This value has a maximum length of 2,000 characters.
|
|
63
|
+
* @example "My Meeting"
|
|
64
|
+
*/
|
|
65
|
+
readonly agenda?: ZoomMeetingAgenda;
|
|
66
|
+
/**
|
|
67
|
+
* The date and time when this meeting was created.
|
|
68
|
+
*/
|
|
69
|
+
readonly created_at: ISO8601DateString;
|
|
70
|
+
/**
|
|
71
|
+
* The meeting duration.
|
|
72
|
+
*/
|
|
73
|
+
readonly duration?: Minutes;
|
|
74
|
+
/**
|
|
75
|
+
* Encrypted passcode for third party endpoints (H323/SIP).
|
|
76
|
+
*/
|
|
77
|
+
readonly encrypted_password?: string;
|
|
78
|
+
/**
|
|
79
|
+
* Passcode for participants to join the meeting via PSTN.
|
|
80
|
+
*/
|
|
81
|
+
readonly pstn_password?: string;
|
|
82
|
+
/**
|
|
83
|
+
* H.323/SIP room system passcode.
|
|
84
|
+
*/
|
|
85
|
+
readonly h323_password?: string;
|
|
86
|
+
/**
|
|
87
|
+
* URL for participants to join the meeting. Should only be shared with users you would like to invite.
|
|
88
|
+
*/
|
|
89
|
+
readonly join_url: ZoomMeetingJoinUrl;
|
|
90
|
+
/**
|
|
91
|
+
* The URL to join the chat.
|
|
92
|
+
*/
|
|
93
|
+
readonly chat_join_url?: ZoomMeetingChatJoinUrl;
|
|
94
|
+
/**
|
|
95
|
+
* Array of occurrence objects. Only returned for recurring webinars.
|
|
96
|
+
*/
|
|
97
|
+
readonly occurrences?: ZoomMeetingOccurrence[];
|
|
98
|
+
/**
|
|
99
|
+
* The meeting passcode.
|
|
100
|
+
*/
|
|
101
|
+
readonly password?: ZoomMeetingPassword;
|
|
102
|
+
/**
|
|
103
|
+
* Personal meeting ID (PMI). Only used for scheduled meetings and recurring meetings with no fixed time.
|
|
104
|
+
*/
|
|
105
|
+
readonly pmi?: ZoomUserPersonalMeetingId;
|
|
106
|
+
/**
|
|
107
|
+
* Whether the prescheduled meeting was created via the GSuite app. Only supports meeting type 2 and 3.
|
|
108
|
+
*/
|
|
109
|
+
readonly pre_schedule?: boolean;
|
|
110
|
+
/**
|
|
111
|
+
* Recurrence object. Use this object only for a meeting with type 8, a recurring meeting with fixed time.
|
|
112
|
+
*/
|
|
113
|
+
readonly recurrence?: ZoomRecurrenceInfo;
|
|
114
|
+
/**
|
|
115
|
+
* Meeting settings object.
|
|
116
|
+
*/
|
|
117
|
+
readonly settings?: ZoomMeetingSettings;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* The meeting's agenda. This value has a maximum length of 2,000 characters.
|
|
121
|
+
*/
|
|
122
|
+
export type ZoomMeetingAgenda = string;
|
|
123
|
+
/**
|
|
124
|
+
* The passcode required to join the meeting.
|
|
125
|
+
*
|
|
126
|
+
* By default, a passcode can **only** have a maximum length of 10 characters and only contain alphanumeric characters and the `@`, `-`, `_`, and `*` characters.
|
|
127
|
+
*
|
|
128
|
+
* **Note:**
|
|
129
|
+
* If the account owner or administrator has configured [minimum passcode requirement settings](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604), the passcode **must** meet those requirements.
|
|
130
|
+
*
|
|
131
|
+
* If passcode requirements are enabled, use the [**Get user settings**](/docs/api/users/#tag/users/GET/users/{userId}/settings) API or the [**Get account settings**](/docs/api/accounts/#tag/accounts/GET/accounts/{accountId}/settings) API to get the requirements.
|
|
132
|
+
*/
|
|
133
|
+
export type ZoomMeetingPassword = string;
|
|
134
|
+
/**
|
|
135
|
+
* The meeting's scheduled duration, in minutes.
|
|
136
|
+
*/
|
|
137
|
+
export type ZoomMeetingDuration = Minutes;
|
|
138
|
+
export declare enum ZoomMeetingType {
|
|
139
|
+
INSTANT = 1,
|
|
140
|
+
SCHEDULED = 2,
|
|
141
|
+
RECURRING_NO_FIXED_TIME = 3,
|
|
142
|
+
RECURRING_FIXED_TIME = 8
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Define the interval when the meeting should recur.
|
|
146
|
+
*
|
|
147
|
+
* For instance, to schedule a meeting that recurs every two months, set this field's value as `2` and the value of the `type` parameter as `3`.
|
|
148
|
+
*
|
|
149
|
+
* For a daily meeting, the maximum number of recurrences is `99` days. For a weekly meeting, the maximum is `50` weeks.
|
|
150
|
+
*
|
|
151
|
+
* For a monthly meeting, the maximum is `10` months.
|
|
152
|
+
*/
|
|
153
|
+
export type ZoomRecurrenceInfoRepeatInterval = number;
|
|
154
|
+
/**
|
|
155
|
+
* Comma-separated values, e.g., "1,2,3" for Sunday, Monday, Tuesday. (1-Sunday, 7-Saturday)
|
|
156
|
+
*/
|
|
157
|
+
export type ZoomRecurrenceInfoWeeklyDays = string;
|
|
158
|
+
/**
|
|
159
|
+
* The number of times the meeting will recur
|
|
160
|
+
*/
|
|
161
|
+
export type ZoomRecurrenceInfoRecurrenceCount = number;
|
|
162
|
+
export interface ZoomRecurrenceInfo {
|
|
163
|
+
readonly type: ZoomRecurrenceType;
|
|
164
|
+
readonly repeat_interval?: ZoomRecurrenceInfoRepeatInterval;
|
|
165
|
+
readonly weekly_days?: ZoomRecurrenceInfoWeeklyDays;
|
|
166
|
+
readonly monthly_day?: DayOfMonth;
|
|
167
|
+
readonly monthly_week?: ZoomMonthlyWeek;
|
|
168
|
+
readonly monthly_week_day?: ZoomMonthlyWeekDay;
|
|
169
|
+
readonly end_times?: ZoomRecurrenceInfoRecurrenceCount;
|
|
170
|
+
/**
|
|
171
|
+
* Date at which the recurrence ends.
|
|
172
|
+
*/
|
|
173
|
+
readonly end_date_time?: ISO8601DateString;
|
|
174
|
+
}
|
|
175
|
+
export declare enum ZoomRecurrenceType {
|
|
176
|
+
DAILY = 1,
|
|
177
|
+
WEEKLY = 2,
|
|
178
|
+
MONTHLY = 3
|
|
179
|
+
}
|
|
180
|
+
export declare enum ZoomMonthlyWeek {
|
|
181
|
+
LAST_WEEK = -1,
|
|
182
|
+
FIRST_WEEK = 1,
|
|
183
|
+
SECOND_WEEK = 2,
|
|
184
|
+
THIRD_WEEK = 3,
|
|
185
|
+
FOURTH_WEEK = 4
|
|
186
|
+
}
|
|
187
|
+
export declare enum ZoomMonthlyWeekDay {
|
|
188
|
+
SUNDAY = 1,
|
|
189
|
+
MONDAY = 2,
|
|
190
|
+
TUESDAY = 3,
|
|
191
|
+
WEDNESDAY = 4,
|
|
192
|
+
THURSDAY = 5,
|
|
193
|
+
FRIDAY = 6,
|
|
194
|
+
SATURDAY = 7
|
|
195
|
+
}
|
|
196
|
+
export interface ZoomMeetingSettingsBreakoutRoomRoom {
|
|
197
|
+
readonly name: string;
|
|
198
|
+
readonly participants?: string[];
|
|
199
|
+
}
|
|
200
|
+
export interface ZoomMeetingSettingsBreakoutRoom {
|
|
201
|
+
readonly enable?: boolean;
|
|
202
|
+
readonly rooms?: ZoomMeetingSettingsBreakoutRoomRoom[];
|
|
203
|
+
}
|
|
204
|
+
export interface ZoomMeetingSettingsLanguageInterpretation {
|
|
205
|
+
readonly enable?: boolean;
|
|
206
|
+
readonly interpreters?: ZoomMeetingInterpreter[];
|
|
207
|
+
}
|
|
208
|
+
export interface ZoomMeetingSettingsApprovedOrDeniedCountriesOrRegions {
|
|
209
|
+
readonly enable?: boolean;
|
|
210
|
+
readonly method?: 'approve' | 'deny';
|
|
211
|
+
readonly approved_list?: string[];
|
|
212
|
+
readonly denied_list?: string[];
|
|
213
|
+
}
|
|
214
|
+
export type ZoomMeetingSettingsEncryptionType = 'enhanced_encryption' | 'end_to_end_encryption';
|
|
215
|
+
/**
|
|
216
|
+
* Language translation string.
|
|
217
|
+
*
|
|
218
|
+
* e.g., "US:Fr" for US English to French
|
|
219
|
+
*/
|
|
220
|
+
export type ZoomMeetingInterpreterLanguage = string;
|
|
221
|
+
export type ZoomMeetingInterpreterLanguages = string;
|
|
222
|
+
export interface ZoomMeetingInterpreter {
|
|
223
|
+
readonly email: EmailAddress;
|
|
224
|
+
readonly languages: ZoomMeetingInterpreterLanguage;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Join before host time.
|
|
228
|
+
*
|
|
229
|
+
* 0 (Anytime), 5, 10 or 15 minutes before start time.
|
|
230
|
+
*/
|
|
231
|
+
export type ZoomJoinBeforeHostTime = 0 | 5 | 10 | 15;
|
|
232
|
+
export declare enum ZoomApprovalType {
|
|
233
|
+
/**
|
|
234
|
+
* Automatically approve.
|
|
235
|
+
*/
|
|
236
|
+
AUTOMATICALLY_APPROVE = 0,
|
|
237
|
+
/**
|
|
238
|
+
* Manually approve.
|
|
239
|
+
*/
|
|
240
|
+
MANUALLY_APPROVE = 1,
|
|
241
|
+
/**
|
|
242
|
+
* No registration required.
|
|
243
|
+
*/
|
|
244
|
+
NO_REGISTRATION_REQUIRED = 2
|
|
245
|
+
}
|
|
246
|
+
export declare enum ZoomRegistrationType {
|
|
247
|
+
/**
|
|
248
|
+
* Attendees register once and can attend any meeting occurrence.
|
|
249
|
+
*/
|
|
250
|
+
REGISTER_ONCE_ATTEND_ANY = 1,
|
|
251
|
+
/**
|
|
252
|
+
* Attendees must register for each meeting occurrence.
|
|
253
|
+
*/
|
|
254
|
+
REGISTER_FOR_EACH_OCCURRENCE = 2,
|
|
255
|
+
/**
|
|
256
|
+
* Attendees register once and can select one or more meeting occurrences to attend.
|
|
257
|
+
*/
|
|
258
|
+
REGISTER_ONCE_CHOOSE_OCCURRENCES = 3
|
|
259
|
+
}
|
|
260
|
+
export interface ZoomMeetingTrackingField {
|
|
261
|
+
readonly field: string;
|
|
262
|
+
readonly value?: string;
|
|
263
|
+
}
|
|
264
|
+
export interface ZoomMeetingSettings {
|
|
265
|
+
readonly host_video?: boolean;
|
|
266
|
+
readonly participant_video?: boolean;
|
|
267
|
+
readonly cn_meeting?: boolean;
|
|
268
|
+
readonly in_meeting?: boolean;
|
|
269
|
+
readonly join_before_host?: boolean;
|
|
270
|
+
readonly jbh_time?: ZoomJoinBeforeHostTime;
|
|
271
|
+
readonly mute_upon_entry?: boolean;
|
|
272
|
+
readonly watermark?: boolean;
|
|
273
|
+
readonly use_pmi?: boolean;
|
|
274
|
+
readonly approval_type?: ZoomApprovalType;
|
|
275
|
+
readonly registration_type?: ZoomRegistrationType;
|
|
276
|
+
readonly audio?: 'both' | 'telephony' | 'voip' | 'thirdParty';
|
|
277
|
+
readonly auto_recording?: 'local' | 'cloud' | 'none';
|
|
278
|
+
readonly alternative_hosts?: CommaSeparatedString<EmailAddress>;
|
|
279
|
+
readonly waiting_room?: boolean;
|
|
280
|
+
readonly global_dial_in_countries?: string[];
|
|
281
|
+
readonly contact_name?: string;
|
|
282
|
+
readonly contact_email?: EmailAddress;
|
|
283
|
+
readonly meeting_authentication?: boolean;
|
|
284
|
+
readonly authentication_option?: string;
|
|
285
|
+
readonly authentication_domains?: CommaSeparatedString<WebsiteDomain>;
|
|
286
|
+
readonly breakout_room?: ZoomMeetingSettingsBreakoutRoom;
|
|
287
|
+
readonly language_interpretation?: ZoomMeetingSettingsLanguageInterpretation;
|
|
288
|
+
readonly interpreters?: Array<{
|
|
289
|
+
email: string;
|
|
290
|
+
languages: string;
|
|
291
|
+
}>;
|
|
292
|
+
readonly approved_or_denied_countries_or_regions?: ZoomMeetingSettingsApprovedOrDeniedCountriesOrRegions;
|
|
293
|
+
readonly encryption_type?: ZoomMeetingSettingsEncryptionType;
|
|
294
|
+
readonly alternative_host_update_polls?: boolean;
|
|
295
|
+
readonly show_share_button?: boolean;
|
|
296
|
+
readonly allow_multiple_devices?: boolean;
|
|
297
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { FetchPageFactory } from '@dereekb/util/fetch';
|
|
2
|
+
import { ZoomPageFilter, ZoomPageResult } from '../zoom.api.page';
|
|
3
|
+
import { ZoomUser, ZoomUserRoleId, ZoomUserStatus } from './zoom.api.user.type';
|
|
4
|
+
import { ZoomContext } from './zoom.config';
|
|
5
|
+
import { ZoomUserId } from '../zoom.type';
|
|
6
|
+
export interface GetUserInput {
|
|
7
|
+
readonly userId: ZoomUserId;
|
|
8
|
+
}
|
|
9
|
+
export type GetUserResponse = ZoomUser;
|
|
10
|
+
export type GetUserFunction = (input: GetUserInput) => Promise<GetUserResponse>;
|
|
11
|
+
/**
|
|
12
|
+
* https://developers.zoom.us/docs/api/users/#tag/users/GET/users/{userId}
|
|
13
|
+
*
|
|
14
|
+
* @param context
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
17
|
+
export declare function getUser(context: ZoomContext): GetUserFunction;
|
|
18
|
+
export interface ListUsersInput extends ZoomPageFilter {
|
|
19
|
+
readonly status?: ZoomUserStatus;
|
|
20
|
+
readonly role_id?: ZoomUserRoleId;
|
|
21
|
+
}
|
|
22
|
+
export type ListUsersResponse = ZoomPageResult<ZoomUser>;
|
|
23
|
+
export type ListUsersFunction = (input?: ListUsersInput) => Promise<ListUsersResponse>;
|
|
24
|
+
/**
|
|
25
|
+
* https://developers.zoom.us/docs/api/users/#tag/users/GET/users
|
|
26
|
+
*
|
|
27
|
+
* @param context
|
|
28
|
+
* @returns
|
|
29
|
+
*/
|
|
30
|
+
export declare function listUsers(context: ZoomContext): ListUsersFunction;
|
|
31
|
+
export type ListUsersPageFactory = FetchPageFactory<ListUsersInput, ListUsersResponse>;
|
|
32
|
+
export declare function listUsersPageFactory(context: ZoomContext): ListUsersPageFactory;
|