using System; using System.Xml.Serialization; using System.Collections.Generic; using Top.Api.Util; using Top.Api; using Top.Api.DingTalk; namespace DingTalk.Api.Request { /// /// TOP API: dingtalk.oapi.contact.rolevisibility.update /// public class OapiContactRolevisibilityUpdateRequest : BaseDingTalkRequest { /// /// 权限设置列表 /// public string Permissions { get; set; } public List Permissions_ { set { this.Permissions = TopUtils.ObjectToJson(value); } } /// /// 角色id /// public Nullable RoleId { get; set; } #region IDingTalkRequest Members public override string GetApiName() { return "dingtalk.oapi.contact.rolevisibility.update"; } public override string GetApiCallType() { return DingTalkConstants.CALL_TYPE_OAPI; } public override IDictionary GetParameters() { TopDictionary parameters = new TopDictionary(); parameters.Add("permissions", this.Permissions); parameters.Add("role_id", this.RoleId); if (this.otherParams != null) { parameters.AddAll(this.otherParams); } return parameters; } public override void Validate() { RequestValidator.ValidateRequired("permissions", this.Permissions); RequestValidator.ValidateObjectMaxListSize("permissions", this.Permissions, 999); RequestValidator.ValidateRequired("role_id", this.RoleId); } /// /// OpenRolePermissionForContactDomain Data Structure. /// [Serializable] public class OpenRolePermissionForContactDomain : TopObject { /// /// 部门id列表 /// [XmlArray("dept_ids")] [XmlArrayItem("number")] public List DeptIds { get; set; } /// /// 角色id列表 /// [XmlArray("role_ids")] [XmlArrayItem("number")] public List RoleIds { get; set; } /// /// subject规则(1)还是object规则(2) /// [XmlElement("side")] public Nullable Side { get; set; } /// /// permit(1) 还是 deny(2) /// [XmlElement("type")] public Nullable Type { get; set; } /// /// staffid列表 /// [XmlArray("user_ids")] [XmlArrayItem("number")] public List UserIds { get; set; } /// /// 可见性类型: 5. permit_self_node_and_children(仅可见自己所在节点及子节点) 6. permit_self_node_only(仅可见自己所在的节点) 7. permit_self_only(仅可见自己) /// [XmlElement("visibility_type")] public Nullable VisibilityType { get; set; } } #endregion } }