conferences

package
v0.0.0-...-63319d1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 29, 2024 License: MPL-2.0, Apache-2.0 Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Delete

func Delete(c *golangsdk.ServiceClient, opts DeleteOpts) error

Delete is a method to cancel conference using given parameters.

func ExtendTime

func ExtendTime(c *golangsdk.ServiceClient, opts ExtendOpts) error

ExtendTime is a method to extend conference time using given parameters.

Types

type AuthOpts

type AuthOpts struct {
	ConferenceId string `q:"conferenceID"`
	Password     string `json:"-"`
}

type AuthResp

type AuthResp struct {
	// Token information.
	TokenDetail TokenDetail `json:"data"`
	// Query the temporary token in the address book.
	AddressToken string `json:"addressToken"`
	// Global external network IP.
	GloablPublicIP string `json:"gloablPublicIP"`
}

func GetControlToken

func GetControlToken(c *golangsdk.ServiceClient, opts AuthOpts) (*AuthResp, error)

GetControlToken is a method to generate a control token according to the chair password and conference ID.

type Conference

type Conference struct {
	// Meeting ID. The length is limited to 32 characters.
	ID string `json:"conferenceID"`
	// Conference theme. The length is limited to 128 characters.
	Subject string `json:"subject"`
	// The number of parties in the meeting.
	Size int `json:"size"`
	// The time zone information of the meeting time in the meeting notification.
	// For time zone information, refer to the time zone mapping relationship.
	// For example: "timeZoneID": "26", the time in the meeting notice sent through HUAWEI CLOUD meeting will be marked
	// as "2021/11/11 Thursday 00:00 - 02:00 (GMT) Greenwich Standard When: Dublin, Edinburgh, Lisbon, London".
	TimeZoneId string `json:"timeZoneID"`
	// The meeting start time (YYYY-MM-DD HH:MM).
	StartTime string `json:"startTime"`
	// The meeting end time (YYYY-MM-DD HH:MM).
	EndTime string `json:"endTime"`
	// The media type of the meeting.
	// It consists of one or more enumeration Strings.
	// When there are multiple enumerations, each enumeration value is separated by "," commas.
	//   Voice: Voice.
	//   Video: SD video.
	//   HDVideo: high-definition video (mutually exclusive with "Video", if "Video" and "HDVideo" are selected at the
	//            same time, the system selects "Video" by default).
	//   Telepresence: Telepresence (mutually exclusive with "HDVideo" and "Video", if selected at the same time, the
	//                 system uses "Telepresence"). (reserved field)
	//   Data: Multimedia.
	MediaTypes string `json:"mediaTypes"`
	// Currently, only the Created and Scheduled states will be returned.  If the meeting has been held, the Created
	// state will be returned, otherwise, the Scheduled state will be returned.
	//   Schedule: Schedule status.
	//   Creating: The state is being created.
	//   Created: The meeting has been created and is in progress.
	//   Destroyed: The meeting has been closed.
	ConferenceState string `json:"conferenceState"`
	// Conference language.
	Language string `json:"language"`
	// Conference access code.
	AccessNumber string `json:"accessNumber"`
	// Meeting password entry. The subscriber returns the host password and guest password.
	// The host password is returned when the host queries.
	// The guest password is returned when the guest is queried.
	PasswordEntry []PasswordEntry `json:"passwordEntry"`
	// The UUID of the meeting booker.
	UserUUID string `json:"userUUID"`
	// Meeting booker account name. The maximum length is limited to 96 characters.
	ScheduserName string `json:"scheduserName"`
	// Conference type (Parameters used by the front-end).
	//   0 : Normal meeting.
	//   2 : Periodic meeting.
	ConferenceType int `json:"conferenceType"`
	// Conference type.
	//   FUTURE
	//   IMMEDIATELY
	//   CYCLE
	ConfType string `json:"confType"`
	// Periodic meeting parameters. Carry this parameter when the conference is a periodic conference.
	// This parameter includes the start date, end date of the periodic meeting, the period of the meeting and the
	// meeting time point in the period.
	CycleParams CycleParams `json:"cycleParams"`
	// Whether to automatically mute the session.
	//   0 : Do not mute automatically.
	//   1 : Auto mute.
	IsAutoMute int `json:"isAutoMute"`
	// Whether to automatically start recording.
	//   0 : Do not start automatically.
	//   1 : start automatically.
	IsAutoRecord int `json:"isAutoRecord"`
	// Host meeting link address.
	ChairJoinUri string `json:"chairJoinUri"`
	// Common attendee meeting link address. The maximum length is 1024.
	GuestJoinUri string `json:"guestJoinUri"`
	// Audience meeting link address. The maximum length is 1024. (webinar scenario)
	AudienceJoinUri string `json:"audienceJoinUri"`
	// Recording type.
	//   0: Disabled.
	//   1: Live broadcast.
	//   2: Record and broadcast.
	//   3: Live + Recording.
	RecordType int `json:"recordType"`
	// Auxiliary stream live address.
	AuxAddress string `json:"auxAddress"`
	// Mainstream live broadcast address.
	LiveAddress string `json:"liveAddress"`
	// Whether to record auxiliary streams.
	//   0: No.
	//   1: Yes.
	RecordAuxStream int `json:"recordAuxStream"`
	// Recording and broadcasting authentication method.
	// The recording type is: recording, live+recording, and it is valid.
	//   0: Viewable/downloadable via link.
	//   1: Enterprise users can watch/download.
	//   2: Attendees can watch/download.
	RecordAuthType int `json:"recordAuthType"`
	// Live address. (It will be returned when the live room is configured)
	LiveUrl string `json:"liveUrl"`
	// Other configuration information for the conference.
	Configuration Configuration `json:"confConfigInfo"`
	// Whether to use the cloud conference room to hold a reservation meeting.
	//   0: Do not use cloud conference room.
	//   1: Use cloud conference room.
	// The interface shows that the conference ID needs to use "vmrConferenceID" as the conference ID;
	// the "conferenceID" field is still used for conference business operations such as querying conference details,
	// logging in to conference control, and typing in a conference.
	VmrFlag int `json:"vmrFlag"`
	// Only the historical conference return value is valid. There are no recording files by default.
	//   true: There is a recording file.
	//   false: No recording file.
	IsHasRecordFile bool `json:"isHasRecordFile"`
	// The conference ID of the cloud conference room. If "vmrFlag" is "1", this field is not empty.
	VmrConferenceId string `json:"vmrConferenceID"`
	// The UUID of the meeting.
	// The UUID is only returned when a meeting that starts immediately is created.
	// If it is a future meeting, the UUID will not be returned.
	// You can get the UUID of the historical conference through "Query Historical Conference List".
	ConfUUID string `json:"confUUID"`
	// Information about some of the invited participants.
	// Only the first 20 soft terminal participant information and the first 20 hard terminal participant information
	// are returned. Do not return the information of participants who actively joined in the conference.
	// The "Query Conference List" and "Query Conference Details" interfaces return the participants who were invited
	// when the conference was scheduled and the participants who were invited by the host in the conference.
	// The "Query Online Conference List", "Query Online Conference Details", "Query History Conference List" and "Query
	// History Conference Details" interfaces return the participants who were invited when the conference was
	// scheduled. Attendees invited by the host in the meeting are not returned.
	Participants []ParticipantResp `json:"partAttendeeInfo"`
	// Number of hard terminals, such as IdeaHub, TE30, etc.
	TerminlCount int `json:"terminlCount"`
	// The number of common terminals, such as PC terminal, mobile terminal app, etc.
	NormalCount int `json:"normalCount"`
	// The business name of the meeting booker. Maximum length 96.
	DeptName string `json:"deptName"`
	// Attendee role.
	//   chair : Chair.
	//   general : The guest.
	//   audience : The audience.
	Role string `json:"role"`
	// Identifies whether it is a multi-stream video conference.
	// 1 : Multi-stream conference.
	MultiStreamFlag int `json:"multiStreamFlag"`
	// Webinar or not.
	Webinar bool `json:"webinar"`
	// Type of meeting.
	// COMMON : Normal conference.
	// RTC : RTC conference.
	ConfMode string `json:"confMode"`
	// VMR appointment record.
	// true : VMR conference.
	// false : Normal meeting.
	ScheduleVmr bool `json:"scheduleVmr"`
	// The UUID of the cloud meeting room.
	VmrId string `json:"vmrID"`
	// The number of parties in the conference, the maximum number of participants in the conference.
	ConcurrentParticipants int `json:"concurrentParticipants"`
	// Current multi-screen information.
	PicDisplay MultipicDisplayDo `json:"picDisplay"`
	// List of periodic sub-conferences.
	Subconferences []SubConference `json:"subConfs"`
	// The UUID of the first cycle subconference.
	CycleSubConfId string `json:"cycleSubConfID"`
}

func Create

func Create(c *golangsdk.ServiceClient, opts CreateOpts) ([]Conference, error)

Create is a method to initiate a conference using given parameters.

func ListHistory

func ListHistory(c *golangsdk.ServiceClient, opts ListHistoryOpts) ([]Conference, error)

ListHistory is a method to obtain history conference list using given parameters.

func Update

func Update(c *golangsdk.ServiceClient, opts UpdateOpts) ([]Conference, error)

Update is a method to udpate the conference configuration using given parameters.

type Configuration

type Configuration struct {
	// Whether to send conference email notification. The default value is determined by the enterprise-level configuration.
	//   true: required.
	//   false: not required.
	IsSendNotify *bool `json:"isSendNotify,omitempty"`
	// Whether to send conference SMS notification. The default value is determined by the enterprise-level configuration.
	//   true: required.
	//   false: not required.
	// Only official commercial enterprises have the right to send conference SMS notifications.
	// Free enterprises will not send conference SMS notifications even if isSendSms is set to true.
	IsSendSms *bool `json:"isSendSms,omitempty"`
	// Whether to send conference calendar notifications. The default value is determined by the enterprise-level configuration.
	//   true: required.
	//   false: not required.
	IsSendCalendar *bool `json:"isSendCalendar,omitempty"`
	// Whether the soft terminal is automatically muted when the guest joins the conference.
	// The default value is determined by the enterprise-level configuration.
	//   true: Automatic mute.
	//   false: Do not mute automatically.
	IsAutoMute *bool `json:"isAutoMute,omitempty"`
	// Whether the guest joins the conference, whether the hard terminal is automatically muted.
	// The default value is determined by the enterprise-level configuration.
	//   true: Automatic mute.
	//   false: Do not mute automatically.
	IsHardTerminalAutoMute *bool `json:"isHardTerminalAutoMute,omitempty"`
	// Whether the guest is password-free (only valid for random conferences).
	//   true: no password.
	//   false: A password is required.
	IsGuestFreePwd *bool `json:"isGuestFreePwd,omitempty"`
	// The range to allow incoming calls.
	//   0: All users.
	//   2: Users within the enterprise.
	//   3: The invited user.
	CallInRestriction *int `json:"callInRestriction,omitempty"`
	// Whether to allow guests to start conferences (only valid for random ID conferences).
	//   true: Allows guests to start conferences.
	//   false: Disables guests from starting conferences.
	AllowGuestStartConf *bool `json:"allowGuestStartConf,omitempty"`
	// Guest password (pure number 4-16 digits long).
	GuestPwd string `json:"guestPwd,omitempty"`
	// Cloud conference room conference ID mode.
	//   0: Fixed ID.
	//   1: Random ID.
	VmrIDType *int `json:"vmrIDType,omitempty"`
	// Automatically extend the conference duration (recommended value range is 0-60).
	//   0: Indicates that the conference ends automatically at the end of the session, and does not extend the conference.
	// Others: Indicates the duration of the automatic extension.
	// Automatically ending the conference is calculated according to the duration of the conference. For example, a scheduled conference starts at 9:00 and ends at 11:00, and the conference lasts for 2 hours. If a participant joins the conference at 8:00, the conference will automatically end at 10:00.
	ProlongLength *int `json:"prolongLength,omitempty"`
	// Whether to open the waiting room (only valid for RTC enterprises).
	//   true: On.
	//   false: not enabled.
	EnableWaitingRoom *bool `json:"enableWaitingRoom,omitempty"`
}

type CreateOpts

type CreateOpts struct {
	// The conference start time (UTC time).
	//   When creating a reservation conference, if the start time is not specified or the blank string is filled in, it
	//   means that the conference will start immediately.
	//   The time is in UTC, which is the time in time zone 0.
	// Format: yyyy-MM-dd HH:mm
	StartTime string `json:"startTime,omitempty"`
	// The duration of the conference, in minutes, with a maximum value of 1440 and a minimum value of 15.
	// The default is 30.
	Length int `json:"length,omitempty"`
	// Conference subject. The length is limited to 128 characters.
	Subject string `json:"subject,omitempty"`
	// The media type of the conference.
	// It consists of one or more enumeration Strings. When there are multiple enumerations, each enumeration value is
	// separated by "," commas. The enumeration values are as follows:
	//   "Voice": Voice.
	//   "Video": SD video.
	//   "HDVideo": High-definition video (mutually exclusive with Video, if Video and HDVideo are selected at the same
	//     time, the system will select Video by default).
	//   "Telepresence": Telepresence (mutually exclusive with HDVideo and Video, if selected at the same time, the
	//     system uses Telepresence). (reserved field)
	//   "Data": Multimedia (system configuration determines whether to automatically add Data).
	MediaTypes string `json:"mediaTypes,omitempty"`
	// When the soft terminal creates an instant conference, it carries a temporary group ID in the current field, which
	// is carried by the server in the conference-info header field when inviting other participants.
	// The length is limited to 31 characters.
	Groupuri string `json:"groupuri,omitempty"`
	// Attendee list. This list can be used to send conference notifications, conference reminders, and automatic invitations
	// when the conference starts.
	Participants []Participant `json:"attendees,omitempty"`
	// The parameter of the cyclical conference. When the conference is a periodic conference, this parameter must be filled in,
	// otherwise the server ignores this parameter.
	// This parameter includes the start date, end date of the periodic conference, the period of the conference and the
	// conference time point in the period.
	CycleParams *CycleParams `json:"cycleParams,omitempty"`
	// Whether the conference automatically starts recording, it only takes effect when the recording type is:
	//   1: Automatically start recording.
	//   0: Do not start recording automatically.
	// The default is not to start automatically.
	IsAutoRecord *int `json:"isAutoRecord,omitempty"`
	// Conference media encryption mode.
	//   0: Adaptive encryption.
	//   1: Force encryption.
	//   2: Do not encrypt.
	// Default values are populated by enterprise-level configuration.
	EncryptMode *int `json:"encryptMode,omitempty"`
	// The default language of the conference, the default value is defined by the conference cloud service.
	// For languages supported by the system, it is passed according to the RFC3066 specification.
	//   zh-CN: Simplified Chinese.
	//   en-US: US English.
	Language string `json:"language,omitempty"`
	// The time zone information of the conference time in the conference notification.
	// For time zone information, refer to the time zone mapping relationship.
	// For example: "timeZoneID":"26", the time in the conference notification sent through HUAWEI CLOUD conference will be
	// marked as "2021/11/11 Thursday 00:00 - 02:00 (GMT) Greenwich Standard When: Dublin, Edinburgh, Lisbon, London".
	// For an aperiodic conference, if the conference notification is sent through a third-party system, this field does not
	// need to be filled in.
	TimeZoneID string `json:"timeZoneID,omitempty"`
	// Recording type.
	//   0: Disabled.
	//   1: Live broadcast.
	//   2: Record and broadcast.
	//   3: Live + Recording.
	// Default is disabled.
	RecordType *int `json:"recordType,omitempty"`
	// The mainstream live broadcast address, with a maximum of 255 characters.
	// It is valid when the recording type is 2 or 3.
	LiveAddress string `json:"liveAddress,omitempty"`
	// Auxiliary streaming address, the maximum length is 255 characters.
	// It is valid when the recording type is 2 or 3.
	AuxAddress string `json:"auxAddress,omitempty"`
	// Whether to record auxiliary stream.
	//   0: Do not record.
	//   1: Record.
	// It is valid when the recording type is 2 or 3.
	RecordAuxStream *int `json:"recordAuxStream,omitempty"`
	// Other configuration information for the conference.
	Configuration *Configuration `json:"confConfigInfo,omitempty"`
	// Recording authentication method.
	//   0: Viewable/downloadable via link.
	//   1: Enterprise users can watch/download.
	//   2: Attendees can watch/download.
	// It is valid when the recording type is 2 or 3.
	RecordAuthType *int `json:"recordAuthType,omitempty"`
	// Whether to use the cloud conference room or personal conference ID to hold a reservation conference.
	//   0: Do not use cloud conference room.
	//   1: Use cloud conference room or personal conference ID.
	// Cloud conference rooms are not used by default.
	VmrFlag *int `json:"vmrFlag,omitempty"`
	// VMR ID bound to the current founding account.
	// Obtained by querying the cloud conference room and personal conference ID interface.
	// Note:
	//   vmrID takes the ID returned in the above query interface, not vmrId.
	//   When creating a conference with a personal conference ID, use VMR with vmrMode=0;
	//   When creating a conference in a cloud conference room, use VMR with vmrMode=1.
	VmrId string `json:"vmrID,omitempty"`
	// The number of parties in the conference, the maximum number of participants in the conference.
	//   0: Unlimited.
	// Greater than 0: the maximum number of participants in the conference.
	ConcurrentParticipants *int `json:"concurrentParticipants,omitempty"`
	// The authorization token.
	Token string `json:"-" required:"true"`
}

type CycleParams

type CycleParams struct {
	// The start date of the recurring conference, format: YYYY-MM-DD.
	// The start date cannot be earlier than the current date.
	// The date is the date in the time zone specified by timeZoneID, not the date in UTC time.
	StartDate string `json:"startDate,omitempty"`
	// End date of the recurring conference, format: YYYY-MM-DD.
	// The maximum time interval between start date and end date cannot exceed 1 year.
	// A maximum of 50 subconferences are allowed between the start date and the end date.
	// If there are more than 50 subconferences, the end date will be automatically adjusted.
	// The date is the date in the time zone specified by timeZoneID, not the date in UTC time.
	EndDate string `json:"endDate,omitempty"`
	// Period type. The valid values are:
	//   Day
	//   Week
	//   Month
	Cycle string `json:"cycle,omitempty"`
	// If the cycle selects "Day", which means that it will be held every few days, and the value range is [1,15].
	// If the cycle selects "Week", which means that it is held every few weeks, and the value range is [1,5].
	// If the cycle selects "Month", Interval means every few months, the value range is [1,3].
	Interval int `json:"interval,omitempty"`
	// The conference point in the cycle. Only valid by week and month.
	// "Week" is selected for "cycle", and two elements 1 and 3 are filled in point, which means that a conference is held
	// every Monday and Wednesday, and 0 means Sunday.
	// "Month" is selected for "cycle", and 12 and 20 are filled in point, which means that a conference will be held on
	// the 12th and 20th of each month. The value range is [1,31]. If there is no such value in the current month, then
	// for the end of the month.
	Points []int `json:"point,omitempty"`
	// Support the user to specify the number of days N for advance conference notice, the booker will receive the notice
	// of the whole cycle conference, and all the participants will receive the conference notice (including the calendar)
	// N days before each sub-conference time.
	// The input of the number of days N is automatically adjusted according to the interval.
	// If it is held every 2 days on a daily basis, N will automatically become 2, and if it is a Monday or Tuesday
	// every 2 weeks on a weekly basis, N will automatically become 14. Constraints: DST handling is not considered for
	// now. The valid value is range from 0 to 30. The default is 1.
	PreRemindDays *int `json:"preRemindDays,omitempty"`
}

type DeleteOpts

type DeleteOpts struct {
	ConferenceId string `q:"conferenceID"`
	UserId       string `q:"userUUID"`
	Type         int    `q:"type"`
	IsCycle      bool   `json:"-"`
	Token        string `json:"-"`
}

type ErrResponse

type ErrResponse struct {
	// Error code.
	Code string `json:"error_code"`
	// Error message.
	Message string `json:"error_msg"`
}

type ExtendOpts

type ExtendOpts struct {
	ConferenceId string `q:"conferenceID"`
	IsAuto       int    `json:"auto" required:"true"`
	Duration     int    `json:"duration,omitempty"`
	Token        string `json:"-"`
}

type GetHistoryOpts

type GetHistoryOpts struct {
	// Conference UUID.
	ConferenceUuid string `q:"confUUID"`
	// Offset from which the query starts.
	// If the offset is less than 0, the value is automatically converted to 0. Default to 0.
	Offset int `q:"offset"`
	// Number of items displayed on each page. The valid values are range form 1 to 500, default to 20.
	Limit int `q:"limit"`
	// User ID.
	UserId string `q:"userUUID"`
	// Authorization token.
	Token string `json:"-"`
}

type GetOpts

type GetOpts struct {
	// Conference ID.
	ConferenceId string `q:"conferenceID"`
	// Offset from which the query starts.
	// If the offset is less than 0, the value is automatically converted to 0. Default to 0.
	Offset int `q:"offset"`
	// Number of items displayed on each page. The valid values are range form 1 to 500, default to 20.
	Limit int `q:"limit"`
	// User ID.
	UserId string `q:"userUUID"`
	// Authorization.
	Token string `json:"-"`
}

type GetResp

type GetResp struct {
	Conference Conference      `json:"conferenceData"`
	Data       PageParticipant `json:"data"`
}

func Get

func Get(c *golangsdk.ServiceClient, opts GetOpts) (*GetResp, error)

Get is a method to obtain scheduled or online conference details using given parameters.

func GetHistory

func GetHistory(c *golangsdk.ServiceClient, opts GetHistoryOpts) (*GetResp, error)

GetHistory is a method to obtain history conference using given parameters.

func GetOnline

func GetOnline(c *golangsdk.ServiceClient, opts GetOpts) (*GetResp, error)

GetOnline is a method to obtain online conference using given parameters.

type ListHistoryOpts

type ListHistoryOpts struct {
	// User UUID.
	UserUUID string `q:"userUUID"`
	// Offset from which the query starts.
	// If the offset is less than 0, the value is automatically converted to 0. Default to 0.
	Offset int `q:"offset"`
	// Number of items displayed on each page. The valid values are range form 1 to 500, default to 20.
	Limit int `q:"limit"`
	// Query historical conferences based on the conference subject, the reservation and the string of conference ID
	// keywords.
	SearchKey string `q:"searchKey"`
	// Whether to query the meeting records of all users under the enterprise.
	// If the login account is not an enterprise administrator, this field is invalid.
	// If this field is true, the userUUID field has no effect.
	// The default value is 'false'.
	QueryAll bool `q:"queryAll"`
	// The query's starting date in milliseconds. For example: 1583078400000
	StartDate int `q:"startDate"`
	// The query deadline in milliseconds. For example: 1585756799000
	EndDate int `q:"endDate"`
	//ASC_StartTIME: Sort by meeting start time in ascending order.
	// DSC_StartTIME: Sort in descending order according to the conference start time.
	// ASC_RecordTYPE: Sort according to whether there are recording files or not, and then sort according to the
	//                 conference start time in ascending order by default.
	// DSC_RecordTYPE: Sort according to whether there are recording files or not, and then sort by the conference
	//                 start time in descending order by default.
	SortType string `q:"sortType"`
	// Authorization token.
	Token string `json:"-"`
}

type MultipicDisplayDo

type MultipicDisplayDo struct {
	// Whether to set multi-screen manually.
	//   0: The system automatically multi-screen.
	//   1: Manually set multi-screen.
	ManualSet int `json:"manualSet"`
	// Screen Type, value range:
	//   Single: single screen
	//   Two: Two pictures
	//   Three: Three pictures
	//     Three-2: Three pictures-2
	//     Three-3: Three pictures-3
	//     Three-4: Three pictures-4
	//   Four: Quad Picture
	//     Four-2: Quad Picture-2
	//     Four-3: Quad Picture-3
	//   Five: Five pictures
	//     Five-2: Five pictures-2
	//   Six: Six pictures
	//     Six-2: Six pictures-2
	//     Six-3: Six pictures-3
	//     Six-4: Six pictures-4
	//     Six-5: Six pictures-5
	//   Seven: Seven pictures
	//     Seven-2: Seven pictures-2
	//     Seven-3: Seven pictures-3
	//     Seven-4: Seven pictures-4
	//   Eight: Eight-picture
	//     Eight-2: Eight-picture-2
	//     Eight-3: Eight-picture-3
	//     Eight-4: Eight-picture-4
	//   Nine: Nine pictures
	//   Ten: Ten pictures
	//     Ten-2: Ten pictures-2
	//     Ten-3: Ten pictures-3
	//     Ten-4: Ten pictures-4
	//     Ten-5: Ten pictures-5
	//     Ten-6: Ten pictures-6
	//   Thirteen: Thirteen pictures
	//     Thirteen-2: Thirteen pictures-2
	//     Thirteen-3: Thirteen pictures-3
	//     Thirteen-4: Thirteen pictures-4
	//     Thirteen-5: Thirteen pictures-5
	//     ThirteenR: Thirteen Frames R
	//     ThirteenM: Thirteen Frames M
	//   Sixteen: Sixteen screen
	//   Seventeen: Seventeen pictures
	//   Twenty-Five: Twenty-Five
	//   Custom: custom multi-screen
	ImageType string `json:"imageType"`
	// Subscreen list.
	SubscriberInPics []PicInfoNotify `json:"subscriberInPics"`
	// Indicates the polling interval, in seconds.
	// This parameter is valid when there are multiple video sources in the same sub-picture.
	SwitchTime string `json:"switchTime"`
	// Customize multi-screen layout information.
	PicLayout PicLayout `json:"picLayoutInfo"`
}

type PageParticipant

type PageParticipant struct {
	// The number of records per page.
	Limit int `json:"limit"`
	// total number of the participants.
	Count int `json:"count"`
	// The offset of the number of records, how many records there are before this page.
	Offset int `json:"offset"`
	// Invited attendee information. It includes the attendees invited when the meeting was scheduled and the attendees
	// invited by the host during the meeting.
	// Do not return the information of participants who actively joined in the conference.
	Participants []ParticipantDetail `json:"data"`
}

type Participant

type Participant struct {
	// User UUID of the participant.
	UserUUID string `json:"userUUID,omitempty"`
	// The account ID of the participant.
	// If it is an account/password authentication scenario, optional, indicating the ID of the HUAWEI CLOUD conference
	// account. If it is an APP ID authentication scenario, it is required, indicating the user ID of the third party,
	// and the appid parameter needs to be carried.
	AccountId string `json:"accountId,omitempty"`
	// App ID, application identification, an application only needs to be created once, refer to "App ID application"
	// If it is an APP ID authentication scenario, this item is required.
	AppId string `json:"appId,omitempty"`
	// Attendee name or nickname. The length is limited to 96 characters.
	Name string `json:"name,omitempty"`
	// The role in the conference. The default is a regular participant.
	//   0: Normal attendees.
	//   1: The conference host.
	Role *int `json:"role,omitempty"`
	// If it is an account/password authentication scenario, it is required to fill in the number (SIP and TEL number
	// formats can be supported). Maximum of 127 characters. At least one of phone, email and sms must be filled in.
	// If it is an APP ID authentication scenario, optional.
	Phone string `json:"phone,omitempty"`
	// Email address. Maximum of 255 characters. In the case of account/password authentication, at least one of phone,
	// email, and sms must be filled in. (Information notification for reservation, modification and cancellation of
	// conference)
	Email string `json:"email,omitempty"`
	// Mobile number for SMS notification. Maximum of 32 characters. In the case of account/password authentication, at
	// least one of phone, email, and sms must be filled in. (Information notification for reservation, modification and
	// cancellation of conference)
	SMS string `json:"sms,omitempty"`
	// Whether the user needs to be automatically muted when joining the conference (only effective when invited in the
	// conference). Unmuted by default.
	//   0: No mute required.
	//   1: Mute is required.
	IsMute *int `json:"isMute,omitempty"`
	// Whether to automatically invite this participant when the conference starts. The default value is determined by the
	// enterprise-level configuration.
	//   0: Do not automatically invite.
	//   1: Automatic invitation.
	IsAutoInvite *int `json:"isAutoInvite,omitempty"`
	// The default value is defined by the conference AS. The number type enumeration is as follows:
	//   normal: Soft terminal.
	//   telepresence: Telepresence. Single-screen and triple-screen telepresence belong to this category. (reserved field)
	//   terminal: conference room or hard terminal.
	//   outside: The outside participant.
	//   mobile: User's mobile phone number.
	//   telephone: The user's landline phone. (reserved field)
	//   ideahub: ideahub.
	Type string `json:"type,omitempty"`
	// Department ID. Maximum of 64 characters.
	DeptUUID string `json:"deptUUID,omitempty"`
	// Department name. Maximum of 128 characters.
	DeptName string `json:"deptName,omitempty"`
}

type ParticipantDetail

type ParticipantDetail struct {
	// The participant's number.
	ID string `json:"participantID"`
	// The name (nickname) of the attendee.
	Name string `json:"name"`
	// role in the meeting.
	//   1: The meeting host.
	//   0: Regular attendees.v
	Role int `json:"role"`
	// user status. Currently fixed return to MEETING.
	State string `json:"state"`
	// Information about the conference room where the terminal is located. (reserved field)
	Address string `json:"address"`
	// The default value is defined by the conference AS.
	//   normal: soft terminal.
	//   telepresence: telepresence. Single-screen and triple-screen telepresence belong to this category. (reserved field)
	//   terminal: conference room or hard terminal.
	//   outside: The outside participant.
	//   mobile: User's mobile phone number.
	//   telephone: The user's landline phone. (reserved field)
	Type string `json:"attendeeType"`
	// The account ID of the participant.
	// In the case of account/password authentication, it indicates the ID of the HUAWEI CLOUD conference account.
	// If it is an APP ID authentication scenario, it indicates the User ID of a third party.
	AccountId string `json:"accountId"`
	// email address. Maximum of 255 characters.
	Email string `json:"email"`
	// Mobile number for SMS notification. Maximum of 127 characters.
	SMS string `json:"sms"`
	// Department name. Maximum of 96 characters.
	DeptName string `json:"deptName"`
	// Subscriber's user UUID.
	UserUUID string `json:"userUUID"`
	// App ID, application identification, an application only needs to be created once, refer to "App ID application".
	AppId string `json:"appId"`
	// Whether to automatically invite this attendee when the meeting starts.
	// The default value is determined by the enterprise-level configuration.
	//   0: do not automatically invite
	//   1: auto-invite
	IsAutoInvite int `json:"isAutoInvite"`
	// Whether to not superimpose the venue name
	//   true: no overlay
	//   false: overlay
	IsNotOverlayPidName bool `json:"isNotOverlayPidName"`
}

type ParticipantResp

type ParticipantResp struct {
	// Attendee name or nickname. The length is limited to 96 characters.
	Name string `json:"name"`
	// Phone number (support SIP, TEL number format). Maximum of 127 characters.
	// At least one of phone, email and sms must be filled in.
	// When "type" is "telepresence" and the device is a three-screen telepresence, fill in the number of the middle
	// screen in this field. (Three-screen telepresence is a reserved field)
	Phone string `json:"phone"`
	// The default value is defined by the conference AS, and the number type is enumerated as follows:
	//   "normal": soft terminal.
	//   "telepresence": telepresence. Single-screen and triple-screen telepresence belong to this category. (reserved)
	//   "terminal": conference room or hard terminal.
	//   "outside": The outside participant.
	//   "mobile": User's mobile phone number.
	//   "telephone": The user's landline phone. (reserved field)
	Type string `json:"type"`
}

type PasswordEntry

type PasswordEntry struct {
	// Conference role.
	//   chair: The host of the meeting.
	//   general: General participants.
	ConferenceRole string `json:"conferenceRole"`
	// The password (clear text) of the role in the meeting.
	Password string `json:"password"`
}

type PicInfoNotify

type PicInfoNotify struct {
	// The number of each screen in the multi-screen, starting from 1.
	Index int `json:"index"`
	// Session ID in each screen, namely callNumber.
	Id []string `json:"id"`
	// Whether it is an auxiliary stream.
	//   0: Not an auxiliary stream.
	//   1: It is an auxiliary stream.
	Share int `json:"share"`
}

type PicLayout

type PicLayout struct {
	// The number of horizontal small grids.
	X int `json:"x"`
	// The number of vertical small grids.
	Y int `json:"y"`
	// Multi-screen information.
	SubPicLayouts []SubPicLayout `json:"subPicLayoutInfoList"`
}

type ShowAudiencePolicy

type ShowAudiencePolicy struct {
	// Audience display strategy: The server is used to calculate the number of audiences and send it to the client to
	// control the audience display.
	//   0: do not display.
	//   1: Multiply display the number of participants, based on the real-time number of participants or the cumulative
	// number of participants (assuming N), the multiplication setting can be performed.
	// Notes: Supports setting the multiplier X and the base number Y.
	// After setting, the number of people displayed is: NX+Y.
	//   X supports setting to 1 decimal place. When NX calculates a non-integer, it will be rounded down.
	//   The range of X is 1~10, and the range of Y is 0~10000.
	ShowAudienceMode int `json:"showAudienceMode"`
	// The basic number of people, the range is 0~10000
	BaseAudienceCount int `json:"baseAudienceCount"`
	// Multiplier, the range is 1~10, it can be set to 1 decimal place
	Multiple float64 `json:"multiple"`
}

type SubConference

type SubConference struct {
	// Subconference UUID
	UUID string `json:"cycleSubConfID"`
	// Conference ID, the length is limited to no more than 32 characters
	ID string `json:"conferenceID"`
	// The media type of the meeting. It consists of one or more enumeration Strings.
	// When there are multiple enumerations, each enumeration value is separated by "," commas.
	// The enumeration values are as follows:
	//   Voice: Voice
	//   Video: SD video
	//   HDVideo: high-definition video (mutually exclusive with Video, if Video and HDVideo are selected at the same
	//            time, the system defaults to Video)
	//   Telepresence: Telepresence (mutually exclusive with HDVideo and Video, if selected at the same time, the system
	//                 uses Telepresence) - not supported yet
	//   Data: Multimedia
	MediaType string `json:"mediaType"`
	// Conference start time (format: YYYY-MM-DD HH:MM)
	StartTime string `json:"startTime"`
	// Conference end time (format: YYYY-MM-DD HH:MM)
	EndTime string `json:"endTime"`
	// Whether to automatically start recording.
	IsAutoRecord int `json:"isAutoRecord"`
	// The recording and broadcasting authentication method is valid when the recording and broadcasting types are:
	// recording and broadcasting, live broadcast + recording and broadcasting.
	//   0 is the old authentication method, and the url carries token authentication.
	//   1 is user authentication for intra-enterprise conferences.
	//   2 is the user authentication for the conference within the conference.
	RecordAuthType int `json:"recordAuthType"`
	// Meeting description, the length is limited to 200 characters.
	Description string `json:"description"`
	// Other configuration information of periodic subconferences.
	SubConfiguration SubConfiguration `json:"confConfigInfo"`
}

type SubConfiguration

type SubConfiguration struct {
	// The range to allow incoming calls.
	//   0: All users.
	//   2: Users within the enterprise.
	//   3: The invited user.
	CallInRestriction int `json:"callInRestriction"`
	// The range that the webinar audience is allowed to call in.
	//   0 for all users.
	//   2 Enterprise users and invited users.
	AudienceCallInRestriction int `json:"audienceCallInRestriction"`
	// Whether to allow guests to start meetings (only random meeting IDs are valid).
	//   true: Allows guests to start meetings.
	//   false: Disables guests from starting meetings.
	AllowGuestStartConf bool `json:"allowGuestStartConf"`
	// Whether to enable waiting room.
	EnableWaitingRoom bool `json:"enableWaitingRoom"`
	// Webinar Audience Display Strategy.
	ShowAudiencePolicy ShowAudiencePolicy `json:"showAudienceCountInfo"`
}

type SubPicLayout

type SubPicLayout struct {
	// Subpicture index.
	Id int `json:"id"`
	// The index of the sprite from left to right.
	Left int `json:"left"`
	// The index of the sprite from top to bottom.
	Top int `json:"top"`
	// The horizontal size of the sprite.
	XSize int `json:"xSize"`
	// The vertical size of the sprite.
	YSize int `json:"ySize"`
}

type TokenDetail

type TokenDetail struct {
	// Conference control authentication token.
	Token string `json:"token"`
	//The websocket chain building authentication Token.
	TmpWsToken string `json:"tmpWsToken"`
	// The websocket linking URL.
	WsURL string `json:"wsURL"`
	// The roles in the conference, the enumeration values are as follows.
	//   0 : Conference chairperson.
	//   1 : Regular attendees.
	Role int `json:"role"`
	// Session expiration time. UTC time in milliseconds.
	ExpireTime int `json:"expireTime"`
	// The ID of the conference booker.
	UserID string `json:"userID"`
	// ID of the company to which the conference belongs.
	OrgID string `json:"orgID"`
	// When requested by the terminal, the site ID after the terminal joins the conference is returned.
	ParticipantID string `json:"participantID"`
	// It will control the time when the token expires. (in seconds)
	ConfTokenExpireTime int `json:"confTokenExpireTime"`
	// The current meeting ID of the cloud conference room meeting.
	VmrCurrentConfID string `json:"vmrCurrentConfID"`
	// Websocket message push support type.
	SupportNotifyType []string `json:"supportNotifyType"`
}

type UpdateOpts

type UpdateOpts struct {
	// Conference ID.
	ConferenceID string `q:"conferenceID"`
	// Conference UUID.
	UserUUID string `q:"userUUID"`
	// The conference start time (UTC time).
	//   When creating a reservation conference, if the start time is not specified or the blank string is filled in, it
	//   means that the conference will start immediately.
	//   The time is in UTC, which is the time in time zone 0.
	// Format: yyyy-MM-dd HH:mm
	StartTime string `json:"startTime,omitempty"`
	// The duration of the conference, in minutes, with a maximum value of 1440 and a minimum value of 15.
	// The default is 30.
	Length int `json:"length,omitempty"`
	// Conference subject. The length is limited to 128 characters.
	Subject string `json:"subject,omitempty"`
	// The media type of the conference.
	// It consists of one or more enumeration Strings. When there are multiple enumerations, each enumeration value is
	// separated by "," commas. The enumeration values are as follows:
	//   "Voice": Voice.
	//   "Video": SD video.
	//   "HDVideo": High-definition video (mutually exclusive with Video, if Video and HDVideo are selected at the same
	//     time, the system will select Video by default).
	//   "Telepresence": Telepresence (mutually exclusive with HDVideo and Video, if selected at the same time, the
	//     system uses Telepresence). (reserved field)
	//   "Data": Multimedia (system configuration determines whether to automatically add Data).
	MediaTypes string `json:"mediaTypes,omitempty"`
	// When the soft terminal creates an instant conference, it carries a temporary group ID in the current field, which
	// is carried by the server in the conference-info header field when inviting other participants.
	// The length is limited to 31 characters.
	GroupUri string `json:"groupuri,omitempty"`
	// Attendee list. This list can be used to send conference notifications, conference reminders, and automatic invitations
	// when the conference starts.
	Participants []Participant `json:"attendees,omitempty"`
	// The parameter of the periodic conference. When the conference is a periodic conference, this parameter must be filled in,
	// otherwise the server ignores this parameter.
	// This parameter includes the start date, end date of the periodic conference, the period of the conference and the
	// conference time point in the period.
	CycleParams *CycleParams `json:"cycleParams,omitempty"`
	// Whether the conference automatically starts recording, it only takes effect when the recording type is:
	//   1: Automatically start recording.
	//   0: Do not start recording automatically.
	// The default is not to start automatically.
	IsAutoRecord *int `json:"isAutoRecord,omitempty"`
	// Conference media encryption mode.
	//   0: Adaptive encryption.
	//   1 : Force encryption.
	//   2 : Do not encrypt.
	// Default values are populated by enterprise-level configuration.
	EncryptMode *int `json:"encryptMode,omitempty"`
	// The default language of the conference, the default value is defined by the conference cloud service.
	// For languages supported by the system, it is passed according to the RFC3066 specification.
	//   zh-CN: Simplified Chinese.
	//   en-US: US English.
	Language string `json:"language,omitempty"`
	// The time zone information of the conference time in the conference notification.
	// For time zone information, refer to the time zone mapping relationship.
	// For example: "timeZoneID":"26", the time in the conference notification sent through HUAWEI CLOUD conference will be
	// marked as "2021/11/11 Thursday 00:00 - 02:00 (GMT) Greenwich Standard When: Dublin, Edinburgh, Lisbon, London".
	// For an aperiodic conference, if the conference notification is sent through a third-party system, this field does not
	// need to be filled in.
	TimeZoneID string `json:"timeZoneID,omitempty"`
	// Recording type.
	//   0: Disabled.
	//   1: Live broadcast.
	//   2: Record and broadcast.
	//   3: Live + Recording.
	// Default is disabled.
	RecordType *int `json:"recordType,omitempty"`
	// The mainstream live broadcast address, with a maximum of 255 characters.
	// It is valid when the recording type is 2 or 3.
	LiveAddress string `json:"liveAddress,omitempty"`
	// Auxiliary streaming address, the maximum length is 255 characters.
	// It is valid when the recording type is 2 or 3.
	AuxAddress string `json:"auxAddress,omitempty"`
	// Whether to record auxiliary stream.
	//   0: Do not record.
	//   1: Record.
	// It is valid when the recording type is 2 or 3.
	RecordAuxStream *int `json:"recordAuxStream,omitempty"`
	// Other configuration information for the conference.
	Configuration *Configuration `json:"confConfigInfo,omitempty"`
	// Recording authentication method.
	//   0: Viewable/downloadable via link.
	//   1: Enterprise users can watch/download.
	//   2: Attendees can watch/download.
	// It is valid when the recording type is 2 or 3.
	RecordAuthType *int `json:"recordAuthType,omitempty"`
	// Whether to use the cloud conference room or personal conference ID to hold a reservation conference.
	//   0: Do not use cloud conference room.
	//   1: Use cloud conference room or personal conference ID.
	// Cloud conference rooms are not used by default.
	VmrFlag *int `json:"vmrFlag,omitempty"`
	// VMR ID bound to the current founding account.
	// Obtained by querying the cloud conference room and personal conference ID interface.
	// Note:
	//   vmrID takes the ID returned in the above query interface, not vmrId.
	//   When creating a conference with a personal conference ID, use VMR with vmrMode=0;
	//   When creating a conference in a cloud conference room, use VMR with vmrMode=1.
	VmrId string `json:"vmrID,omitempty"`
	// The number of parties in the conference, the maximum number of participants in the conference.
	//   0: Unlimited.
	// Greater than 0: the maximum number of participants in the conference.
	ConcurrentParticipants *int `json:"concurrentParticipants,omitempty"`
	// The authorization token.
	Token string `json:"-" required:"true"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL