feat(work): 新增会议 Rooms 管理相关接口

This commit is contained in:
Fu Diwei 2023-06-15 15:29:37 +08:00
parent 67cac022e0
commit d835b701a8
47 changed files with 1870 additions and 1 deletions

View File

@ -741,5 +741,247 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingRecordDeleteFileResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region Rooms
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/rooms/book 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98791 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingRoomsBookResponse> ExecuteCgibinMeetingRoomsBookAsync(this WechatWorkClient client, Models.CgibinMeetingRoomsBookRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "rooms", "book")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingRoomsBookResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/rooms/release 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98792 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingRoomsReleaseResponse> ExecuteCgibinMeetingRoomsReleaseAsync(this WechatWorkClient client, Models.CgibinMeetingRoomsReleaseRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "rooms", "release")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingRoomsReleaseResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/rooms/list 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98795 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingRoomsListResponse> ExecuteCgibinMeetingRoomsListAsync(this WechatWorkClient client, Models.CgibinMeetingRoomsListRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "rooms", "list")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingRoomsListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/rooms/get_info 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98793 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingRoomsGetInfoResponse> ExecuteCgibinMeetingRoomsGetInfoAsync(this WechatWorkClient client, Models.CgibinMeetingRoomsGetInfoRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "rooms", "get_info")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingRoomsGetInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/rooms/get_config 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98802 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingRoomsGetConfigResponse> ExecuteCgibinMeetingRoomsGetConfigAsync(this WechatWorkClient client, Models.CgibinMeetingRoomsGetConfigRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "rooms", "get_config")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingRoomsGetConfigResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/rooms/list_meetings 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98796 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingRoomsListMeetingsResponse> ExecuteCgibinMeetingRoomsListMeetingsAsync(this WechatWorkClient client, Models.CgibinMeetingRoomsListMeetingsRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "rooms", "list_meetings")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingRoomsListMeetingsResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/rooms/list_devices 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98798 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingRoomsListDevicesResponse> ExecuteCgibinMeetingRoomsListDevicesAsync(this WechatWorkClient client, Models.CgibinMeetingRoomsListDevicesRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "rooms", "list_devices")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingRoomsListDevicesResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/rooms/list_controllers 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98799 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingRoomsListControllersResponse> ExecuteCgibinMeetingRoomsListControllersAsync(this WechatWorkClient client, Models.CgibinMeetingRoomsListControllersRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "rooms", "list_controllers")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingRoomsListControllersResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/rooms/get_inventory 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98809 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingRoomsGetInventoryResponse> ExecuteCgibinMeetingRoomsGetInventoryAsync(this WechatWorkClient client, Models.CgibinMeetingRoomsGetInventoryRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "rooms", "get_inventory")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingRoomsGetInventoryResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/rooms/call 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98804 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingRoomsCallResponse> ExecuteCgibinMeetingRoomsCallAsync(this WechatWorkClient client, Models.CgibinMeetingRoomsCallRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "rooms", "call")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingRoomsCallResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/rooms/cancel_call 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98805 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingRoomsCancelCallResponse> ExecuteCgibinMeetingRoomsCancelCallAsync(this WechatWorkClient client, Models.CgibinMeetingRoomsCancelCallRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "rooms", "cancel_call")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingRoomsCancelCallResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/rooms/get_response_status 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98806 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingRoomsGetResponseStatusResponse> ExecuteCgibinMeetingRoomsGetResponseStatusAsync(this WechatWorkClient client, Models.CgibinMeetingRoomsGetResponseStatusRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "rooms", "get_response_status")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingRoomsGetResponseStatusResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
}
}

View File

@ -17,6 +17,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_meetingid")]
public string? SubMeetingId { get; set; } = string.Empty;
public string? SubMeetingId { get; set; }
}
}

View File

@ -0,0 +1,31 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/book 接口的请求。</para>
/// </summary>
public class CgibinMeetingRoomsBookRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置会议室 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_id_list")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_id_list")]
public IList<string> MeetingRoomIdList { get; set; } = new List<string>();
/// <summary>
/// 获取或设置是否显示会议主题。
/// </summary>
[Newtonsoft.Json.JsonProperty("subject_visible")]
[System.Text.Json.Serialization.JsonPropertyName("subject_visible")]
public bool? IsSubjectVisible { get; set; }
}
}

View File

@ -0,0 +1,42 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/book 接口的响应。</para>
/// </summary>
public class CgibinMeetingRoomsBookResponse : WechatWorkResponse
{
public static class Types
{
public class MeetingRoom
{
/// <summary>
/// 获取或设置会议室 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_id")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")]
public string MeetingRoomId { get; set; } = default!;
/// <summary>
/// 获取或设置会议室名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_name")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_name")]
public string MeetingRoomName { get; set; } = default!;
/// <summary>
/// 获取或设置会议室地址。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_location")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_location")]
public string MeetingRoomLocation { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置会议室列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_list")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_list")]
public Types.MeetingRoom[] MeetingRoomList { get; set; } = default!;
}
}

View File

@ -0,0 +1,49 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/call 接口的请求。</para>
/// </summary>
public class CgibinMeetingRoomsCallRequest : WechatWorkRequest
{
public static class Types
{
public class MRA
{
/// <summary>
/// 获取或设置信令协议。
/// </summary>
[Newtonsoft.Json.JsonProperty("protocol")]
[System.Text.Json.Serialization.JsonPropertyName("protocol")]
public int Protocol { get; set; }
/// <summary>
/// 获取或设置信令。
/// </summary>
[Newtonsoft.Json.JsonProperty("dial_string")]
[System.Text.Json.Serialization.JsonPropertyName("dial_string")]
public string DialogString { get; set; } = string.Empty;
}
}
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置会议室 ID。与字段 <see cref="MRA"/> 二选一。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_id")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")]
public string? MeetingRoomId { get; set; }
/// <summary>
/// 获取或设置 MRA 信息。与字段 <see cref="MeetingRoomId"/> 二选一。
/// </summary>
[Newtonsoft.Json.JsonProperty("mra_address")]
[System.Text.Json.Serialization.JsonPropertyName("mra_address")]
public Types.MRA? MRA { get; set; }
}
}

View File

@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/call 接口的响应。</para>
/// </summary>
public class CgibinMeetingRoomsCallResponse : WechatWorkResponse
{
/// <summary>
/// 获取或设置呼叫 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("invite_id")]
[System.Text.Json.Serialization.JsonPropertyName("invite_id")]
public string InviteId { get; set; } = default!;
}
}

View File

@ -0,0 +1,43 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/cancel_call 接口的请求。</para>
/// </summary>
public class CgibinMeetingRoomsCancelCallRequest : WechatWorkRequest
{
public static class Types
{
public class MRA : CgibinMeetingRoomsCallRequest.Types.MRA
{
}
}
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置呼叫 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("invite_id")]
[System.Text.Json.Serialization.JsonPropertyName("invite_id")]
public string InviteId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置会议室 ID。与字段 <see cref="MRA"/> 二选一。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_id")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")]
public string? MeetingRoomId { get; set; }
/// <summary>
/// 获取或设置 MRA 信息。与字段 <see cref="MeetingRoomId"/> 二选一。
/// </summary>
[Newtonsoft.Json.JsonProperty("mra_address")]
[System.Text.Json.Serialization.JsonPropertyName("mra_address")]
public Types.MRA? MRA { get; set; }
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/cancel_call 接口的响应。</para>
/// </summary>
public class CgibinMeetingRoomsCancelCallResponse : WechatWorkResponse
{
}
}

View File

@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/get_config 接口的请求。</para>
/// </summary>
public class CgibinMeetingRoomsGetConfigRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置会议室 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_id")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")]
public string MeetingRoomId { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,80 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/get_config 接口的响应。</para>
/// </summary>
public class CgibinMeetingRoomsGetConfigResponse : WechatWorkResponse
{
public static class Types
{
public class MeetingSettings
{
/// <summary>
/// 获取或设置水印状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("water_mark")]
[System.Text.Json.Serialization.JsonPropertyName("water_mark")]
public int WatermarkStatus { get; set; }
/// <summary>
/// 获取或设置自动接听状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("auto_response")]
[System.Text.Json.Serialization.JsonPropertyName("auto_response")]
public int AutoResponseStatus { get; set; }
/// <summary>
/// 获取或设置是否开启字幕。
/// </summary>
[Newtonsoft.Json.JsonProperty("caption")]
[System.Text.Json.Serialization.JsonPropertyName("caption")]
public bool EnableCaption { get; set; }
/// <summary>
/// 获取或设置是否开启专属 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("room_pmi")]
[System.Text.Json.Serialization.JsonPropertyName("room_pmi")]
public bool EnableRoomPMI { get; set; }
/// <summary>
/// 获取或设置是否展示消息通知。
/// </summary>
[Newtonsoft.Json.JsonProperty("room_notification")]
[System.Text.Json.Serialization.JsonPropertyName("room_notification")]
public bool EnableRoomNotification { get; set; }
}
public class RecordSettings
{
/// <summary>
/// 获取或设置分享云录制状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("share_record")]
[System.Text.Json.Serialization.JsonPropertyName("share_record")]
public int ShareRecordStatus { get; set; }
/// <summary>
/// 获取或设置是否允许下载云录制。
/// </summary>
[Newtonsoft.Json.JsonProperty("download_record")]
[System.Text.Json.Serialization.JsonPropertyName("download_record")]
public bool AllowDownload { get; set; }
}
}
/// <summary>
/// 获取或设置会议配置信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_settings")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_settings")]
public Types.MeetingSettings MeetingSettings { get; set; } = default!;
/// <summary>
/// 获取或设置录制配置信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("record_settings")]
[System.Text.Json.Serialization.JsonPropertyName("record_settings")]
public Types.RecordSettings RecordSettings { get; set; } = default!;
}
}

View File

@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/get_info 接口的请求。</para>
/// </summary>
public class CgibinMeetingRoomsGetInfoRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置会议室 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_id")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")]
public string MeetingRoomId { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,311 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/get_info 接口的响应。</para>
/// </summary>
public class CgibinMeetingRoomsGetInfoResponse : WechatWorkResponse
{
public static class Types
{
public class BasicInfo
{
/// <summary>
/// 获取或设置 Rooms ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("rooms_id_list")]
[System.Text.Json.Serialization.JsonPropertyName("rooms_id_list")]
public string[] RoomsIdList { get; set; } = default!;
/// <summary>
/// 获取或设置会议室名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_name")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_name")]
public string MeetingRoomName { get; set; } = default!;
/// <summary>
/// 获取或设置城市。
/// </summary>
[Newtonsoft.Json.JsonProperty("city")]
[System.Text.Json.Serialization.JsonPropertyName("city")]
public string City { get; set; } = default!;
/// <summary>
/// 获取或设置建筑。
/// </summary>
[Newtonsoft.Json.JsonProperty("building")]
[System.Text.Json.Serialization.JsonPropertyName("building")]
public string Building { get; set; } = default!;
/// <summary>
/// 获取或设置楼层。
/// </summary>
[Newtonsoft.Json.JsonProperty("floor")]
[System.Text.Json.Serialization.JsonPropertyName("floor")]
public string Floor { get; set; } = default!;
/// <summary>
/// 获取或设置容纳人数。
/// </summary>
[Newtonsoft.Json.JsonProperty("participant_number")]
[System.Text.Json.Serialization.JsonPropertyName("participant_number")]
public int ParticipantNumber { get; set; }
/// <summary>
/// 获取或设置会议室设备。
/// </summary>
[Newtonsoft.Json.JsonProperty("device")]
[System.Text.Json.Serialization.JsonPropertyName("device")]
public string? Device { get; set; }
/// <summary>
/// 获取或设置描述。
/// </summary>
[Newtonsoft.Json.JsonProperty("desc")]
[System.Text.Json.Serialization.JsonPropertyName("desc")]
public string? Description { get; set; }
/// <summary>
/// 获取或设置管理员密码。
/// </summary>
[Newtonsoft.Json.JsonProperty("password")]
[System.Text.Json.Serialization.JsonPropertyName("password")]
public string? Password { get; set; }
}
public class AccountInfo
{
/// <summary>
/// 获取或设置账号类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("account_type")]
[System.Text.Json.Serialization.JsonPropertyName("account_type")]
public int AccountType { get; set; }
/// <summary>
/// 获取或设置有效期限字符串。
/// </summary>
[Newtonsoft.Json.JsonProperty("valid_period")]
[System.Text.Json.Serialization.JsonPropertyName("valid_period")]
public string ValidPeriodString { get; set; } = default!;
}
public class HardwareInfo
{
/// <summary>
/// 获取或设置厂家。
/// </summary>
[Newtonsoft.Json.JsonProperty("factory")]
[System.Text.Json.Serialization.JsonPropertyName("factory")]
public string Factory { get; set; } = default!;
/// <summary>
/// 获取或设置设备型号。
/// </summary>
[Newtonsoft.Json.JsonProperty("device_model")]
[System.Text.Json.Serialization.JsonPropertyName("device_model")]
public string DeviceModel { get; set; } = default!;
/// <summary>
/// 获取或设置设备序列号。
/// </summary>
[Newtonsoft.Json.JsonProperty("sn")]
[System.Text.Json.Serialization.JsonPropertyName("sn")]
public string SerialNumber { get; set; } = default!;
/// <summary>
/// 获取或设置 IP 地址。
/// </summary>
[Newtonsoft.Json.JsonProperty("ip")]
[System.Text.Json.Serialization.JsonPropertyName("ip")]
public string IpAddress { get; set; } = default!;
/// <summary>
/// 获取或设置 MAC 地址。
/// </summary>
[Newtonsoft.Json.JsonProperty("mac")]
[System.Text.Json.Serialization.JsonPropertyName("mac")]
public string MacAddress { get; set; } = default!;
/// <summary>
/// 获取或设置 Rooms 版本。
/// </summary>
[Newtonsoft.Json.JsonProperty("rooms_version")]
[System.Text.Json.Serialization.JsonPropertyName("rooms_version")]
public string RoomsVersion { get; set; } = default!;
/// <summary>
/// 获取或设置固件版本。
/// </summary>
[Newtonsoft.Json.JsonProperty("firmware_version")]
[System.Text.Json.Serialization.JsonPropertyName("firmware_version")]
public string FirmwareVersion { get; set; } = default!;
/// <summary>
/// 获取或设置健康状况。
/// </summary>
[Newtonsoft.Json.JsonProperty("health_status")]
[System.Text.Json.Serialization.JsonPropertyName("health_status")]
public string HealthStatus { get; set; } = default!;
/// <summary>
/// 获取或设置设备系统。
/// </summary>
[Newtonsoft.Json.JsonProperty("system_type")]
[System.Text.Json.Serialization.JsonPropertyName("system_type")]
public string SystemType { get; set; } = default!;
/// <summary>
/// 获取或设置会议室状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_status")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_status")]
public int MeetingRoomStatus { get; set; }
/// <summary>
/// 获取或设置激活时间字符串格式yyyy-MM-dd HH:mm:ss
/// </summary>
[Newtonsoft.Json.JsonProperty("active_time")]
[System.Text.Json.Serialization.JsonPropertyName("active_time")]
public string ActiveTimeString { get; set; } = default!;
/// <summary>
/// 获取或设置 CPU 信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("cpu_info")]
[System.Text.Json.Serialization.JsonPropertyName("cpu_info")]
public string CPUInfo { get; set; } = default!;
/// <summary>
/// 获取或设置 CPU 占用。
/// </summary>
[Newtonsoft.Json.JsonProperty("cpu_usage")]
[System.Text.Json.Serialization.JsonPropertyName("cpu_usage")]
public string CPUUsage { get; set; } = default!;
/// <summary>
/// 获取或设置 GPU 信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("gpu_info")]
[System.Text.Json.Serialization.JsonPropertyName("gpu_info")]
public string GPUInfo { get; set; } = default!;
/// <summary>
/// 获取或设置网络类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("net_type")]
[System.Text.Json.Serialization.JsonPropertyName("net_type")]
public string NetworkType { get; set; } = default!;
/// <summary>
/// 获取或设置内存信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("memory_info")]
[System.Text.Json.Serialization.JsonPropertyName("memory_info")]
public string MemoryInfo { get; set; } = default!;
/// <summary>
/// 获取或设置显示器刷新率。
/// </summary>
[Newtonsoft.Json.JsonProperty("monitor_frequency")]
[System.Text.Json.Serialization.JsonPropertyName("monitor_frequency")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]
public string MonitorFrequency { get; set; } = default!;
/// <summary>
/// 获取或设置摄像头型号。
/// </summary>
[Newtonsoft.Json.JsonProperty("camera_model")]
[System.Text.Json.Serialization.JsonPropertyName("camera_model")]
public string CameraModel { get; set; } = default!;
/// <summary>
/// 获取或设置是否开启视频镜像。
/// </summary>
[Newtonsoft.Json.JsonProperty("enable_video_mirror")]
[System.Text.Json.Serialization.JsonPropertyName("enable_video_mirror")]
public bool EnableVideoMirror { get; set; }
/// <summary>
/// 获取或设置麦克风信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("microphone_info")]
[System.Text.Json.Serialization.JsonPropertyName("microphone_info")]
public string MicrophoneInfo { get; set; } = default!;
/// <summary>
/// 获取或设置扬声器信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("speaker_info")]
[System.Text.Json.Serialization.JsonPropertyName("speaker_info")]
public string SpeakerInfo { get; set; } = default!;
}
public class PMIInfo
{
/// <summary>
/// 获取或设置专属 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("pmi_code")]
[System.Text.Json.Serialization.JsonPropertyName("pmi_code")]
public string PMICode { get; set; } = default!;
/// <summary>
/// 获取或设置入会密码。
/// </summary>
[Newtonsoft.Json.JsonProperty("pmi_pwd")]
[System.Text.Json.Serialization.JsonPropertyName("pmi_pwd")]
public string PMIPassword { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置基本信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("basic_info")]
[System.Text.Json.Serialization.JsonPropertyName("basic_info")]
public Types.BasicInfo BasicInfo { get; set; } = default!;
/// <summary>
/// 获取或设置帐号信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("account_info")]
[System.Text.Json.Serialization.JsonPropertyName("account_info")]
public Types.AccountInfo AccountInfo { get; set; } = default!;
/// <summary>
/// 获取或设置硬件信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("hardware_info")]
[System.Text.Json.Serialization.JsonPropertyName("hardware_info")]
public Types.HardwareInfo HardwareInfo { get; set; } = default!;
/// <summary>
/// 获取或设置 PMI 信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("pmi_info")]
[System.Text.Json.Serialization.JsonPropertyName("pmi_info")]
public Types.PMIInfo PMIInfo { get; set; } = default!;
/// <summary>
/// 获取或设置告警通知状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("monitor_status")]
[System.Text.Json.Serialization.JsonPropertyName("monitor_status")]
public int MonitorStatus { get; set; }
/// <summary>
/// 获取或设置预定状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("scheduled_status")]
[System.Text.Json.Serialization.JsonPropertyName("scheduled_status")]
public int ScheduledStatus { get; set; }
/// <summary>
/// 获取或设置是否允许被呼叫。
/// </summary>
[Newtonsoft.Json.JsonProperty("is_allow_call")]
[System.Text.Json.Serialization.JsonPropertyName("is_allow_call")]
public bool IsAllowCall { get; set; }
}
}

View File

@ -0,0 +1,11 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/get_inventory 接口的请求。</para>
/// </summary>
public class CgibinMeetingRoomsGetInventoryRequest : WechatWorkRequest
{
}
}

View File

@ -0,0 +1,50 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/get_inventory 接口的响应。</para>
/// </summary>
public class CgibinMeetingRoomsGetInventoryResponse : WechatWorkResponse
{
/// <summary>
/// 获取或设置普通设备数。
/// </summary>
[Newtonsoft.Json.JsonProperty("normal_count")]
[System.Text.Json.Serialization.JsonPropertyName("normal_count")]
public int NormalCount { get; set; }
/// <summary>
/// 获取或设置专款设备数。
/// </summary>
[Newtonsoft.Json.JsonProperty("special_count")]
[System.Text.Json.Serialization.JsonPropertyName("special_count")]
public int SpecialCount { get; set; }
/// <summary>
/// 获取或设置普通设备使用数。
/// </summary>
[Newtonsoft.Json.JsonProperty("normal_used_count")]
[System.Text.Json.Serialization.JsonPropertyName("normal_used_count")]
public int NormalUsedCount { get; set; }
/// <summary>
/// 获取或设置专款设备使用数。
/// </summary>
[Newtonsoft.Json.JsonProperty("special_used_count")]
[System.Text.Json.Serialization.JsonPropertyName("special_used_count")]
public int SpecialUsedCount { get; set; }
/// <summary>
/// 获取或设置普通设备过期数。
/// </summary>
[Newtonsoft.Json.JsonProperty("normal_expired_count")]
[System.Text.Json.Serialization.JsonPropertyName("normal_expired_count")]
public int NormalExpiredCount { get; set; }
/// <summary>
/// 获取或设置专款设备过期数。
/// </summary>
[Newtonsoft.Json.JsonProperty("special_expired_count")]
[System.Text.Json.Serialization.JsonPropertyName("special_expired_count")]
public int SpecialExpiredCount { get; set; }
}
}

View File

@ -0,0 +1,36 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/get_response_status 接口的请求。</para>
/// </summary>
public class CgibinMeetingRoomsGetResponseStatusRequest : WechatWorkRequest
{
public static class Types
{
public class MRA : CgibinMeetingRoomsCallRequest.Types.MRA
{
}
}
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置会议室 ID。与字段 <see cref="MRA"/> 二选一。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_id")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")]
public string? MeetingRoomId { get; set; }
/// <summary>
/// 获取或设置 MRA 信息。与字段 <see cref="MeetingRoomId"/> 二选一。
/// </summary>
[Newtonsoft.Json.JsonProperty("mra_address")]
[System.Text.Json.Serialization.JsonPropertyName("mra_address")]
public Types.MRA? MRA { get; set; }
}
}

View File

@ -0,0 +1,22 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/get_response_status 接口的响应。</para>
/// </summary>
public class CgibinMeetingRoomsGetResponseStatusResponse : WechatWorkResponse
{
/// <summary>
/// 获取或设置应答状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public int Status { get; set; }
/// <summary>
/// 获取或设置最近一次应答时间字符串格式yyyy/MM/dd HH:mm:ss
/// </summary>
[Newtonsoft.Json.JsonProperty("response_time")]
[System.Text.Json.Serialization.JsonPropertyName("response_time")]
public string LastResponseTimeString { get; set; } = default!;
}
}

View File

@ -0,0 +1,29 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/list_controllers 接口的请求。</para>
/// </summary>
public class CgibinMeetingRoomsListControllersRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置控制器名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("controller_name")]
[System.Text.Json.Serialization.JsonPropertyName("controller_name")]
public string? ControllerName { get; set; }
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("cursor")]
[System.Text.Json.Serialization.JsonPropertyName("cursor")]
public string? Cursor { get; set; }
/// <summary>
/// 获取或设置分页每页数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("limit")]
[System.Text.Json.Serialization.JsonPropertyName("limit")]
public int? Limit { get; set; }
}
}

View File

@ -0,0 +1,168 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/list_controllers 接口的响应。</para>
/// </summary>
public class CgibinMeetingRoomsListControllersResponse : WechatWorkResponse
{
public static class Types
{
public class Controller
{
public static class Types
{
public class MonitorInfo
{
/// <summary>
/// 获取或设置摄像头状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("camera_status")]
[System.Text.Json.Serialization.JsonPropertyName("camera_status")]
public bool CameraStatus { get; set; }
/// <summary>
/// 获取或设置麦克风状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("microphone_status")]
[System.Text.Json.Serialization.JsonPropertyName("microphone_status")]
public bool MicrophoneStatus { get; set; }
/// <summary>
/// 获取或设置扬声器状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("speaker_status")]
[System.Text.Json.Serialization.JsonPropertyName("speaker_status")]
public bool SpeakerStatus { get; set; }
}
}
/// <summary>
/// 获取或设置 Rooms ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("rooms_id")]
[System.Text.Json.Serialization.JsonPropertyName("rooms_id")]
public string RoomsId { get; set; } = default!;
/// <summary>
/// 获取或设置会议室名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_name")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_name")]
public string MeetingRoomName { get; set; } = default!;
/// <summary>
/// 获取或设置会议室地址。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_location")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_location")]
public string MeetingRoomLocation { get; set; } = default!;
/// <summary>
/// 获取或设置厂商名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("manufacture_name")]
[System.Text.Json.Serialization.JsonPropertyName("manufacture_name")]
public string ManufactureName { get; set; } = default!;
/// <summary>
/// 获取或设置控制器名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("controller_name")]
[System.Text.Json.Serialization.JsonPropertyName("controller_name")]
public string ControllerName { get; set; } = default!;
/// <summary>
/// 获取或设置控制器型号。
/// </summary>
[Newtonsoft.Json.JsonProperty("controller_model")]
[System.Text.Json.Serialization.JsonPropertyName("controller_model")]
public string ControllerModel { get; set; } = default!;
/// <summary>
/// 获取或设置应用版本。
/// </summary>
[Newtonsoft.Json.JsonProperty("app_version")]
[System.Text.Json.Serialization.JsonPropertyName("app_version")]
public string AppVersion { get; set; } = default!;
/// <summary>
/// 获取或设置固件版本。
/// </summary>
[Newtonsoft.Json.JsonProperty("framework_version")]
[System.Text.Json.Serialization.JsonPropertyName("framework_version")]
public string FrameworkVersion { get; set; } = default!;
/// <summary>
/// 获取或设置设备状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]
public string ControllerStatus { get; set; } = default!;
/// <summary>
/// 获取或设置 IP 地址。
/// </summary>
[Newtonsoft.Json.JsonProperty("ip_address")]
[System.Text.Json.Serialization.JsonPropertyName("ip_address")]
public string IpAddress { get; set; } = default!;
/// <summary>
/// 获取或设置 MAC 地址。
/// </summary>
[Newtonsoft.Json.JsonProperty("mac_address")]
[System.Text.Json.Serialization.JsonPropertyName("mac_address")]
public string MacAddress { get; set; } = default!;
/// <summary>
/// 获取或设置 CPU 类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("cpu_type")]
[System.Text.Json.Serialization.JsonPropertyName("cpu_type")]
public string CPUType { get; set; } = default!;
/// <summary>
/// 获取或设置 CPU 占用。
/// </summary>
[Newtonsoft.Json.JsonProperty("cpu_usage")]
[System.Text.Json.Serialization.JsonPropertyName("cpu_usage")]
public string CPUUsage { get; set; } = default!;
/// <summary>
/// 获取或设置网络类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("network_type")]
[System.Text.Json.Serialization.JsonPropertyName("network_type")]
public string NetworkType { get; set; } = default!;
/// <summary>
/// 获取或设置内存占用。
/// </summary>
[Newtonsoft.Json.JsonProperty("mem_usage")]
[System.Text.Json.Serialization.JsonPropertyName("mem_usage")]
public string MemoryUsage { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置控制器列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("controller_info_list")]
[System.Text.Json.Serialization.JsonPropertyName("controller_info_list")]
public Types.Controller[] ControllerList { get; set; } = default!;
/// <summary>
/// 获取或设置是否还有更多。
/// </summary>
[Newtonsoft.Json.JsonProperty("has_more")]
[System.Text.Json.Serialization.JsonPropertyName("has_more")]
public bool HasMore { get; set; }
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("next_cursor")]
[System.Text.Json.Serialization.JsonPropertyName("next_cursor")]
public string? NextCursor { get; set; }
}
}

View File

@ -0,0 +1,29 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/list_devices 接口的请求。</para>
/// </summary>
public class CgibinMeetingRoomsListDevicesRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置会议室名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_name")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_name")]
public string? MeetingRoomName { get; set; }
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("cursor")]
[System.Text.Json.Serialization.JsonPropertyName("cursor")]
public string? Cursor { get; set; }
/// <summary>
/// 获取或设置分页每页数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("limit")]
[System.Text.Json.Serialization.JsonPropertyName("limit")]
public int? Limit { get; set; }
}
}

View File

@ -0,0 +1,118 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/list_devices 接口的响应。</para>
/// </summary>
public class CgibinMeetingRoomsListDevicesResponse : WechatWorkResponse
{
public static class Types
{
public class Device
{
public static class Types
{
public class MonitorInfo
{
/// <summary>
/// 获取或设置摄像头状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("camera_status")]
[System.Text.Json.Serialization.JsonPropertyName("camera_status")]
public bool CameraStatus { get; set; }
/// <summary>
/// 获取或设置麦克风状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("microphone_status")]
[System.Text.Json.Serialization.JsonPropertyName("microphone_status")]
public bool MicrophoneStatus { get; set; }
/// <summary>
/// 获取或设置扬声器状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("speaker_status")]
[System.Text.Json.Serialization.JsonPropertyName("speaker_status")]
public bool SpeakerStatus { get; set; }
}
}
/// <summary>
/// 获取或设置 Rooms ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("rooms_id")]
[System.Text.Json.Serialization.JsonPropertyName("rooms_id")]
public string RoomsId { get; set; } = default!;
/// <summary>
/// 获取或设置会议室 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_id")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")]
public string MeetingRoomId { get; set; } = default!;
/// <summary>
/// 获取或设置会议室名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_name")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_name")]
public string MeetingRoomName { get; set; } = default!;
/// <summary>
/// 获取或设置会议室地址。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_location")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_location")]
public string MeetingRoomLocation { get; set; } = default!;
/// <summary>
/// 获取或设置设备型号。
/// </summary>
[Newtonsoft.Json.JsonProperty("device_model")]
[System.Text.Json.Serialization.JsonPropertyName("device_model")]
public string DeviceModel { get; set; } = default!;
/// <summary>
/// 获取或设置应用版本。
/// </summary>
[Newtonsoft.Json.JsonProperty("app_version")]
[System.Text.Json.Serialization.JsonPropertyName("app_version")]
public string AppVersion { get; set; } = default!;
/// <summary>
/// 获取或设置会议室状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_status")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_status")]
public int MeetingRoomStatus { get; set; }
/// <summary>
/// 获取或设置设备健康信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("device_monitor_info")]
[System.Text.Json.Serialization.JsonPropertyName("device_monitor_info")]
public Types.MonitorInfo MonitorInfo { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置设备列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("device_info_list")]
[System.Text.Json.Serialization.JsonPropertyName("device_info_list")]
public Types.Device[] DeviceList { get; set; } = default!;
/// <summary>
/// 获取或设置是否还有更多。
/// </summary>
[Newtonsoft.Json.JsonProperty("has_more")]
[System.Text.Json.Serialization.JsonPropertyName("has_more")]
public bool HasMore { get; set; }
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("next_cursor")]
[System.Text.Json.Serialization.JsonPropertyName("next_cursor")]
public string? NextCursor { get; set; }
}
}

View File

@ -0,0 +1,50 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/list_meetings 接口的请求。</para>
/// </summary>
public class CgibinMeetingRoomsListMeetingsRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置会议室 ID。与字段 <see cref="RoomsId"/> 二选一。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_id")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")]
public string? MeetingRoomId { get; set; }
/// <summary>
/// 获取或设置 Rooms ID。与字段 <see cref="MeetingRoomId"/> 二选一。
/// </summary>
[Newtonsoft.Json.JsonProperty("rooms_id")]
[System.Text.Json.Serialization.JsonPropertyName("rooms_id")]
public string? RoomsId { get; set; }
/// <summary>
/// 获取或设置查询起始时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("start_time")]
[System.Text.Json.Serialization.JsonPropertyName("start_time")]
public long? StartTimestamp { get; set; }
/// <summary>
/// 获取或设置查询结束时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("end_time")]
[System.Text.Json.Serialization.JsonPropertyName("end_time")]
public long? EndTimestamp { get; set; }
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("cursor")]
[System.Text.Json.Serialization.JsonPropertyName("cursor")]
public string? Cursor { get; set; }
/// <summary>
/// 获取或设置分页每页数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("limit")]
[System.Text.Json.Serialization.JsonPropertyName("limit")]
public int? Limit { get; set; }
}
}

View File

@ -0,0 +1,84 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/list_meetings 接口的响应。</para>
/// </summary>
public class CgibinMeetingRoomsListMeetingsResponse : WechatWorkResponse
{
public static class Types
{
public class Meeting
{
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = default!;
/// <summary>
/// 获取或设置入会码。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_code")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_code")]
public string MeetingCode { get; set; } = default!;
/// <summary>
/// 获取或设置会议主题。
/// </summary>
[Newtonsoft.Json.JsonProperty("subject")]
[System.Text.Json.Serialization.JsonPropertyName("subject")]
public string Subject { get; set; } = default!;
/// <summary>
/// 获取或设置会议类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_type")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_type")]
public int MeetingType { get; set; }
/// <summary>
/// 获取或设置会议状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public string Status { get; set; } = default!;
/// <summary>
/// 获取或设置会议开始时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("start_time")]
[System.Text.Json.Serialization.JsonPropertyName("start_time")]
public long StartTimestamp { get; set; }
/// <summary>
/// 获取或设置会议结束时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("end_time")]
[System.Text.Json.Serialization.JsonPropertyName("end_time")]
public long EndTimestamp { get; set; }
}
}
/// <summary>
/// 获取或设置会议列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_info_list")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_info_list")]
public Types.Meeting[] MeetingList { get; set; } = default!;
/// <summary>
/// 获取或设置是否还有更多。
/// </summary>
[Newtonsoft.Json.JsonProperty("has_more")]
[System.Text.Json.Serialization.JsonPropertyName("has_more")]
public bool HasMore { get; set; }
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("next_cursor")]
[System.Text.Json.Serialization.JsonPropertyName("next_cursor")]
public string? NextCursor { get; set; }
}
}

View File

@ -0,0 +1,29 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/list 接口的请求。</para>
/// </summary>
public class CgibinMeetingRoomsListRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置会议室名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_name")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_name")]
public string? MeetingRoomName { get; set; }
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("cursor")]
[System.Text.Json.Serialization.JsonPropertyName("cursor")]
public string? Cursor { get; set; }
/// <summary>
/// 获取或设置分页每页数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("limit")]
[System.Text.Json.Serialization.JsonPropertyName("limit")]
public int? Limit { get; set; }
}
}

View File

@ -0,0 +1,98 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/list 接口的响应。</para>
/// </summary>
public class CgibinMeetingRoomsListResponse : WechatWorkResponse
{
public static class Types
{
public class MeetingRoom
{
/// <summary>
/// 获取或设置会议室 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_id")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")]
public string MeetingRoomId { get; set; } = default!;
/// <summary>
/// 获取或设置会议室名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_name")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_name")]
public string MeetingRoomName { get; set; } = default!;
/// <summary>
/// 获取或设置会议室地址。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_location")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_location")]
public string MeetingRoomLocation { get; set; } = default!;
/// <summary>
/// 获取或设置账号类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("account_type")]
[System.Text.Json.Serialization.JsonPropertyName("account_type")]
public int AccountType { get; set; }
/// <summary>
/// 获取或设置激活码。
/// </summary>
[Newtonsoft.Json.JsonProperty("active_code")]
[System.Text.Json.Serialization.JsonPropertyName("active_code")]
public string ActiveCode { get; set; } = default!;
/// <summary>
/// 获取或设置容纳人数。
/// </summary>
[Newtonsoft.Json.JsonProperty("participant_number")]
[System.Text.Json.Serialization.JsonPropertyName("participant_number")]
public int ParticipantNumber { get; set; }
/// <summary>
/// 获取或设置会议室状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_status")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_status")]
public int Status { get; set; }
/// <summary>
/// 获取或设置预定状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("scheduled_status")]
[System.Text.Json.Serialization.JsonPropertyName("scheduled_status")]
public int ScheduledStatus { get; set; }
/// <summary>
/// 获取或设置是否允许被呼叫。
/// </summary>
[Newtonsoft.Json.JsonProperty("is_allow_call")]
[System.Text.Json.Serialization.JsonPropertyName("is_allow_call")]
public bool IsAllowCall { get; set; }
}
}
/// <summary>
/// 获取或设置会议室列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_list")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_list")]
public Types.MeetingRoom[] MeetingRoomList { get; set; } = default!;
/// <summary>
/// 获取或设置是否还有更多。
/// </summary>
[Newtonsoft.Json.JsonProperty("has_more")]
[System.Text.Json.Serialization.JsonPropertyName("has_more")]
public bool HasMore { get; set; }
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("next_cursor")]
[System.Text.Json.Serialization.JsonPropertyName("next_cursor")]
public string? NextCursor { get; set; }
}
}

View File

@ -0,0 +1,24 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/release 接口的请求。</para>
/// </summary>
public class CgibinMeetingRoomsReleaseRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置会议室 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_id_list")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_id_list")]
public IList<string> MeetingRoomIdList { get; set; } = new List<string>();
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/release 接口的响应。</para>
/// </summary>
public class CgibinMeetingRoomsReleaseResponse : WechatWorkResponse
{
}
}

View File

@ -0,0 +1,5 @@
{
"meetingid": "MEETINGID",
"meeting_room_id_list": [ "RoomId001", "RoomId002" ],
"subject_visible": true
}

View File

@ -0,0 +1,16 @@
{
"errcode": 0,
"errmsg": "ok",
"meeting_room_list": [
{
"meeting_room_id": "100001",
"meeting_room_name": "会议室测试1",
"meeting_room_location": "广州-大厦-10"
},
{
"meeting_room_id": "100002",
"meeting_room_name": "会议室测试2",
"meeting_room_location": "广州-大厦-11"
}
]
}

View File

@ -0,0 +1,8 @@
{
"meetingid": "MEETINGID",
"meeting_room_id": "ROOMID",
"mra_address": {
"protocol": 2,
"dial_string": "xxx"
}
}

View File

@ -0,0 +1,5 @@
{
"errcode": 0,
"errmsg": "ok",
"invite_id": "INVITEID"
}

View File

@ -0,0 +1,9 @@
{
"meetingid": "MEETINGID",
"invite_id": "INVITEID",
"meeting_room_id": "ROOMID",
"mra_address": {
"protocol": 2,
"dial_string": "xxx"
}
}

View File

@ -0,0 +1,15 @@
{
"errcode": 0,
"errmsg": "ok",
"meeting_settings": {
"water_mark": 2,
"auto_response": 1,
"caption": true,
"room_pmi": true,
"room_notification": true
},
"record_settings": {
"share_record": 0,
"download_record": true
}
}

View File

@ -0,0 +1,51 @@
{
"errcode": 0,
"errmsg": "ok",
"basic_info": {
"rooms_id_list": [
"200115200039985708"
],
"meeting_room_name": "会议室测试1",
"city": "广州",
"building": "大厦",
"floor": "10",
"participant_number": 3,
"device": "ROOMS",
"desc": "aGVsbG8=",
"password": "MzMz"
},
"account_info": {
"account_type": 0,
"valid_period": "-"
},
"hardware_info": {
"factory": "",
"device_model": "",
"sn": "",
"ip": "10.10.10.69",
"mac": "a1:ee:27:c1:8a:1a",
"rooms_version": "2.7.2.420",
"firmware_version": "",
"health_status": "ERROR",
"system_type": "10.13.6",
"meeting_room_status": 1,
"active_time": "2021-03-23 15:37:34",
"cpu_info": "Intel(R) Core(TM) i7-7700K",
"cpu_usage": "",
"gpu_info": "",
"net_type": "ethernet",
"memory_info": "",
"monitor_frequency": 0,
"camera_model": "FaceTime 高清摄像头(内建)",
"enable_video_mirror": true,
"microphone_info": "内建麦克风 ",
"speaker_info": "内建输出"
},
"pmi_info": {
"pmi_code": "12345678",
"pmi_pwd": "XXXXXXX"
},
"monitor_status": 0,
"is_allow_call": true,
"scheduled_status": 1
}

View File

@ -0,0 +1,10 @@
{
"errcode": 0,
"errmsg": "ok",
"normal_count": 10,
"special_count": 2,
"normal_used_count": 2,
"special_used_count": 1,
"normal_expired_count": 0,
"special_expired_count": 0
}

View File

@ -0,0 +1,8 @@
{
"meetingid": "MEETINGID",
"meeting_room_id": "ROOMID",
"mra_address": {
"protocol": 2,
"dial_string": "xxx"
}
}

View File

@ -0,0 +1,6 @@
{
"errcode": 0,
"errmsg": "ok",
"status": 2,
"response_time": "2022/11/22 14:35:26"
}

View File

@ -0,0 +1,5 @@
{
"controller_name": "NAME",
"cursor": "CURSOR",
"limit": 20
}

View File

@ -0,0 +1,25 @@
{
"errcode": 0,
"errmsg": "ok",
"has_more": true,
"next_cursor": "CURSOR",
"controller_info_list": [
{
"rooms_id": "12356",
"meeting_room_name": "会议室测试1",
"meeting_room_location": "广州-大厦-10",
"controller_name": "nxxxxxxeng-test123",
"manufacture_name": "Apple",
"controller_model": "Apple",
"app_version": "x.x.x.x",
"status": "0",
"framework_version": "iOS 15.2.1",
"ip_address": "x.x.x.x",
"mac_address": "x:x:x:x:x:x",
"cpu_type": "ARM64",
"cpu_usage": "1.7",
"network_type": "wifi",
"mem_usage": "3.6GB"
}
]
}

View File

@ -0,0 +1,5 @@
{
"meeting_room_name": "ROOMNAME",
"cursor": "CURSOR",
"limit": 50
}

View File

@ -0,0 +1,22 @@
{
"errcode": 0,
"errmsg": "ok",
"has_more": true,
"next_cursor": "CURSOR",
"device_info_list": [
{
"meeting_room_id": "100001",
"rooms_id": "45613",
"meeting_room_name": "会议室测试1",
"meeting_room_location": "广州-大厦-10",
"device_model": "TT-IP65T",
"app_version": "4.1.6.0",
"meeting_room_status": 1,
"device_monitor_info": {
"camera_status": true,
"microphone_status": true,
"speaker_status": true
}
}
]
}

View File

@ -0,0 +1,8 @@
{
"meeting_room_id": "MEETINGROOMID",
"rooms_id": "ROOMSID",
"start_time": 1679299200,
"end_time": 1679558400,
"cursor": "CURSOR",
"limit": 20
}

View File

@ -0,0 +1,17 @@
{
"errcode": 0,
"errmsg": "ok",
"has_more": true,
"next_cursor": "CURSOR",
"meeting_info_list": [
{
"meetingid": "100001",
"meeting_code": "14512",
"subject": "周会",
"status": "MEETING_STATE_STARTED",
"meeting_type": 0,
"start_time": 1679313600,
"end_time": 1679317200
}
]
}

View File

@ -0,0 +1,5 @@
{
"meeting_room_name": "ROOMNAME",
"cursor": "CURSOR",
"limit": 50
}

View File

@ -0,0 +1,30 @@
{
"errcode": 0,
"errmsg": "ok",
"has_more": true,
"next_cursor": "CURSOR",
"meeting_room_list": [
{
"meeting_room_id": "100001",
"meeting_room_name": "会议室测试1",
"meeting_room_location": "广州-大厦-10",
"account_type": 1,
"active_code": "69MS2PKC",
"participant_number": 12,
"meeting_room_status": 1,
"scheduled_status": 0,
"is_allow_call": true
},
{
"meeting_room_id": "100002",
"meeting_room_name": "会议室测试2",
"meeting_room_location": "广州-大厦-11",
"account_type": 1,
"active_code": "69MS2PKC",
"participant_number": 12,
"meeting_room_status": 1,
"scheduled_status": 0,
"is_allow_call": true
}
]
}

View File

@ -0,0 +1,4 @@
{
"meetingid": "MEETINGID",
"meeting_room_id_list": [ "RoomId001", "RoomId002" ]
}