	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;
		string vcd_vcd_id=26;
	}
	message AllContractedServices{
		repeated ContractedServices contractedService=1;
	}
	message Licenses{
		int32 idlicenses=1;
		string nameLicenses=2;
		string specs=3;
		int32 contracted_services_id=4;
		int32 user_id=5;
		int32 plan_id=6;
		int32 public_id=7;
		int32 org_id=8;
		string namePlan=9;
		int32 service_id=10;
		string nameService=11;
		int32 product_type_id=12;
		string product_name=13;
	}
	message AllLicenses{
		repeated Licenses licenses=1;
	}
	message Requestqueue{
		int32 RequestQueueID=1;
		int32 contracted_services_id=2;
		string resource_specs=3;
		string request_datetime=4;
		string supply_datetime=5;
		string down_datetime=6;
		int32 supply_status_id=7;
		int32 service_status_id=8;
		string error_log=9;
		string identificator=10;
		string name_app=11;
		string status=12;
		int32 port=13;
		int32 user_id=14;
		int32 plan_id=15;
		int32 service_id=16;
		string services_name=17;
		int32 services_product_type_id=18;
	}
	message AllRequestQueue{
		repeated Requestqueue requestqueue=1;
	}
	message fieldvdc{
		int32 id=1;
		string name=2;
		string urn_id=3;
		string subscription_id=4;
		int32 org_id=5;
	}
	message allfieldsvdc{
		repeated fieldvdc fieldvdc=1;
	}
	message statusCatalog{
		int32 StatusCatalogID=1;
		string status=2;
		string status_desc=3;
		int32 id_type=4;
	}
	message allStatusCatalog{
		repeated statusCatalog status_catalog=1;
	}
	message consumptionHistory{
		int32 ConsumptionHistoryID = 1;
		string start_date=2;
		string end_date=3;
		int32 requests_queue_id=4;
		string pod_identificator =5;
	}
	message allConsumptionHistory{
		repeated consumptionHistory consumption_history=1;
	}
	/*request section*/
	message GetProductTypeRequest {		
	}
	message GetServicesByProductTypeRequest {
		int32 IdProductType=1;
	}
	message GetPlansServiceRequest {
		int32 idService=1;
	}
	message GetAllContractedServicesRequest {
		int32 idUser=1;
		int32 idPlan=2;
		int32 contracted_services_id=3;
		int32 vdc_vcd_id=4;
	}
	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{
		string username=2;
		string email=3;
		int32 orgid=4;
	}
	message	GetOrgVCDRequest{
		string name=1;
		int32 org_id=2;
	}
	message SetOrgVCDRequest {
		string name=2;
		string host=3;
		string api_version=4;
	}
	message SetfirewallRequest{
		string ips = 1;
		bool is_segment =2;
	}
	message GetRequestQueueRequest{
		int32 user_id=1;
		int32 services_id=2; 
		int32 contracted_services_id=3;
		int32 plan_id=4;
		int32 service_status_id=5;
		string supply_datetime_start=6;		
		string supply_datetime_end=7;
		string request_datetime_start=8;
		string request_datetime_end=9;
		int32 request_queue_id=10;
	}	
	message SetContractedServicesRequest{
		int32 user_id=1;
		int32 backup_scheduled_id=2; 
		int32 plan_id=3;
		int32 firewall_id=4;
		int32 vdc_vcd_id=5;
	}
	message GetServiceStatusRequest{
		string resources=1;	
	}	
	message GetStatusSupplyRequest{
		string resources=1;
	}
	message GetLicensesRequest{
		int32 idlicenses=1;
		int32 public_id=2;
		int32 org_id=3;
		int32 idService=4;
		int32 contracted_services_id=5;
	}
	message GetGenericInformationRequest{
		string tab_name=1;
		string wcol_name_filter=2;
		string w_param=3;
	}
	message SetUpdateLicensesRequest{
		int32 idlicenses=1;
		string name=2;
		string specs=3;
		int32 id_contracted_services=4;
	}
	message getfieldsvdcRequest{
		int32 vdc_id=1;
		int32 org_id=2;
		string urn_id=3;
	}
	message setfieldsvdcRequest{
		int32 vdc_id=1;	
		string name=2;
		string urn_id=3;
		int32 subscription_id=4;
		int32 org_id=5;
		bool active=6;
	}
	message insertfieldsvdcRequest{
		string name=1;
		string urn_id=2;
		int32 subscription_id=3;
		int32 org_id=4;		
	}
	message GetStatusCatalogRequest{
		int32 status_catalog_id=1;
		int32 id_type=2;
	}
	message SetUpdateRequestQueueRequest{
		int32 request_queue_id=1;
		int32 contracted_services_id=2;
		string resource_specs=3;
		string request_datetime=4;
		string supply_datetime=5;
		string down_datetime=6;
		int32 supply_status_id=7;
		int32 service_status_id=8;
		string error_log=9;
		string identificator=10;
		string name_app=11;
		string status=12;
		int32 port=13;
	}
	message GetConsumptionHistoryRequest{
		int32 consumption_history_id=1;
		int32 request_services_id=2;
		string start_date=3;
		string end_date=4;
	}
	message SetInsertConsumptionHistoryIdentificatorRequest{
		string start_date=1;
		string end_date=2;
		string identificator=3;
		string pod_identificator=4;
	}
	/*response section*/
	message GetProductTypeResponse{
		repeated productType response=1;
	}
	message GetServicesByProductTypeResponse {
		cloudServiceDAO response=1;
	}
	message GetPlansServiceResponse{
		repeated Plan response=1;
	}
	message GetServicesContractedResponse{
		repeated ContractedServices 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{
		repeated Requestqueue response=1;
	}	
	message GetStatusSupplyResponse{
		cloudServiceDAO response=1;
	}	
	message GetServiceStatusResponse{
		cloudServiceDAO response=1;	
	}		
	message SetfirewallResponse{
		cloudServiceDAO response=1;
	}
	message GetLicensesResponse{
		repeated Licenses response=1;
	}
	message GetGenericInformationResponse{
		cloudServiceDAO response=1;
	}
	message SetUpdateLicensesResponse{
		cloudServiceDAO response=1;
	}
	message getfieldsvdcResponse{
		repeated fieldvdc response=1;
	}
	message setfieldsvdcResponse {
		cloudServiceDAO response=1;
	}
	message insertfieldsvdcResponse {
		cloudServiceDAO response=1;
	}
	message GetStatusCatalogResponse{
		repeated statusCatalog response=1;
	}
	message SetUpdateRequestQueueResponse{
		cloudServiceDAO response=1;
	}
	message GetConsumptionHistoryResponse{
		repeated consumptionHistory response=1;
	}
	message SetInsertConsumptionHistoryIdentificatorResponse{
		cloudServiceDAO response=1;
	}

	service servicioDAOService{
		rpc getProductType (GetProductTypeRequest) returns (ProductsType){};
		rpc getPlansService (GetPlansServiceRequest) returns (PlansServices){};
		rpc getServicesAllContracted (GetAllContractedServicesRequest) returns (AllContractedServices){};
		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 (AllRequestQueue){};
		rpc StatusSupplyService (GetStatusSupplyRequest) returns (GetStatusSupplyResponse) {};
		rpc ServiceStatusService (GetServiceStatusRequest) returns (GetServiceStatusResponse) {};
		rpc setfirewallServices (SetfirewallRequest) returns (SetfirewallResponse){};
		rpc GetLicenses (GetLicensesRequest) returns (AllLicenses){};
		rpc getGenericInformation (GetGenericInformationRequest) returns (GetGenericInformationResponse){};
		rpc setUpdateLicenses (SetUpdateLicensesRequest) returns (SetUpdateLicensesResponse){};
		rpc getfieldsvdc (getfieldsvdcRequest) returns (allfieldsvdc){};
		rpc setfieldsvdc (setfieldsvdcRequest) returns (setfieldsvdcResponse){};
		rpc insertfieldsvdc (insertfieldsvdcRequest) returns (insertfieldsvdcResponse){};
		rpc getStatusCatalog (GetStatusCatalogRequest) returns (allStatusCatalog){};
		rpc setUpdateRequestQueue (SetUpdateRequestQueueRequest) returns (SetUpdateRequestQueueResponse){};
		rpc setInsertConsumptionHistoryIdentificator (SetInsertConsumptionHistoryIdentificatorRequest) returns (SetInsertConsumptionHistoryIdentificatorResponse){};
		rpc getConsumptionHistory (GetConsumptionHistoryRequest) returns (allConsumptionHistory){};

	}