	syntax = "proto3";
	package cloudServiceDAO;
	/*fields section*/
	message cloudServiceDAO{	
		string response =1;
	}
	message userVCD{
		int32 userVCDId=1;
		string username=2;
		int32 org_id=3;
		int32 public_id=4;
		string password=5;
	}
	message orgVCD{
		int32 OrgVcdId=1;
		string name=2;
		string host=3;
		string api_version=4;
	}
	message UsersVCD{
		repeated userVCD users=1;
	}
	message orgsVCD{
		repeated orgVCD orgs=1;
	}
	message productType{
		int32 id=1;
		string product_name=2;
		string product_dsc=3;
		bool is_avaible=4;
		string steps=5;
	}
	message ProductsType{
		repeated productType products=1;
	}
	message Plan{
		int32 planId=1;
		string name=2;
		string description=3;
		double price_factor=4;
		string resources=5;
		string model=6;
		int32 service_id=7;
		bool active=8;
	}
	message PlansServices{
		repeated Plan plan=1;
	}
	message ContractedServices{
		int32 servicesID=1;
		string serviceName=2;
		string serviceDescription=3;
		string serviceBasePrice=4;
		string events_ids=5;
		int32 planID=6;
		string planName=7;
		string planDescription=8;
		double priceFactor=9;
		string ips=10;
		string firewallID=11;
		bool isSegment=12;
		int32 requestQueueID=13;
		int32 contractedServicesId=14;
		string resourceSpecs=15;
		string requestDatetime=16;
		string supplyDatetime=17;
		string down_datetime=18;
		int32 supplyStatusId=19;
		int32 serviceStatusId=20;
		string errorLog=21;
		string identificator=22;
		string nameApp=23;
		string status=24;
		string port=25;
	}
	message AllContractedServices{
		repeated ContractedServices contractedService=1;
	}
	/*request section*/
	message GetProductTypeRequest {
		
	}
	message GetServicesByProductTypeRequest {
		int32 IdProductType=1;
	}
	message GetPlansServiceRequest {
		int32 idService=1;
	}
	message GetAllContractedServicesRequest {
		int32 idUser=1;
	}
	message GetIpServiceByIdRequest {
		int32 idFirewall=1;
	} 
	message SetLicensesRequest{
		string specs=1;
		string contracted_services_id=2;
		string name=3;	
	}
	message GetUserVCDRequest{
		string user_name=1;
		int32 public_id=2;
		int32 user_id=3;
		int32 org_id=4;
	}
	message SetUserVCDRequest{
		int32 userid=1;
		string username=2;
		string email=3;
		int32 orgid=4;
	}
	message	GetOrgVCDRequest{
		string name=1;
		int32 org_id=2;
	}
	message SetOrgVCDRequest {
		int32 orgid=1;
		string name=2;
		string host=3;
		string api_version=4;
	}
	message SetfirewallRequest{
		string ips = 1;
		bool is_segment =2;
	}
	message GetRequestQueueRequest{
		string resources_specs=1;
		string request_datetime=2; 
		string name_app=3;
		string identificator=4;
	}	
	message SetContractedServicesRequest{
		int32 user_id=1;
		int32 backup_scheduled_id=2; 
		int32 plan_id=3;
		int32 firewall_id=4;
	}
	message GetServiceStatusRequest{
		string resources=1;	
	}	
	message GetStatusSupplyRequest{
		string resources=1;
	}
	/*response section*/
	message GetProductTypeResponse{
		repeated productType response=1;
	}
	message GetServicesByProductTypeResponse {
		cloudServiceDAO response=1;
	}
	message GetPlansServiceResponse{
		repeated Plan response=1;
	}
	message GetServicesContractedResponse{
		cloudServiceDAO response=1;
	}
	message GetIpServiceByIdResponse{
		cloudServiceDAO response=1;
	}
	message SetLicensesResponse{
		cloudServiceDAO response=1;
	}
	message GetUserVCDResponse{
		repeated userVCD response=1;
	}	
	message SetUserVCDResponse{
		cloudServiceDAO response=1;
	}
	message GetOrgVCDResponse {
		repeated orgVCD response=1;
	}
	message SetOrgVCDResponse{
		cloudServiceDAO response=1;
	}
	message SetContractedServicesResponse{
		cloudServiceDAO response=1;
	}	
	message GetRequestQueueResponse{
		cloudServiceDAO response=1;
	}	
	message GetStatusSupplyResponse{
		cloudServiceDAO response=1;
	}	
	message GetServiceStatusResponse{
		cloudServiceDAO response=1;	
	}		
	message SetfirewallResponse{
		cloudServiceDAO response=1;
	}
	
	service servicioDAOService{
		rpc getProductType (GetProductTypeRequest) returns (ProductsType){};
		rpc getPlansService (GetPlansServiceRequest) returns (PlansServices){};
		rpc getServicesAllContracted (GetAllContractedServicesRequest) returns (GetServicesContractedResponse){};
		rpc getIpServiceById (GetIpServiceByIdRequest) returns (GetIpServiceByIdResponse){};
		rpc getServicesCatalog (GetServicesByProductTypeRequest) returns (GetServicesByProductTypeResponse){};
		rpc setLicensesService (SetLicensesRequest) returns (SetLicensesResponse) {};
		rpc getUserVCD (GetUserVCDRequest) returns (UsersVCD){};
		rpc setUserVCD (SetUserVCDRequest) returns (SetUserVCDResponse){};
		rpc getOrgVCD (GetOrgVCDRequest) returns (orgsVCD) {};
		rpc setOrgVCD (SetOrgVCDRequest) returns (SetOrgVCDResponse){};
		rpc setContractedServicesService (SetContractedServicesRequest) returns (SetContractedServicesResponse){};
		rpc getRequestQueueService (GetRequestQueueRequest) returns (GetRequestQueueResponse){};
		rpc StatusSupplyService (GetStatusSupplyRequest) returns (GetStatusSupplyResponse) {};
		rpc ServiceStatusService (GetServiceStatusRequest) returns (GetServiceStatusResponse) {};
		rpc setfirewallServices (SetfirewallRequest) returns (SetfirewallResponse){};

	}