/**************************************************************
	DO NOT MODIFY THIS FILE
	File is create automatically by
	Hivext WSDL2JS XSL Transformation Utility
**************************************************************/

HNamespace.Define("Security", {

	AccessControlService : HClass.Define("Security.AccessControlService", { extend : HWebService.Provider, props : {

		construct : function() {},

		ConstructClient : function() {
			var oClient = new this.AccessControlPortType;
			oClient.oServiceBind = new this.AccessControlBinding;
			return oClient;
		},

		AccessControlPort : HClass.Define("AccessControlPort", { extend : HRest.Client, props : {
			sNamespace : "http://api.hivext.ru/1.0/security/accesscontrol/cross/",
			sLocation : "http://api.hivext.ru/1.0/security/accesscontrol/cross/",
			construct : function() {}
		}}),

		AccessControlBinding : HClass.Define("AccessControlBinding", { extend : AccessControlPort, props : {
			aOperationLocation : {
				CreateRole : "createrole",
				DeleteRole : "deleterole",
				GetRoles : "getroles",
				AddPolicy : "addpolicy",
				RemovePolicy : "removepolicy",
				GetPolicy : "getpolicy",
				ApplyRole : "applyrole",
				RemoveRole : "removerole",
				GetRolesBySubject : "getrolesbysubject",
				GetSubjectsByRole : "getsubjectsbyrole",
				GetRolesByObject : "getrolesbyobject",
				GetObjectsByRole : "getobjectsbyrole",
				SetRights : "setrights",
				GetRights : "getrights",
				GetRightsBySubject : "getrightsbysubject",
				GetRightsByObject : "getrightsbyobject",
				RemoveRights : "removerights",
				RemoveRightsBySubject : "removerightsbysubject",
				RemoveRightsByObject : "removerightsbyobject",
				CheckRights : "checkrights"
			},

			construct : function() {}

		}}),

		AccessControlPortType : HClass.Define("AccessControlPortType", { props : {
			oServiceBind : null,

			construct : function() {},

    		CreateRoleInput : {
				appid : "string",
				session : "string",
				role : "string"
			},

    		CreateRoleOutput : {
				result : "int",
				error : "string"
			},

    		DeleteRoleInput : {
				appid : "string",
				session : "string",
				role : "string"
			},

    		DeleteRoleOutput : {
				result : "int",
				error : "string"
			},

    		GetRolesInput : {
				appid : "string",
				session : "string"
			},

    		GetRolesOutput : {
				result : "int",
				error : "string",
				roles : "array"
			},

    		AddPolicyInput : {
				appid : "string",
				session : "string",
				role : "string",
				object : "string",
				rights : "string"
			},

    		AddPolicyOutput : {
				result : "int",
				error : "string"
			},

    		RemovePolicyInput : {
				appid : "string",
				session : "string",
				role : "string",
				object : "string"
			},

    		RemovePolicyOutput : {
				result : "int",
				error : "string"
			},

    		GetPolicyInput : {
				appid : "string",
				session : "string",
				role : "string",
				object : "string"
			},

    		GetPolicyOutput : {
				result : "int",
				error : "string"
			},

    		ApplyRoleInput : {
				appid : "string",
				session : "string",
				role : "string",
				subject : "string"
			},

    		ApplyRoleOutput : {
				result : "int",
				error : "string"
			},

    		RemoveRoleInput : {
				appid : "string",
				session : "string",
				role : "string",
				subject : "string"
			},

    		RemoveRoleOutput : {
				result : "int",
				error : "string"
			},

    		GetRolesBySubjectInput : {
				appid : "string",
				session : "string",
				subject : "string"
			},

    		GetRolesBySubjectOutput : {
				result : "int",
				error : "string",
				roles : "array"
			},

    		GetSubjectsByRoleInput : {
				appid : "string",
				session : "string",
				role : "string"
			},

    		GetSubjectsByRoleOutput : {
				result : "int",
				error : "string",
				subjects : "array"
			},

    		GetRolesByObjectInput : {
				appid : "string",
				session : "string",
				object : "string"
			},

    		GetRolesByObjectOutput : {
				result : "int",
				error : "string",
				roles : "array"
			},

    		GetObjectsByRoleInput : {
				appid : "string",
				session : "string",
				role : "string"
			},

    		GetObjectsByRoleOutput : {
				result : "int",
				error : "string",
				objects : "array"
			},

			SetRightsInput : {
				appid : "string",
				session : "string",
				subject : "string",
				object : "string",
				rights : "string"
			},
 
			SetRightsOutput : {
				result : "int",
				error : "string"
			},

			GetRightsInput : {
				appid : "string",
				session : "string",
				subject : "string",
				object : "string"
			},

			GetRightsOutput : {
				result : "int",
				error : "string",
				rights : "string"
			},

			GetRightsBySubjectInput : {
				appid : "string",
				session : "string",
				subject : "string"
			},

			GetRightsBySubjectOutput : {
				result : "int",
				error : "string",
				rights : "string"
			},

			GetRightsByObjectInput : {
				appid : "string",
				session : "string",
				object : "string"
			},

			GetRightsByObjectOutput : {
				result : "int",
				error : "string",
				rights : "string"
			},

			RemoveRightsInput : {
				appid : "string",
				session : "string",
				subject : "string",
				object : "string"
			},

			RemoveRightsOutput : {
				result : "int",
				error : "string"
			},

			RemoveRightsBySubjectInput : {
				appid : "string",
				session : "string",
				subject : "string"
			},

			RemoveRightsBySubjectOutput : {
				result : "int",
				error : "string"
			},

			RemoveRightsByObjectInput : {
				appid : "string",
				session : "string",
				object : "string"
			},

			RemoveRightsByObjectOutput : {
				result : "int",
				error : "string"
			},

			CheckRightsInput : {
				appid : "string",
				session : "string",
				subject : "string",
				object : "string",
				rights : "string"
			},

			CheckRightsOutput : {
				result : "int",
				error : "string",
				right : "boolean"
			},

			CreateRole : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : CreateRole : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("CreateRole");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.CreateRoleInput);	

				// Send request.
				var CreateRoleOutput = this.CreateRoleOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			DeleteRole : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : DeleteRole : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("DeleteRole");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.DeleteRoleInput);	

				// Send request.
				var DeleteRoleOutput = this.DeleteRoleOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			GetRoles : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : GetRoles : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("GetRoles");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.GetRolesInput);	

				// Send request.
				var GetRolesOutput = this.GetRolesOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			AddPolicy : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : AddPolicy : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("AddPolicy");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.AddPolicyInput);	

				// Send request.
				var AddPolicyOutput = this.AddPolicyOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			RemovePolicy : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : RemovePolicy : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("RemovePolicy");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.RemovePolicyInput);	

				// Send request.
				var RemovePolicyOutput = this.RemovePolicyOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			GetPolicy : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : GetPolicy : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("GetPolicy");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.GetPolicyInput);	

				// Send request.
				var GetPolicyOutput = this.GetPolicyOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			ApplyRole : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : ApplyRole : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("ApplyRole");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.ApplyRoleInput);	

				// Send request.
				var ApplyRoleOutput = this.ApplyRoleOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			RemoveRole : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : RemoveRole : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("RemoveRole");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.RemoveRoleInput);	

				// Send request.
				var RemoveRoleOutput = this.RemoveRoleOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			GetRolesBySubject : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : GetRolesBySubject : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("GetRolesBySubject");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.GetRolesBySubjectInput);	

				// Send request.
				var GetRolesBySubjectOutput = this.GetRolesBySubjectOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			GetSubjectsByRole : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : GetSubjectsByRole : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("GetSubjectsByRole");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.GetSubjectsByRoleInput);	

				// Send request.
				var GetSubjectsByRoleOutput = this.GetSubjectsByRoleOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			GetRolesByObject : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : GetRolesByObject : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("GetRolesByObject");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.GetRolesByObjectInput);	

				// Send request.
				var GetRolesByObjectOutput = this.GetRolesByObjectOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			GetObjectsByRole : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : GetObjectsByRole : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("GetObjectsByRole");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.GetObjectsByRoleInput);	

				// Send request.
				var GetObjectsByRoleOutput = this.GetObjectsByRoleOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			SetRights : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : SetRights : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("SetRights");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.SetRightsInput);	

				// Send request.
				var SetRightsOutput = this.SetRightsOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			RemoveRights : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : RemoveRights : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("RemoveRights");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.RemoveRightsInput);	

				// Send request.
				var RemoveRightsOutput = this.RemoveRightsOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			GetRights : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : GetRights : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("GetRights");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.GetRightsInput);	

				// Send request.
				var GetRightsOutput = this.GetRightsOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			GetRightsBySubject : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : GetRightsBySubject : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("GetRightsBySubject");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.GetRightsBySubjectInput);	

				// Send request.
				var GetRightsBySubjectOutput = this.GetRightsBySubjectOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			GetRightsByObject : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : GetRightsByObject : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("GetRightsByObject");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.GetRightsByObjectInput);	

				// Send request.
				var GetRightsByObjectOutput = this.GetRightsByObjectOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			RemoveRightsBySubject : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : RemoveRightsBySubject : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("RemoveRightsBySubject");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.RemoveRightsBySubjectInput);	

				// Send request.
				var RemoveRightsBySubjectOutput = this.RemoveRightsBySubjectOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			RemoveRightsByObject : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : RemoveRightsByObject : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("RemoveRightsByObject");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.RemoveRightsByObjectInput);	

				// Send request.
				var RemoveRightsByObjectOutput = this.RemoveRightsByObjectOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			CheckRights : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : CheckRights : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("CheckRights");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.CheckRightsInput);	

				// Send request.
				var CheckRightsOutput = this.CheckRightsOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			}

		}})

	}})

});

// !!! STATIC LINK !!!
Security.AccessControl = (new Security.AccessControlService).ConstructClient();
// !!! STATIC LINK !!!
