diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinSecurityExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinSecurityExtensions.cs index 5f12f2ad..0f0a42bc 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinSecurityExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinSecurityExtensions.cs @@ -32,6 +32,146 @@ namespace SKIT.FlurlHttpClient.Wechat.Work return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } + #region TrustDevice + /// + /// 异步调用 [POST] /cgi-bin/security/trustdevice/import 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinSecurityTrustDeviceImportAsync(this WechatWorkClient client, Models.CgibinSecurityTrustDeviceImportRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "security", "trustdevice", "import") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /cgi-bin/security/trustdevice/list 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinSecurityTrustDeviceListAsync(this WechatWorkClient client, Models.CgibinSecurityTrustDeviceListRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "security", "trustdevice", "list") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /cgi-bin/security/trustdevice/get_by_user 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinSecurityTrustDeviceGetByUserAsync(this WechatWorkClient client, Models.CgibinSecurityTrustDeviceGetByUserRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "security", "trustdevice", "get_by_user") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /cgi-bin/security/trustdevice/delete 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinSecurityTrustDeviceDeleteAsync(this WechatWorkClient client, Models.CgibinSecurityTrustDeviceDeleteRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "security", "trustdevice", "delete") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /cgi-bin/security/trustdevice/approve 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinSecurityTrustDeviceApproveAsync(this WechatWorkClient client, Models.CgibinSecurityTrustDeviceApproveRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "security", "trustdevice", "approve") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /cgi-bin/security/trustdevice/reject 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinSecurityTrustDeviceRejectAsync(this WechatWorkClient client, Models.CgibinSecurityTrustDeviceRejectRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "security", "trustdevice", "reject") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + #endregion + #region Vip /// /// 异步调用 [POST] /cgi-bin/security/vip/submit_batch_add_job 接口。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceApproveRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceApproveRequest.cs new file mode 100644 index 00000000..ec6e2671 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceApproveRequest.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/security/trustdevice/approve 接口的请求。 + /// + public class CgibinSecurityTrustDeviceApproveRequest : WechatWorkRequest + { + /// + /// 获取或设置设备唯一标识列表。 + /// + [Newtonsoft.Json.JsonProperty("device_code_list")] + [System.Text.Json.Serialization.JsonPropertyName("device_code_list")] + public IList DeviceCodeList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceApproveResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceApproveResponse.cs new file mode 100644 index 00000000..39b50f3c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceApproveResponse.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/security/trustdevice/approve 接口的响应。 + /// + public class CgibinSecurityTrustDeviceApproveResponse : WechatWorkResponse + { + /// + /// 获取或设置操作成功的设备唯一标识列表。 + /// + [Newtonsoft.Json.JsonProperty("success_list")] + [System.Text.Json.Serialization.JsonPropertyName("success_list")] + public string[]? SucceededDeviceCodeList { get; set; } + + /// + /// 获取或设置操作失败的设备唯一标识列表。 + /// + [Newtonsoft.Json.JsonProperty("fail_list")] + [System.Text.Json.Serialization.JsonPropertyName("fail_list")] + public string[]? FailedDeviceCodeList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceDeleteRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceDeleteRequest.cs new file mode 100644 index 00000000..6212a6e7 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceDeleteRequest.cs @@ -0,0 +1,24 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/security/trustdevice/delete 接口的请求。 + /// + public class CgibinSecurityTrustDeviceDeleteRequest : WechatWorkRequest + { + /// + /// 获取或设置设备类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public int Type { get; set; } + + /// + /// 获取或设置设备唯一标识列表。 + /// + [Newtonsoft.Json.JsonProperty("device_code_list")] + [System.Text.Json.Serialization.JsonPropertyName("device_code_list")] + public IList DeviceCodeList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceDeleteResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceDeleteResponse.cs new file mode 100644 index 00000000..fd2aed42 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceDeleteResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/security/trustdevice/delete 接口的响应。 + /// + public class CgibinSecurityTrustDeviceDeleteResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceGetByUserRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceGetByUserRequest.cs new file mode 100644 index 00000000..92d6e307 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceGetByUserRequest.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/security/trustdevice/get_by_user 接口的请求。 + /// + public class CgibinSecurityTrustDeviceGetByUserRequest : WechatWorkRequest + { + /// + /// 获取或设置设备类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public int Type { get; set; } + + /// + /// 获取或设置最后登录成员账号。 + /// + [Newtonsoft.Json.JsonProperty("last_login_userid")] + [System.Text.Json.Serialization.JsonPropertyName("last_login_userid")] + public string LastLoginUserId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceGetByUserResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceGetByUserResponse.cs new file mode 100644 index 00000000..c3224540 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceGetByUserResponse.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/security/trustdevice/get_by_user 接口的响应。 + /// + public class CgibinSecurityTrustDeviceGetByUserResponse : WechatWorkResponse + { + public static class Types + { + public class Device : CgibinSecurityTrustDeviceListResponse.Types.Device + { + } + } + + /// + /// 获取或设置设备列表。 + /// + [Newtonsoft.Json.JsonProperty("device_list")] + [System.Text.Json.Serialization.JsonPropertyName("device_list")] + public Types.Device[] DeviceList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceImportRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceImportRequest.cs new file mode 100644 index 00000000..569d62ac --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceImportRequest.cs @@ -0,0 +1,72 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/security/trustdevice/import 接口的请求。 + /// + public class CgibinSecurityTrustDeviceImportRequest : WechatWorkRequest + { + public static class Types + { + public class Device + { + /// + /// 获取或设置设备系统。 + /// + [Newtonsoft.Json.JsonProperty("system")] + [System.Text.Json.Serialization.JsonPropertyName("system")] + public string System { get; set; } = string.Empty; + + /// + /// 获取或设置 MAC 地址列表。 + /// + [Newtonsoft.Json.JsonProperty("mac_addr")] + [System.Text.Json.Serialization.JsonPropertyName("mac_addr")] + public IList? MacAddressList { get; set; } + + /// + /// 获取或设置主板 UUID。 + /// + [Newtonsoft.Json.JsonProperty("motherboard_uuid")] + [System.Text.Json.Serialization.JsonPropertyName("motherboard_uuid")] + public string? MotherboardUUID { get; set; } + + /// + /// 获取或设置硬盘 UUID 列表。 + /// + [Newtonsoft.Json.JsonProperty("harddisk_uuid")] + [System.Text.Json.Serialization.JsonPropertyName("harddisk_uuid")] + public IList? HardDistUUIDList { get; set; } + + /// + /// 获取或设置域名。 + /// + [Newtonsoft.Json.JsonProperty("domain")] + [System.Text.Json.Serialization.JsonPropertyName("domain")] + public string? Domain { get; set; } + + /// + /// 获取或设置计算机名。 + /// + [Newtonsoft.Json.JsonProperty("pc_name")] + [System.Text.Json.Serialization.JsonPropertyName("pc_name")] + public string? PCName { get; set; } + + /// + /// 获取或设置序列号。 + /// + [Newtonsoft.Json.JsonProperty("seq_no")] + [System.Text.Json.Serialization.JsonPropertyName("seq_no")] + public string? SequenceNumber { get; set; } + } + } + + /// + /// 获取或设置设备列表。 + /// + [Newtonsoft.Json.JsonProperty("device_list")] + [System.Text.Json.Serialization.JsonPropertyName("device_list")] + public IList DeviceList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceImportResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceImportResponse.cs new file mode 100644 index 00000000..7b63733d --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceImportResponse.cs @@ -0,0 +1,49 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/security/trustdevice/import 接口的响应。 + /// + public class CgibinSecurityTrustDeviceImportResponse : WechatWorkResponse + { + public static class Types + { + public class Result + { + /// + /// 获取或设置导入设备记录的顺序。 + /// + [Newtonsoft.Json.JsonProperty("device_index")] + [System.Text.Json.Serialization.JsonPropertyName("device_index")] + public int DeviceIndex { get; set; } + + /// + /// 获取或设置设备的唯一标识。 + /// + [Newtonsoft.Json.JsonProperty("device_code")] + [System.Text.Json.Serialization.JsonPropertyName("device_code")] + public string? DeviceCode { get; set; } + + /// + /// 获取或设置冲突设备的唯一标识。 + /// + [Newtonsoft.Json.JsonProperty("duplicated_device_code")] + [System.Text.Json.Serialization.JsonPropertyName("duplicated_device_code")] + public string? DuplicatedDeviceCode { get; set; } + + /// + /// 获取或设置导入结果。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + } + } + + /// + /// 获取或设置结果列表。 + /// + [Newtonsoft.Json.JsonProperty("result")] + [System.Text.Json.Serialization.JsonPropertyName("result")] + public Types.Result[] ResultList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceListRequest.cs new file mode 100644 index 00000000..122a829f --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceListRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/security/trustdevice/list 接口的请求。 + /// + public class CgibinSecurityTrustDeviceListRequest : WechatWorkRequest + { + /// + /// 获取或设置设备类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public int Type { get; set; } + + /// + /// 获取或设置分页游标。 + /// + [Newtonsoft.Json.JsonProperty("cursor")] + [System.Text.Json.Serialization.JsonPropertyName("cursor")] + public string? Cursor { get; set; } + + /// + /// 获取或设置分页每页数量。 + /// + [Newtonsoft.Json.JsonProperty("limit")] + [System.Text.Json.Serialization.JsonPropertyName("limit")] + public int? Limit { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceListResponse.cs new file mode 100644 index 00000000..aceef0f7 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceListResponse.cs @@ -0,0 +1,133 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/security/trustdevice/list 接口的响应。 + /// + public class CgibinSecurityTrustDeviceListResponse : WechatWorkResponse + { + public static class Types + { + public class Device + { + /// + /// 获取或设置设备的唯一标识。 + /// + [Newtonsoft.Json.JsonProperty("device_code")] + [System.Text.Json.Serialization.JsonPropertyName("device_code")] + public string DeviceCode { get; set; } = default!; + + /// + /// 获取或设置设备系统。 + /// + [Newtonsoft.Json.JsonProperty("system")] + [System.Text.Json.Serialization.JsonPropertyName("system")] + public string System { get; set; } = default!; + + /// + /// 获取或设置 MAC 地址列表。 + /// + [Newtonsoft.Json.JsonProperty("mac_addr")] + [System.Text.Json.Serialization.JsonPropertyName("mac_addr")] + public string[]? MacAddressList { get; set; } + + /// + /// 获取或设置主板 UUID。 + /// + [Newtonsoft.Json.JsonProperty("motherboard_uuid")] + [System.Text.Json.Serialization.JsonPropertyName("motherboard_uuid")] + public string? MotherboardUUID { get; set; } + + /// + /// 获取或设置硬盘 UUID 列表。 + /// + [Newtonsoft.Json.JsonProperty("harddisk_uuid")] + [System.Text.Json.Serialization.JsonPropertyName("harddisk_uuid")] + public string[]? HarddistUUIDList { get; set; } + + /// + /// 获取或设置域名。 + /// + [Newtonsoft.Json.JsonProperty("domain")] + [System.Text.Json.Serialization.JsonPropertyName("domain")] + public string? Domain { get; set; } + + /// + /// 获取或设置计算机名。 + /// + [Newtonsoft.Json.JsonProperty("pc_name")] + [System.Text.Json.Serialization.JsonPropertyName("pc_name")] + public string? PCName { get; set; } + + /// + /// 获取或设置序列号。 + /// + [Newtonsoft.Json.JsonProperty("seq_no")] + [System.Text.Json.Serialization.JsonPropertyName("seq_no")] + public string? SequenceNumber { get; set; } + + /// + /// 获取或设置最后登录时间戳。 + /// + [Newtonsoft.Json.JsonProperty("last_login_time")] + [System.Text.Json.Serialization.JsonPropertyName("last_login_time")] + public long? LastLoginTimestamp { get; set; } + + /// + /// 获取或设置最后登录成员账号。 + /// + [Newtonsoft.Json.JsonProperty("last_login_userid")] + [System.Text.Json.Serialization.JsonPropertyName("last_login_userid")] + public string? LastLoginUserId { get; set; } + + /// + /// 获取或设置归属确认时间戳。 + /// + [Newtonsoft.Json.JsonProperty("confirm_timestamp")] + [System.Text.Json.Serialization.JsonPropertyName("confirm_timestamp")] + public long? ConfirmTimestamp { get; set; } + + /// + /// 获取或设置归属确认成员账号。 + /// + [Newtonsoft.Json.JsonProperty("confirm_userid")] + [System.Text.Json.Serialization.JsonPropertyName("confirm_userid")] + public string? ConfirmUserId { get; set; } + + /// + /// 获取或设置通过申报的管理员成员账号。 + /// + [Newtonsoft.Json.JsonProperty("approved_userid")] + [System.Text.Json.Serialization.JsonPropertyName("approved_userid")] + public string? ApprovedUserId { get; set; } + + /// + /// 获取或设置设备来源。 + /// + [Newtonsoft.Json.JsonProperty("source")] + [System.Text.Json.Serialization.JsonPropertyName("source")] + public int Source { get; set; } + + /// + /// 获取或设置导入结果。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + } + } + + /// + /// 获取或设置设备列表。 + /// + [Newtonsoft.Json.JsonProperty("device_list")] + [System.Text.Json.Serialization.JsonPropertyName("device_list")] + public Types.Device[] DeviceList { get; set; } = default!; + + /// + /// 获取或设置分页游标。 + /// + [Newtonsoft.Json.JsonProperty("next_cursor")] + [System.Text.Json.Serialization.JsonPropertyName("next_cursor")] + public string? NextCursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceRejectRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceRejectRequest.cs new file mode 100644 index 00000000..616124c5 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceRejectRequest.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/security/trustdevice/reject 接口的请求。 + /// + public class CgibinSecurityTrustDeviceRejectRequest : CgibinSecurityTrustDeviceApproveRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceRejectResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceRejectResponse.cs new file mode 100644 index 00000000..6fe0a895 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceRejectResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/security/trustdevice/reject 接口的响应。 + /// + public class CgibinSecurityTrustDeviceRejectResponse : CgibinSecurityTrustDeviceApproveResponse + { + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceApproveRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceApproveRequest.json new file mode 100644 index 00000000..2b900d6e --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceApproveRequest.json @@ -0,0 +1,6 @@ +{ + "device_code_list": [ + "49nNtYq", + "rjDTnOh" + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceApproveResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceApproveResponse.json new file mode 100644 index 00000000..7b716fcf --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceApproveResponse.json @@ -0,0 +1,6 @@ +{ + "errcode": 0, + "errmsg": "ok", + "success_list": [ "49nNtYq" ], + "fail_list": [ "rjDTnOh" ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceDeleteRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceDeleteRequest.json new file mode 100644 index 00000000..25a3bd58 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceDeleteRequest.json @@ -0,0 +1,7 @@ +{ + "type": 1, + "device_code_list": [ + "49nNtYq", + "rjDTnOh" + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceGetByUserRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceGetByUserRequest.json new file mode 100644 index 00000000..298206b6 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceGetByUserRequest.json @@ -0,0 +1,4 @@ +{ + "last_login_userid": "zhangsan", + "type": 1 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceGetByUserResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceGetByUserResponse.json new file mode 100644 index 00000000..b200c836 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceGetByUserResponse.json @@ -0,0 +1,36 @@ +{ + "errcode": 0, + "errmsg": "ok", + "device_list": [ + { + "device_code": "49nNtYq", + "system": "Windows", + "mac_addr": [ + "50:81:40:29:33:CA" + ], + "motherboard_uuid": "MB_UUID", + "harddisk_uuid": [ + "HD_UUID1" + ], + "domain": "WINDOWS_DOMAIN", + "pc_name": "PC_001", + "last_login_time": 1681722163, + "last_login_userid": "lisi", + "confirm_timestamp": 1681722163, + "confirm_userid": "lisi", + "approved_userid": "zhangsan", + "source": 3, + "status": 5 + }, + { + "device_code": "rjDTnOh", + "system": "Mac", + "seq_no": "SEQ_NO1", + "mac_addr": [ + "50:81:40:29:33:CA" + ], + "source": 1, + "status": 5 + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceImportRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceImportRequest.json new file mode 100644 index 00000000..ebb0150c --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceImportRequest.json @@ -0,0 +1,25 @@ +{ + "device_list": [ + { + "system": "Windows", + "mac_addr": [ + "50:81:40:29:33:CA", + "36:27:51:DF:6E:80" + ], + "motherboard_uuid": "MB_UUID", + "harddisk_uuid": [ + "HD_UUID1", + "HD_UUID2" + ], + "domain": "WINDOWS_DOMAIN", + "pc_name": "PC_001" + }, + { + "system": "Mac", + "seq_no": "SEQ_NO", + "mac_addr": [ + "81:40:50:29:33:DB" + ] + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceImportResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceImportResponse.json new file mode 100644 index 00000000..1e931370 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceImportResponse.json @@ -0,0 +1,20 @@ +{ + "errcode": 0, + "errmsg": "ok", + "result": [ + { + "device_index": 1, + "device_code": "49nNtYq", + "status": 1 + }, + { + "device_index": 2, + "duplicated_device_code": "49nNtYq", + "status": 2 + }, + { + "device_index": 3, + "status": 3 + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceListRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceListRequest.json new file mode 100644 index 00000000..39d390c2 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceListRequest.json @@ -0,0 +1,5 @@ +{ + "cursor": "CURSOR", + "limit": 100, + "type": 1 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceListResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceListResponse.json new file mode 100644 index 00000000..d91bfcaa --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceListResponse.json @@ -0,0 +1,37 @@ +{ + "errcode": 0, + "errmsg": "ok", + "device_list": [ + { + "device_code": "49nNtYq", + "system": "Windows", + "mac_addr": [ + "50:81:40:29:33:CA" + ], + "motherboard_uuid": "MB_UUID", + "harddisk_uuid": [ + "HD_UUID1" + ], + "domain": "WINDOWS_DOMAIN", + "pc_name": "PC_001", + "last_login_time": 1681722163, + "last_login_userid": "lisi", + "confirm_timestamp": 1681722163, + "confirm_userid": "lisi", + "approved_userid": "zhangsan", + "source": 3, + "status": 5 + }, + { + "device_code": "rjDTnOh", + "system": "Mac", + "seq_no": "SEQ_NO1", + "mac_addr": [ + "50:81:40:29:33:CA" + ], + "source": 1, + "status": 5 + } + ], + "next_cursor": "CURSOR" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceRejectRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceRejectRequest.json new file mode 100644 index 00000000..2b900d6e --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceRejectRequest.json @@ -0,0 +1,6 @@ +{ + "device_code_list": [ + "49nNtYq", + "rjDTnOh" + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceRejectResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceRejectResponse.json new file mode 100644 index 00000000..7b716fcf --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSecurity/TrustDevice/CgibinSecurityTrustDeviceRejectResponse.json @@ -0,0 +1,6 @@ +{ + "errcode": 0, + "errmsg": "ok", + "success_list": [ "49nNtYq" ], + "fail_list": [ "rjDTnOh" ] +}