github.com/chnsz/golangsdk@v0.0.0-20240506093406-85a3fbfa605b/openstack/meeting/v1/conferences/results.go (about)

     1  package conferences
     2  
     3  type Conference struct {
     4  	// Meeting ID. The length is limited to 32 characters.
     5  	ID string `json:"conferenceID"`
     6  	// Conference theme. The length is limited to 128 characters.
     7  	Subject string `json:"subject"`
     8  	// The number of parties in the meeting.
     9  	Size int `json:"size"`
    10  	// The time zone information of the meeting time in the meeting notification.
    11  	// For time zone information, refer to the time zone mapping relationship.
    12  	// For example: "timeZoneID": "26", the time in the meeting notice sent through HUAWEI CLOUD meeting will be marked
    13  	// as "2021/11/11 Thursday 00:00 - 02:00 (GMT) Greenwich Standard When: Dublin, Edinburgh, Lisbon, London".
    14  	TimeZoneId string `json:"timeZoneID"`
    15  	// The meeting start time (YYYY-MM-DD HH:MM).
    16  	StartTime string `json:"startTime"`
    17  	// The meeting end time (YYYY-MM-DD HH:MM).
    18  	EndTime string `json:"endTime"`
    19  	// The media type of the meeting.
    20  	// It consists of one or more enumeration Strings.
    21  	// When there are multiple enumerations, each enumeration value is separated by "," commas.
    22  	//   Voice: Voice.
    23  	//   Video: SD video.
    24  	//   HDVideo: high-definition video (mutually exclusive with "Video", if "Video" and "HDVideo" are selected at the
    25  	//            same time, the system selects "Video" by default).
    26  	//   Telepresence: Telepresence (mutually exclusive with "HDVideo" and "Video", if selected at the same time, the
    27  	//                 system uses "Telepresence"). (reserved field)
    28  	//   Data: Multimedia.
    29  	MediaTypes string `json:"mediaTypes"`
    30  	// Currently, only the Created and Scheduled states will be returned.  If the meeting has been held, the Created
    31  	// state will be returned, otherwise, the Scheduled state will be returned.
    32  	//   Schedule: Schedule status.
    33  	//   Creating: The state is being created.
    34  	//   Created: The meeting has been created and is in progress.
    35  	//   Destroyed: The meeting has been closed.
    36  	ConferenceState string `json:"conferenceState"`
    37  	// Conference language.
    38  	Language string `json:"language"`
    39  	// Conference access code.
    40  	AccessNumber string `json:"accessNumber"`
    41  	// Meeting password entry. The subscriber returns the host password and guest password.
    42  	// The host password is returned when the host queries.
    43  	// The guest password is returned when the guest is queried.
    44  	PasswordEntry []PasswordEntry `json:"passwordEntry"`
    45  	// The UUID of the meeting booker.
    46  	UserUUID string `json:"userUUID"`
    47  	// Meeting booker account name. The maximum length is limited to 96 characters.
    48  	ScheduserName string `json:"scheduserName"`
    49  	// Conference type (Parameters used by the front-end).
    50  	//   0 : Normal meeting.
    51  	//   2 : Periodic meeting.
    52  	ConferenceType int `json:"conferenceType"`
    53  	// Conference type.
    54  	//   FUTURE
    55  	//   IMMEDIATELY
    56  	//   CYCLE
    57  	ConfType string `json:"confType"`
    58  	// Periodic meeting parameters. Carry this parameter when the conference is a periodic conference.
    59  	// This parameter includes the start date, end date of the periodic meeting, the period of the meeting and the
    60  	// meeting time point in the period.
    61  	CycleParams CycleParams `json:"cycleParams"`
    62  	// Whether to automatically mute the session.
    63  	//   0 : Do not mute automatically.
    64  	//   1 : Auto mute.
    65  	IsAutoMute int `json:"isAutoMute"`
    66  	// Whether to automatically start recording.
    67  	//   0 : Do not start automatically.
    68  	//   1 : start automatically.
    69  	IsAutoRecord int `json:"isAutoRecord"`
    70  	// Host meeting link address.
    71  	ChairJoinUri string `json:"chairJoinUri"`
    72  	// Common attendee meeting link address. The maximum length is 1024.
    73  	GuestJoinUri string `json:"guestJoinUri"`
    74  	// Audience meeting link address. The maximum length is 1024. (webinar scenario)
    75  	AudienceJoinUri string `json:"audienceJoinUri"`
    76  	// Recording type.
    77  	//   0: Disabled.
    78  	//   1: Live broadcast.
    79  	//   2: Record and broadcast.
    80  	//   3: Live + Recording.
    81  	RecordType int `json:"recordType"`
    82  	// Auxiliary stream live address.
    83  	AuxAddress string `json:"auxAddress"`
    84  	// Mainstream live broadcast address.
    85  	LiveAddress string `json:"liveAddress"`
    86  	// Whether to record auxiliary streams.
    87  	//   0: No.
    88  	//   1: Yes.
    89  	RecordAuxStream int `json:"recordAuxStream"`
    90  	// Recording and broadcasting authentication method.
    91  	// The recording type is: recording, live+recording, and it is valid.
    92  	//   0: Viewable/downloadable via link.
    93  	//   1: Enterprise users can watch/download.
    94  	//   2: Attendees can watch/download.
    95  	RecordAuthType int `json:"recordAuthType"`
    96  	// Live address. (It will be returned when the live room is configured)
    97  	LiveUrl string `json:"liveUrl"`
    98  	// Other configuration information for the conference.
    99  	Configuration Configuration `json:"confConfigInfo"`
   100  	// Whether to use the cloud conference room to hold a reservation meeting.
   101  	//   0: Do not use cloud conference room.
   102  	//   1: Use cloud conference room.
   103  	// The interface shows that the conference ID needs to use "vmrConferenceID" as the conference ID;
   104  	// the "conferenceID" field is still used for conference business operations such as querying conference details,
   105  	// logging in to conference control, and typing in a conference.
   106  	VmrFlag int `json:"vmrFlag"`
   107  	// Only the historical conference return value is valid. There are no recording files by default.
   108  	//   true: There is a recording file.
   109  	//   false: No recording file.
   110  	IsHasRecordFile bool `json:"isHasRecordFile"`
   111  	// The conference ID of the cloud conference room. If "vmrFlag" is "1", this field is not empty.
   112  	VmrConferenceId string `json:"vmrConferenceID"`
   113  	// The UUID of the meeting.
   114  	// The UUID is only returned when a meeting that starts immediately is created.
   115  	// If it is a future meeting, the UUID will not be returned.
   116  	// You can get the UUID of the historical conference through "Query Historical Conference List".
   117  	ConfUUID string `json:"confUUID"`
   118  	// Information about some of the invited participants.
   119  	// Only the first 20 soft terminal participant information and the first 20 hard terminal participant information
   120  	// are returned. Do not return the information of participants who actively joined in the conference.
   121  	// The "Query Conference List" and "Query Conference Details" interfaces return the participants who were invited
   122  	// when the conference was scheduled and the participants who were invited by the host in the conference.
   123  	// The "Query Online Conference List", "Query Online Conference Details", "Query History Conference List" and "Query
   124  	// History Conference Details" interfaces return the participants who were invited when the conference was
   125  	// scheduled. Attendees invited by the host in the meeting are not returned.
   126  	Participants []ParticipantResp `json:"partAttendeeInfo"`
   127  	// Number of hard terminals, such as IdeaHub, TE30, etc.
   128  	TerminlCount int `json:"terminlCount"`
   129  	// The number of common terminals, such as PC terminal, mobile terminal app, etc.
   130  	NormalCount int `json:"normalCount"`
   131  	// The business name of the meeting booker. Maximum length 96.
   132  	DeptName string `json:"deptName"`
   133  	// Attendee role.
   134  	//   chair : Chair.
   135  	//   general : The guest.
   136  	//   audience : The audience.
   137  	Role string `json:"role"`
   138  	// Identifies whether it is a multi-stream video conference.
   139  	// 1 : Multi-stream conference.
   140  	MultiStreamFlag int `json:"multiStreamFlag"`
   141  	// Webinar or not.
   142  	Webinar bool `json:"webinar"`
   143  	// Type of meeting.
   144  	// COMMON : Normal conference.
   145  	// RTC : RTC conference.
   146  	ConfMode string `json:"confMode"`
   147  	// VMR appointment record.
   148  	// true : VMR conference.
   149  	// false : Normal meeting.
   150  	ScheduleVmr bool `json:"scheduleVmr"`
   151  	// The UUID of the cloud meeting room.
   152  	VmrId string `json:"vmrID"`
   153  	// The number of parties in the conference, the maximum number of participants in the conference.
   154  	ConcurrentParticipants int `json:"concurrentParticipants"`
   155  	// Current multi-screen information.
   156  	PicDisplay MultipicDisplayDo `json:"picDisplay"`
   157  	// List of periodic sub-conferences.
   158  	Subconferences []SubConference `json:"subConfs"`
   159  	// The UUID of the first cycle subconference.
   160  	CycleSubConfId string `json:"cycleSubConfID"`
   161  }
   162  
   163  type PasswordEntry struct {
   164  	// Conference role.
   165  	//   chair: The host of the meeting.
   166  	//   general: General participants.
   167  	ConferenceRole string `json:"conferenceRole"`
   168  	// The password (clear text) of the role in the meeting.
   169  	Password string `json:"password"`
   170  }
   171  
   172  type ParticipantResp struct {
   173  	// Attendee name or nickname. The length is limited to 96 characters.
   174  	Name string `json:"name"`
   175  	// Phone number (support SIP, TEL number format). Maximum of 127 characters.
   176  	// At least one of phone, email and sms must be filled in.
   177  	// When "type" is "telepresence" and the device is a three-screen telepresence, fill in the number of the middle
   178  	// screen in this field. (Three-screen telepresence is a reserved field)
   179  	Phone string `json:"phone"`
   180  	// The default value is defined by the conference AS, and the number type is enumerated as follows:
   181  	//   "normal": soft terminal.
   182  	//   "telepresence": telepresence. Single-screen and triple-screen telepresence belong to this category. (reserved)
   183  	//   "terminal": conference room or hard terminal.
   184  	//   "outside": The outside participant.
   185  	//   "mobile": User's mobile phone number.
   186  	//   "telephone": The user's landline phone. (reserved field)
   187  	Type string `json:"type"`
   188  }
   189  
   190  type MultipicDisplayDo struct {
   191  	// Whether to set multi-screen manually.
   192  	//   0: The system automatically multi-screen.
   193  	//   1: Manually set multi-screen.
   194  	ManualSet int `json:"manualSet"`
   195  	// Screen Type, value range:
   196  	//   Single: single screen
   197  	//   Two: Two pictures
   198  	//   Three: Three pictures
   199  	//     Three-2: Three pictures-2
   200  	//     Three-3: Three pictures-3
   201  	//     Three-4: Three pictures-4
   202  	//   Four: Quad Picture
   203  	//     Four-2: Quad Picture-2
   204  	//     Four-3: Quad Picture-3
   205  	//   Five: Five pictures
   206  	//     Five-2: Five pictures-2
   207  	//   Six: Six pictures
   208  	//     Six-2: Six pictures-2
   209  	//     Six-3: Six pictures-3
   210  	//     Six-4: Six pictures-4
   211  	//     Six-5: Six pictures-5
   212  	//   Seven: Seven pictures
   213  	//     Seven-2: Seven pictures-2
   214  	//     Seven-3: Seven pictures-3
   215  	//     Seven-4: Seven pictures-4
   216  	//   Eight: Eight-picture
   217  	//     Eight-2: Eight-picture-2
   218  	//     Eight-3: Eight-picture-3
   219  	//     Eight-4: Eight-picture-4
   220  	//   Nine: Nine pictures
   221  	//   Ten: Ten pictures
   222  	//     Ten-2: Ten pictures-2
   223  	//     Ten-3: Ten pictures-3
   224  	//     Ten-4: Ten pictures-4
   225  	//     Ten-5: Ten pictures-5
   226  	//     Ten-6: Ten pictures-6
   227  	//   Thirteen: Thirteen pictures
   228  	//     Thirteen-2: Thirteen pictures-2
   229  	//     Thirteen-3: Thirteen pictures-3
   230  	//     Thirteen-4: Thirteen pictures-4
   231  	//     Thirteen-5: Thirteen pictures-5
   232  	//     ThirteenR: Thirteen Frames R
   233  	//     ThirteenM: Thirteen Frames M
   234  	//   Sixteen: Sixteen screen
   235  	//   Seventeen: Seventeen pictures
   236  	//   Twenty-Five: Twenty-Five
   237  	//   Custom: custom multi-screen
   238  	ImageType string `json:"imageType"`
   239  	// Subscreen list.
   240  	SubscriberInPics []PicInfoNotify `json:"subscriberInPics"`
   241  	// Indicates the polling interval, in seconds.
   242  	// This parameter is valid when there are multiple video sources in the same sub-picture.
   243  	SwitchTime string `json:"switchTime"`
   244  	// Customize multi-screen layout information.
   245  	PicLayout PicLayout `json:"picLayoutInfo"`
   246  }
   247  
   248  type PicInfoNotify struct {
   249  	// The number of each screen in the multi-screen, starting from 1.
   250  	Index int `json:"index"`
   251  	// Session ID in each screen, namely callNumber.
   252  	Id []string `json:"id"`
   253  	// Whether it is an auxiliary stream.
   254  	//   0: Not an auxiliary stream.
   255  	//   1: It is an auxiliary stream.
   256  	Share int `json:"share"`
   257  }
   258  
   259  type PicLayout struct {
   260  	// The number of horizontal small grids.
   261  	X int `json:"x"`
   262  	// The number of vertical small grids.
   263  	Y int `json:"y"`
   264  	// Multi-screen information.
   265  	SubPicLayouts []SubPicLayout `json:"subPicLayoutInfoList"`
   266  }
   267  
   268  type SubPicLayout struct {
   269  	// Subpicture index.
   270  	Id int `json:"id"`
   271  	// The index of the sprite from left to right.
   272  	Left int `json:"left"`
   273  	// The index of the sprite from top to bottom.
   274  	Top int `json:"top"`
   275  	// The horizontal size of the sprite.
   276  	XSize int `json:"xSize"`
   277  	// The vertical size of the sprite.
   278  	YSize int `json:"ySize"`
   279  }
   280  
   281  type SubConference struct {
   282  	// Subconference UUID
   283  	UUID string `json:"cycleSubConfID"`
   284  	// Conference ID, the length is limited to no more than 32 characters
   285  	ID string `json:"conferenceID"`
   286  	// The media type of the meeting. It consists of one or more enumeration Strings.
   287  	// When there are multiple enumerations, each enumeration value is separated by "," commas.
   288  	// The enumeration values are as follows:
   289  	//   Voice: Voice
   290  	//   Video: SD video
   291  	//   HDVideo: high-definition video (mutually exclusive with Video, if Video and HDVideo are selected at the same
   292  	//            time, the system defaults to Video)
   293  	//   Telepresence: Telepresence (mutually exclusive with HDVideo and Video, if selected at the same time, the system
   294  	//                 uses Telepresence) - not supported yet
   295  	//   Data: Multimedia
   296  	MediaType string `json:"mediaType"`
   297  	// Conference start time (format: YYYY-MM-DD HH:MM)
   298  	StartTime string `json:"startTime"`
   299  	// Conference end time (format: YYYY-MM-DD HH:MM)
   300  	EndTime string `json:"endTime"`
   301  	// Whether to automatically start recording.
   302  	IsAutoRecord int `json:"isAutoRecord"`
   303  	// The recording and broadcasting authentication method is valid when the recording and broadcasting types are:
   304  	// recording and broadcasting, live broadcast + recording and broadcasting.
   305  	//   0 is the old authentication method, and the url carries token authentication.
   306  	//   1 is user authentication for intra-enterprise conferences.
   307  	//   2 is the user authentication for the conference within the conference.
   308  	RecordAuthType int `json:"recordAuthType"`
   309  	// Meeting description, the length is limited to 200 characters.
   310  	Description string `json:"description"`
   311  	// Other configuration information of periodic subconferences.
   312  	SubConfiguration SubConfiguration `json:"confConfigInfo"`
   313  }
   314  
   315  type SubConfiguration struct {
   316  	// The range to allow incoming calls.
   317  	//   0: All users.
   318  	//   2: Users within the enterprise.
   319  	//   3: The invited user.
   320  	CallInRestriction int `json:"callInRestriction"`
   321  	// The range that the webinar audience is allowed to call in.
   322  	//   0 for all users.
   323  	//   2 Enterprise users and invited users.
   324  	AudienceCallInRestriction int `json:"audienceCallInRestriction"`
   325  	// Whether to allow guests to start meetings (only random meeting IDs are valid).
   326  	//   true: Allows guests to start meetings.
   327  	//   false: Disables guests from starting meetings.
   328  	AllowGuestStartConf bool `json:"allowGuestStartConf"`
   329  	// Whether to enable waiting room.
   330  	EnableWaitingRoom bool `json:"enableWaitingRoom"`
   331  	// Webinar Audience Display Strategy.
   332  	ShowAudiencePolicy ShowAudiencePolicy `json:"showAudienceCountInfo"`
   333  }
   334  
   335  type ShowAudiencePolicy struct {
   336  	// Audience display strategy: The server is used to calculate the number of audiences and send it to the client to
   337  	// control the audience display.
   338  	//   0: do not display.
   339  	//   1: Multiply display the number of participants, based on the real-time number of participants or the cumulative
   340  	// number of participants (assuming N), the multiplication setting can be performed.
   341  	// Notes: Supports setting the multiplier X and the base number Y.
   342  	// After setting, the number of people displayed is: NX+Y.
   343  	//   X supports setting to 1 decimal place. When NX calculates a non-integer, it will be rounded down.
   344  	//   The range of X is 1~10, and the range of Y is 0~10000.
   345  	ShowAudienceMode int `json:"showAudienceMode"`
   346  	// The basic number of people, the range is 0~10000
   347  	BaseAudienceCount int `json:"baseAudienceCount"`
   348  	// Multiplier, the range is 1~10, it can be set to 1 decimal place
   349  	Multiple float64 `json:"multiple"`
   350  }
   351  
   352  type GetResp struct {
   353  	Conference Conference      `json:"conferenceData"`
   354  	Data       PageParticipant `json:"data"`
   355  }
   356  
   357  type PageParticipant struct {
   358  	// The number of records per page.
   359  	Limit int `json:"limit"`
   360  	// total number of the participants.
   361  	Count int `json:"count"`
   362  	// The offset of the number of records, how many records there are before this page.
   363  	Offset int `json:"offset"`
   364  	// Invited attendee information. It includes the attendees invited when the meeting was scheduled and the attendees
   365  	// invited by the host during the meeting.
   366  	// Do not return the information of participants who actively joined in the conference.
   367  	Participants []ParticipantDetail `json:"data"`
   368  }
   369  
   370  type ParticipantDetail struct {
   371  	// The participant's number.
   372  	ID string `json:"participantID"`
   373  	// The name (nickname) of the attendee.
   374  	Name string `json:"name"`
   375  	// role in the meeting.
   376  	//   1: The meeting host.
   377  	//   0: Regular attendees.v
   378  	Role int `json:"role"`
   379  	// user status. Currently fixed return to MEETING.
   380  	State string `json:"state"`
   381  	// Information about the conference room where the terminal is located. (reserved field)
   382  	Address string `json:"address"`
   383  	// The default value is defined by the conference AS.
   384  	//   normal: soft terminal.
   385  	//   telepresence: telepresence. Single-screen and triple-screen telepresence belong to this category. (reserved field)
   386  	//   terminal: conference room or hard terminal.
   387  	//   outside: The outside participant.
   388  	//   mobile: User's mobile phone number.
   389  	//   telephone: The user's landline phone. (reserved field)
   390  	Type string `json:"attendeeType"`
   391  	// The account ID of the participant.
   392  	// In the case of account/password authentication, it indicates the ID of the HUAWEI CLOUD conference account.
   393  	// If it is an APP ID authentication scenario, it indicates the User ID of a third party.
   394  	AccountId string `json:"accountId"`
   395  	// email address. Maximum of 255 characters.
   396  	Email string `json:"email"`
   397  	// Mobile number for SMS notification. Maximum of 127 characters.
   398  	SMS string `json:"sms"`
   399  	// Department name. Maximum of 96 characters.
   400  	DeptName string `json:"deptName"`
   401  	// Subscriber's user UUID.
   402  	UserUUID string `json:"userUUID"`
   403  	// App ID, application identification, an application only needs to be created once, refer to "App ID application".
   404  	AppId string `json:"appId"`
   405  	// Whether to automatically invite this attendee when the meeting starts.
   406  	// The default value is determined by the enterprise-level configuration.
   407  	//   0: do not automatically invite
   408  	//   1: auto-invite
   409  	IsAutoInvite int `json:"isAutoInvite"`
   410  	// Whether to not superimpose the venue name
   411  	//   true: no overlay
   412  	//   false: overlay
   413  	IsNotOverlayPidName bool `json:"isNotOverlayPidName"`
   414  }
   415  
   416  type AuthResp struct {
   417  	// Token information.
   418  	TokenDetail TokenDetail `json:"data"`
   419  	// Query the temporary token in the address book.
   420  	AddressToken string `json:"addressToken"`
   421  	// Global external network IP.
   422  	GloablPublicIP string `json:"gloablPublicIP"`
   423  }
   424  
   425  type TokenDetail struct {
   426  	// Conference control authentication token.
   427  	Token string `json:"token"`
   428  	//The websocket chain building authentication Token.
   429  	TmpWsToken string `json:"tmpWsToken"`
   430  	// The websocket linking URL.
   431  	WsURL string `json:"wsURL"`
   432  	// The roles in the conference, the enumeration values are as follows.
   433  	//   0 : Conference chairperson.
   434  	//   1 : Regular attendees.
   435  	Role int `json:"role"`
   436  	// Session expiration time. UTC time in milliseconds.
   437  	ExpireTime int `json:"expireTime"`
   438  	// The ID of the conference booker.
   439  	UserID string `json:"userID"`
   440  	// ID of the company to which the conference belongs.
   441  	OrgID string `json:"orgID"`
   442  	// When requested by the terminal, the site ID after the terminal joins the conference is returned.
   443  	ParticipantID string `json:"participantID"`
   444  	// It will control the time when the token expires. (in seconds)
   445  	ConfTokenExpireTime int `json:"confTokenExpireTime"`
   446  	// The current meeting ID of the cloud conference room meeting.
   447  	VmrCurrentConfID string `json:"vmrCurrentConfID"`
   448  	// Websocket message push support type.
   449  	SupportNotifyType []string `json:"supportNotifyType"`
   450  }
   451  
   452  type ErrResponse struct {
   453  	// Error code.
   454  	Code string `json:"error_code"`
   455  	// Error message.
   456  	Message string `json:"error_msg"`
   457  }