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
}
}