| 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 | 
| { | 
|     /// <summary> | 
|     /// TOP API: dingtalk.oapi.contact.rolevisibility.update | 
|     /// </summary> | 
|     public class OapiContactRolevisibilityUpdateRequest : BaseDingTalkRequest<DingTalk.Api.Response.OapiContactRolevisibilityUpdateResponse> | 
|     { | 
|         /// <summary> | 
|         /// 权限设置列表 | 
|         /// </summary> | 
|         public string Permissions { get; set; } | 
|   | 
|         public List<OpenRolePermissionForContactDomain> Permissions_ { set { this.Permissions = TopUtils.ObjectToJson(value); } }  | 
|   | 
|         /// <summary> | 
|         /// 角色id | 
|         /// </summary> | 
|         public Nullable<long> 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<string, string> 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); | 
|         } | 
|   | 
|     /// <summary> | 
| /// OpenRolePermissionForContactDomain Data Structure. | 
| /// </summary> | 
| [Serializable] | 
|   | 
| public class OpenRolePermissionForContactDomain : TopObject | 
| { | 
|             /// <summary> | 
|             /// 部门id列表 | 
|             /// </summary> | 
|             [XmlArray("dept_ids")] | 
|             [XmlArrayItem("number")] | 
|             public List<string> DeptIds { get; set; } | 
|      | 
|             /// <summary> | 
|             /// 角色id列表 | 
|             /// </summary> | 
|             [XmlArray("role_ids")] | 
|             [XmlArrayItem("number")] | 
|             public List<string> RoleIds { get; set; } | 
|      | 
|             /// <summary> | 
|             /// subject规则(1)还是object规则(2) | 
|             /// </summary> | 
|             [XmlElement("side")] | 
|             public Nullable<long> Side { get; set; } | 
|      | 
|             /// <summary> | 
|             /// permit(1) 还是 deny(2) | 
|             /// </summary> | 
|             [XmlElement("type")] | 
|             public Nullable<long> Type { get; set; } | 
|      | 
|             /// <summary> | 
|             /// staffid列表 | 
|             /// </summary> | 
|             [XmlArray("user_ids")] | 
|             [XmlArrayItem("number")] | 
|             public List<string> UserIds { get; set; } | 
|      | 
|             /// <summary> | 
|             /// 可见性类型: 5. permit_self_node_and_children(仅可见自己所在节点及子节点)     6. permit_self_node_only(仅可见自己所在的节点)    7. permit_self_only(仅可见自己) | 
|             /// </summary> | 
|             [XmlElement("visibility_type")] | 
|             public Nullable<long> VisibilityType { get; set; } | 
| } | 
|   | 
|         #endregion | 
|     } | 
| } |