/**
 *  Auto created by ApiCreator Tool.
 *  SVN Rev: 79835, Author: 32725, Date: 2017-11-10 11:03:30 +0800 
 *  SHOULD NOT MODIFY!
 */
 
#ifndef _LC_OPENAPI_CLIENT_UserAuthList_H_
#define _LC_OPENAPI_CLIENT_UserAuthList_H_

#include "LCOpenApiDefine.h"
#include "LCOpenApiRequest.h"
#include "LCOpenApiResponse.h"

/** DESCRIPTION: 
�桁�������茵�
 */

namespace Dahua{
namespace LCOpenApi{
	using namespace std;
	class UserAuthListRequest : public LCOpenApiRequest
	{
	public:
		class UserAuthListRequestData
		{
		public:
			UserAuthListRequestData();
			~UserAuthListRequestData();
			
		public:
			/** [int]��荀��ョ����紊ф�≧�� */
			int count;
		public:
			/** [long]篁������ID綣�紮��ヨ����ヨ�篁����医�紮��ワ�紂�-1 */
			int64 nextAuthId;
		public:
			/** ����token(userToken��accessToken) */
			string token;
		public:
			/** [cstr]userAuthList */
			#define _STATIC_UserAuthListRequestData_method "userAuthList"
			string method;

		};
	public:
		UserAuthListRequest();
		~UserAuthListRequest();
	public:
		virtual int build();
	public:
		UserAuthListRequestData data;
	};

	
	typedef typename UserAuthListRequest::UserAuthListRequestData UserAuthListRequestData;


	class UserAuthListResponse : public LCOpenApiResponse
	{
	public:
		class UserAuthListResponseData
		{
		public:
			UserAuthListResponseData();
			~UserAuthListResponseData();
			
		public:
			/** define a list with struct of UserAuthListResponseData_AuthorizationsElement */
			class UserAuthListResponseData_AuthorizationsElement : public LCOpenApiBase
			{
			public:
				UserAuthListResponseData_AuthorizationsElement();
				~UserAuthListResponseData_AuthorizationsElement();
			public:
				/** define a list with struct of UserAuthListResponseData_AuthorizationsElement_Role */
				class UserAuthListResponseData_AuthorizationsElement_Role : public LCOpenApiBase
				{
				public:
					UserAuthListResponseData_AuthorizationsElement_Role();
					~UserAuthListResponseData_AuthorizationsElement_Role();
				public:
					/** [long]茹���Id */
					int64 roleId;
				public:
					/** 茹��峨��腱� */
					string roleName;
				public:
					/** ������茵� */
					string authFunctions;
				};
			public:
				UserAuthListResponseData_AuthorizationsElement_Role* role;
			public:
				/** [long]����Id */
				int64 authId;
			public:
				/** ���阪� */
				string phoneNumber;
			public:
				/** ������霡� */
				string authName;
			public:
				/** define a list with struct of UserAuthListResponseData_AuthorizationsElement_AuthDevicesElement */
				class UserAuthListResponseData_AuthorizationsElement_AuthDevicesElement : public LCOpenApiBase
				{
				public:
					UserAuthListResponseData_AuthorizationsElement_AuthDevicesElement();
					~UserAuthListResponseData_AuthorizationsElement_AuthDevicesElement();
				public:
					/** ����ID */
					string channelId;
				public:
					/** ������腱� */
					string channelName;
				public:
					/** 莅上�ID */
					string deviceId;
				};
			public:
				LCOpenApiVector<UserAuthListResponseData_AuthorizationsElement_AuthDevicesElement> authDevices;
			};
		public:
			LCOpenApiVector<UserAuthListResponseData_AuthorizationsElement> authorizations;
		public:
			/** 筝�筝�筝����ID */
			string nextAuthId;

		};
	public:
		UserAuthListResponse();
		~UserAuthListResponse();
	public:
		virtual int parse();
	public:
		UserAuthListResponseData data;
	};

	
	typedef typename UserAuthListResponse::UserAuthListResponseData UserAuthListResponseData;
	typedef typename UserAuthListResponse::UserAuthListResponseData::UserAuthListResponseData_AuthorizationsElement UserAuthListResponseData_AuthorizationsElement;
	typedef typename UserAuthListResponse::UserAuthListResponseData::UserAuthListResponseData_AuthorizationsElement::UserAuthListResponseData_AuthorizationsElement_Role UserAuthListResponseData_AuthorizationsElement_Role;
	typedef typename UserAuthListResponse::UserAuthListResponseData::UserAuthListResponseData_AuthorizationsElement::UserAuthListResponseData_AuthorizationsElement_AuthDevicesElement UserAuthListResponseData_AuthorizationsElement_AuthDevicesElement;

}
}

#endif