diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/Uuid.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigActionEnum.java similarity index 81% rename from src/policy/src/main/java/eu/teraflow/policy/context/model/Uuid.java rename to src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigActionEnum.java index 9a429f5acbade01a50efdee4b9e8d36ea1400ae2..6cc8e844182505ed104fae7766c1ea63474c7929 100644 --- a/src/policy/src/main/java/eu/teraflow/policy/context/model/Uuid.java +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigActionEnum.java @@ -16,15 +16,8 @@ package eu.teraflow.policy.context.model; -public class Uuid { - - private String id; - - public Uuid(String id) { - this.id = id; - } - - public String getId() { - return id; - } +public enum ConfigActionEnum { + UNDEFINED, + SET, + DELETE } diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigRule.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigRule.java new file mode 100644 index 0000000000000000000000000000000000000000..906acf1a3ff121584321551de6baf260f0bb7cf3 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigRule.java @@ -0,0 +1,49 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +package eu.teraflow.policy.context.model; + +public class ConfigRule { + + private final ConfigActionEnum action; + private final String resourceKey; + private final String resourceValue; + + public ConfigRule(ConfigActionEnum action, String resourceKey, String resourceValue) { + this.action = action; + this.resourceKey = resourceKey; + this.resourceValue = resourceValue; + } + + public ConfigActionEnum getAction() { + return action; + } + + public String getResourceKey() { + return resourceKey; + } + + public String getResourceValue() { + return resourceValue; + } + + @Override + public String toString() { + return String.format( + "%s:{action:\"%s\", resourceKey:\"%s\", resourceValue:\"%s\"}", + getClass().getSimpleName(), action.toString(), resourceKey, resourceValue); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/Constraint.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/Constraint.java new file mode 100644 index 0000000000000000000000000000000000000000..edc5c0df7b789f97475d934bacb87b47792d2b01 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/Constraint.java @@ -0,0 +1,43 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +package eu.teraflow.policy.context.model; + +public class Constraint { + + private final String constraintType; + private final String constraintValue; + + public Constraint(String constraintType, String constraintValue) { + this.constraintType = constraintType; + this.constraintValue = constraintValue; + } + + public String getConstraintType() { + return constraintType; + } + + public String getConstraintValue() { + return constraintValue; + } + + @Override + public String toString() { + return String.format( + "%s:{constraintType:\"%s\", constraintValue:\"%s\"}", + getClass().getSimpleName(), constraintType, constraintValue); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/EndPointId.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/EndPointId.java new file mode 100644 index 0000000000000000000000000000000000000000..e9a3cbeb074eb166452b94c8b87db5edd17f346c --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/EndPointId.java @@ -0,0 +1,49 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +package eu.teraflow.policy.context.model; + +public class EndPointId { + + private final TopologyId topologyId; + private final String deviceId; + private final String id; + + public EndPointId(TopologyId topologyId, String deviceId, String id) { + this.topologyId = topologyId; + this.deviceId = deviceId; + this.id = id; + } + + public TopologyId getTopologyId() { + return topologyId; + } + + public String getDeviceId() { + return deviceId; + } + + public String getId() { + return id; + } + + @Override + public String toString() { + return String.format( + "%s:{%s, deviceId:\"%s\", id:\"%s\"}", + getClass().getSimpleName(), topologyId, deviceId, id); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/Event.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/Event.java index a9d532e06874b51e9b0283b31f6cdd225b4e4a0b..67da36b5c075134051a56929a39d07579381551a 100644 --- a/src/policy/src/main/java/eu/teraflow/policy/context/model/Event.java +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/Event.java @@ -33,4 +33,11 @@ public class Event { public EventTypeEnum getEventTypeEnum() { return eventType; } + + @Override + public String toString() { + return String.format( + "%s:{timestamp:\"%f\", eventType:\"%s\"}", + getClass().getSimpleName(), timestamp, eventType.toString()); + } } diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/Service.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/Service.java new file mode 100644 index 0000000000000000000000000000000000000000..5441a8cb0439ef6342cd805114ebb1aada27cd42 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/Service.java @@ -0,0 +1,86 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +package eu.teraflow.policy.context.model; + +import java.util.List; +import java.util.stream.Collectors; + +public class Service { + + private final ServiceId serviceId; + private final ServiceTypeEnum serviceType; + private final List<EndPointId> serviceEndPointIds; + private final List<Constraint> serviceConstraints; + private final ServiceStatus serviceStatus; + private final ServiceConfig serviceConfig; + + public Service( + ServiceId serviceId, + ServiceTypeEnum serviceType, + List<EndPointId> serviceEndPointIds, + List<Constraint> serviceConstraints, + ServiceStatus serviceStatus, + ServiceConfig serviceConfig) { + this.serviceId = serviceId; + this.serviceType = serviceType; + this.serviceEndPointIds = serviceEndPointIds; + this.serviceConstraints = serviceConstraints; + this.serviceStatus = serviceStatus; + this.serviceConfig = serviceConfig; + } + + public ServiceId getServiceId() { + return serviceId; + } + + public ServiceTypeEnum getServiceType() { + return serviceType; + } + + public List<EndPointId> getServiceEndPointIds() { + return serviceEndPointIds; + } + + public List<Constraint> getServiceConstraints() { + return serviceConstraints; + } + + public ServiceStatus getServiceStatus() { + return serviceStatus; + } + + public ServiceConfig getServiceConfig() { + return serviceConfig; + } + + @Override + public String toString() { + return String.format( + "%s:{%s, serviceType:\"%s\", [%s], [%s], %s, %s}", + getClass().getSimpleName(), + serviceId, + serviceType.toString(), + toString(serviceEndPointIds), + toString(serviceConstraints), + serviceStatus, + serviceConfig); + } + + private <T> String toString(List<T> list) { + return list.stream().map(T::toString).collect(Collectors.joining(", ")); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/ServiceConfig.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ServiceConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..22c8b3cb6674d4fa7647babb5e2ef8256bd8bd6c --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ServiceConfig.java @@ -0,0 +1,43 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +package eu.teraflow.policy.context.model; + +import java.util.List; +import java.util.stream.Collectors; + +public class ServiceConfig { + + private final List<ConfigRule> configRules; + + public ServiceConfig(List<ConfigRule> configRules) { + this.configRules = configRules; + } + + public List<ConfigRule> getConfigRules() { + return configRules; + } + + @Override + public String toString() { + return String.format( + "%s:{configRules:[%s]}", getClass().getSimpleName(), toString(configRules)); + } + + private <T> String toString(List<T> list) { + return list.stream().map(T::toString).collect(Collectors.joining(", ")); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/ServiceId.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ServiceId.java index e8027d82c843e440384e1018251266330e07b1f2..6229c1de7541dc63e3d9f18706cf33c4b4df57e9 100644 --- a/src/policy/src/main/java/eu/teraflow/policy/context/model/ServiceId.java +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ServiceId.java @@ -18,20 +18,26 @@ package eu.teraflow.policy.context.model; public class ServiceId { - private final ContextId contextId; - private final Uuid serviceUuid; + private final String contextId; + private final String id; - public ServiceId(ContextId contextId, Uuid serviceUuid) { + public ServiceId(String contextId, String id) { this.contextId = contextId; - this.serviceUuid = serviceUuid; + this.id = id; } - public ContextId getContextId() { + public String getContextId() { return contextId; } - public Uuid getServiceUuid() { - return serviceUuid; + public String getId() { + return id; + } + + @Override + public String toString() { + return String.format( + "%s:{contextId:\"%s\", id:\"%s\"}", getClass().getSimpleName(), contextId, id); } } diff --git a/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleId.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ServiceStatus.java similarity index 60% rename from src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleId.java rename to src/policy/src/main/java/eu/teraflow/policy/context/model/ServiceStatus.java index cc95d9e5d6ecd6ff583b68dbed5236eee26e8348..b5466d1f3e3f645584df434d3076fe43f19ed823 100644 --- a/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleId.java +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ServiceStatus.java @@ -14,19 +14,22 @@ * limitations under the License. */ -package eu.teraflow.policy.model; +package eu.teraflow.policy.context.model; -import eu.teraflow.policy.context.model.Uuid; +public class ServiceStatus { -public class PolicyRuleId { + private final ServiceStatusEnum status; - private final Uuid policyRuleId; + public ServiceStatus(ServiceStatusEnum status) { + this.status = status; + } - public PolicyRuleId(Uuid policyRuleId) { - this.policyRuleId = policyRuleId; + public ServiceStatusEnum getServiceStatus() { + return status; } - public Uuid getPolicyRuleId() { - return policyRuleId; + @Override + public String toString() { + return String.format("%s:{serviceStatus:\"%s\"}", getClass().getSimpleName(), status); } } diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/DeviceId.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ServiceStatusEnum.java similarity index 76% rename from src/policy/src/main/java/eu/teraflow/policy/context/model/DeviceId.java rename to src/policy/src/main/java/eu/teraflow/policy/context/model/ServiceStatusEnum.java index 4277bf693ee78de9d15a0c34e2b6e6093a2aedfb..e39e2fa2c8b4e279a355221c0c246e142d38b51e 100644 --- a/src/policy/src/main/java/eu/teraflow/policy/context/model/DeviceId.java +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ServiceStatusEnum.java @@ -16,15 +16,9 @@ package eu.teraflow.policy.context.model; -public class DeviceId { - - private final Uuid deviceId; - - public DeviceId(Uuid deviceId) { - this.deviceId = deviceId; - } - - public Uuid getDeviceId() { - return deviceId; - } +public enum ServiceStatusEnum { + UNDEFINED, + PLANNED, + ACTIVE, + PENDING_REMOVAL } diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/ContextId.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ServiceTypeEnum.java similarity index 76% rename from src/policy/src/main/java/eu/teraflow/policy/context/model/ContextId.java rename to src/policy/src/main/java/eu/teraflow/policy/context/model/ServiceTypeEnum.java index 47bcf543e15c5235dfdd8be076e9352c85ace892..f13a408f987f6e753e801e2ae804a8db8d951f4d 100644 --- a/src/policy/src/main/java/eu/teraflow/policy/context/model/ContextId.java +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ServiceTypeEnum.java @@ -16,15 +16,9 @@ package eu.teraflow.policy.context.model; -public class ContextId { - - private final Uuid contextId; - - public ContextId(Uuid contextId) { - this.contextId = contextId; - } - - public Uuid getContextId() { - return contextId; - } +public enum ServiceTypeEnum { + UNKNOWN, + L3NM, + L2NM, + TAPI_CONNECTIVITY_SERVICE } diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/TopologyId.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/TopologyId.java new file mode 100644 index 0000000000000000000000000000000000000000..95157ba8c6ec6ed3d91886282ef845f59e9f9d91 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/TopologyId.java @@ -0,0 +1,43 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +package eu.teraflow.policy.context.model; + +public class TopologyId { + + private final String contextId; + private final String id; + + public TopologyId(String contextId, String id) { + + this.contextId = contextId; + this.id = id; + } + + public String getContextId() { + return contextId; + } + + public String getId() { + return id; + } + + @Override + public String toString() { + return String.format( + "%s:{contextId:\"%s\", id:\"%s\"}", getClass().getSimpleName(), contextId, id); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleValue.java b/src/policy/src/main/java/eu/teraflow/policy/kpi_sample_types/model/KpiSampleType.java similarity index 67% rename from src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleValue.java rename to src/policy/src/main/java/eu/teraflow/policy/kpi_sample_types/model/KpiSampleType.java index 9a928c4a22158ec2691acc4486ea9acd21ff28f8..1bedde35212383e42c7fabfe832d4bd4df34e99b 100644 --- a/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleValue.java +++ b/src/policy/src/main/java/eu/teraflow/policy/kpi_sample_types/model/KpiSampleType.java @@ -14,17 +14,12 @@ * limitations under the License. */ -package eu.teraflow.policy.model; +package eu.teraflow.policy.kpi_sample_types.model; -public class PolicyRuleValue { - - private final String policyRuleValue; - - public PolicyRuleValue(String policyRuleValue) { - this.policyRuleValue = policyRuleValue; - } - - public String getPolicyRuleValue() { - return policyRuleValue; - } +public enum KpiSampleType { + UNKNOWN, + PACKETS_TRANSMITTED, + PACKETS_RECEIVED, + BYTES_TRANSMITTED, + BYTES_RECEIVED } diff --git a/src/policy/src/main/java/eu/teraflow/policy/model/BooleanOperator.java b/src/policy/src/main/java/eu/teraflow/policy/model/BooleanOperator.java new file mode 100644 index 0000000000000000000000000000000000000000..4de1743d0178d5f61737a2830b49370068156c8f --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/model/BooleanOperator.java @@ -0,0 +1,7 @@ +package eu.teraflow.policy.model; + +public enum BooleanOperator { + POLICYRULE_CONDITION_BOOLEAN_UNDEFINED, + POLICYRULE_CONDITION_BOOLEAN_AND, + POLICYRULE_CONDITION_BOOLEAN_OR +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/model/NumericalOperator.java b/src/policy/src/main/java/eu/teraflow/policy/model/NumericalOperator.java new file mode 100644 index 0000000000000000000000000000000000000000..ccd424a02ba771edc215ee92e7bfc0125a5b5c27 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/model/NumericalOperator.java @@ -0,0 +1,11 @@ +package eu.teraflow.policy.model; + +public enum NumericalOperator { + POLICY_RULE_CONDITION_NUMERICAL_UNDEFINED, + POLICY_RULE_CONDITION_NUMERICAL_EQUAL, + POLICY_RULE_CONDITION_NUMERICAL_NOT_EQUAL, + POLICY_RULE_CONDITION_NUMERICAL_LESS_THAN, + POLICY_RULE_CONDITION_NUMERICAL_LESS_THAN_EQUAL, + POLICY_RULE_CONDITION_NUMERICAL_GREATER_THAN, + POLICY_RULE_CONDITION_NUMERICAL_GREATER_THAN_EQUAL +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRule.java b/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRule.java index 20f78eb817aca50fb0d711bee032deec1a43068e..18dbfa73d396770e71f0e1c864e2440f10b28a55 100644 --- a/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRule.java +++ b/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRule.java @@ -16,40 +16,44 @@ package eu.teraflow.policy.model; -import eu.teraflow.policy.context.model.ContextId; import eu.teraflow.policy.context.model.ServiceId; +import java.util.List; +import java.util.stream.Collectors; public class PolicyRule { - private final PolicyRuleId policyRuleId; + private final String policyRuleId; private final PolicyRuleType policyRuleType; - private final PolicyRulePriority policyRulePriority; - private final PolicyRuleEvent policyRuleEvent; - private final PolicyRuleCondition policyRuleCondition; - private final PolicyRuleAction policyRuleAction; + private final int priority; + private final PolicyRuleEvent event; + private final List<PolicyRuleCondition> policyRuleConditions; + private final BooleanOperator booleanOperator; + private final List<PolicyRuleAction> policyRuleActions; private final ServiceId serviceId; - private final ContextId contextId; + private final List<String> deviceIds; public PolicyRule( - PolicyRuleId policyRuleId, + String policyRuleId, PolicyRuleType policyRuleType, - PolicyRulePriority policyRulePriority, - PolicyRuleEvent policyRuleEvent, - PolicyRuleCondition policyRuleCondition, - PolicyRuleAction policyRuleAction, + int priority, + PolicyRuleEvent event, + List<PolicyRuleCondition> policyRuleConditions, + BooleanOperator booleanOperator, + List<PolicyRuleAction> policyRuleActions, ServiceId serviceId, - ContextId contextId) { + List<String> deviceIds) { this.policyRuleId = policyRuleId; this.policyRuleType = policyRuleType; - this.policyRulePriority = policyRulePriority; - this.policyRuleEvent = policyRuleEvent; - this.policyRuleCondition = policyRuleCondition; - this.policyRuleAction = policyRuleAction; + this.priority = priority; + this.event = event; + this.policyRuleConditions = policyRuleConditions; + this.booleanOperator = booleanOperator; + this.policyRuleActions = policyRuleActions; this.serviceId = serviceId; - this.contextId = contextId; + this.deviceIds = deviceIds; } - public PolicyRuleId getPolicyRuleId() { + public String getPolicyRuleId() { return policyRuleId; } @@ -57,27 +61,51 @@ public class PolicyRule { return policyRuleType; } - public PolicyRulePriority getPolicyRulePriority() { - return policyRulePriority; + public int getPriority() { + return priority; } - public PolicyRuleEvent getPolicyRuleEvent() { - return policyRuleEvent; + public PolicyRuleEvent getEvent() { + return event; } - public PolicyRuleCondition getPolicyRuleCondition() { - return policyRuleCondition; + public List<PolicyRuleCondition> getPolicyRuleConditions() { + return policyRuleConditions; } - public PolicyRuleAction getPolicyRuleAction() { - return policyRuleAction; + public BooleanOperator getBooleanOperator() { + return booleanOperator; + } + + public List<PolicyRuleAction> getPolicyRuleActions() { + return policyRuleActions; } public ServiceId getServiceId() { return serviceId; } - public ContextId getContextId() { - return contextId; + public List<String> getDeviceIds() { + return deviceIds; + } + + @Override + public String toString() { + return String.format( + "%s:{policyRuleId:\"%s\", policyRuleType:\"%s\", priority:%d, %s, [%s], booleanOperator:\"%s\", [%s], %s, [%s]}", + getClass().getSimpleName(), + policyRuleId, + policyRuleType.toString(), + priority, + event, + toString(policyRuleConditions), + booleanOperator.toString(), + toString(policyRuleActions), + serviceId, + toString(deviceIds)); + } + + private <T> String toString(List<T> list) { + return list.stream().map(T::toString).collect(Collectors.joining(", ")); } } diff --git a/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleAction.java b/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleAction.java index 8592262aea9b8a82aaef9a348b7e215958414705..baa19cb8d0016895de9d5eccf5bd0e36d9659b61 100644 --- a/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleAction.java +++ b/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleAction.java @@ -16,22 +16,36 @@ package eu.teraflow.policy.model; +import java.util.List; +import java.util.stream.Collectors; + public class PolicyRuleAction { - private final PolicyRuleVariable policyRuleVariable; - private final PolicyRuleValue policyRuleValue; + private final PolicyRuleActionEnum policyRuleActionEnum; + private final List<String> parameters; + + public PolicyRuleAction(PolicyRuleActionEnum policyRuleActionEnum, List<String> parameters) { - public PolicyRuleAction(PolicyRuleVariable policyRuleVariable, PolicyRuleValue policyRuleValue) { + this.policyRuleActionEnum = policyRuleActionEnum; + this.parameters = parameters; + } + + public PolicyRuleActionEnum getPolicyRuleActionEnum() { + return policyRuleActionEnum; + } - this.policyRuleVariable = policyRuleVariable; - this.policyRuleValue = policyRuleValue; + public List<String> getPolicyRuleActionParameters() { + return parameters; } - public PolicyRuleVariable getPolicyRuleVariable() { - return policyRuleVariable; + @Override + public String toString() { + return String.format( + "%s:{policyRuleActionEnum:\"%s\", [%s]}", + getClass().getSimpleName(), policyRuleActionEnum.toString(), toString(parameters)); } - public PolicyRuleValue getPolicyRuleValue() { - return policyRuleValue; + private <T> String toString(List<T> list) { + return list.stream().map(T::toString).collect(Collectors.joining(", ")); } } diff --git a/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleActionEnum.java b/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleActionEnum.java new file mode 100644 index 0000000000000000000000000000000000000000..317daa02939bfe21c267b758999bae9d20f294af --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleActionEnum.java @@ -0,0 +1,8 @@ +package eu.teraflow.policy.model; + +public enum PolicyRuleActionEnum { + POLICY_RULE_ACTION_NO_ACTION, + POLICY_RULE_ACTION_SET_DEVICE_STATUS, + POLICY_RULE_ACTION_ADD_SERVICE_CONFIGRULE, + POLICY_RULE_ACTION_ADD_SERVICE_CONSTRAINT +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleCondition.java b/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleCondition.java index 22d65124c44be3ba1b93683c009860a6dc223da4..714cc5582cce4ce3e606851acb2f2f2b62614e29 100644 --- a/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleCondition.java +++ b/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleCondition.java @@ -16,23 +16,36 @@ package eu.teraflow.policy.model; +import eu.teraflow.policy.monitoring.model.KpiValue; + public class PolicyRuleCondition { - private final PolicyRuleVariable policyRuleVariable; - private final PolicyRuleValue policyRuleValue; + private final String kpiId; + private final NumericalOperator numericalOperator; + private final KpiValue<?> kpiValue; + + public PolicyRuleCondition(String kpiId, NumericalOperator numericalOperator, KpiValue kpiValue) { + this.kpiId = kpiId; + this.numericalOperator = numericalOperator; + this.kpiValue = kpiValue; + } - public PolicyRuleCondition( - PolicyRuleVariable policyRuleVariable, PolicyRuleValue policyRuleValue) { + public String getKpiId() { + return kpiId; + } - this.policyRuleVariable = policyRuleVariable; - this.policyRuleValue = policyRuleValue; + public NumericalOperator getNumericalOperator() { + return numericalOperator; } - public PolicyRuleVariable getPolicyRuleVariable() { - return policyRuleVariable; + public KpiValue getKpiValue() { + return kpiValue; } - public PolicyRuleValue getPolicyRuleValue() { - return policyRuleValue; + @Override + public String toString() { + return String.format( + "%s:{kpiId:\"%s\", numericalOperator:\"%s\", %s}", + getClass().getSimpleName(), kpiId, numericalOperator.toString(), kpiValue); } } diff --git a/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleEvent.java b/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleEvent.java index 476d1948215f502d7791ca95648e6a2089aa9434..412c6c7183250aae26de75a945bf57164634bc32 100644 --- a/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleEvent.java +++ b/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleEvent.java @@ -29,4 +29,9 @@ public class PolicyRuleEvent { public Event getEvent() { return event; } + + @Override + public String toString() { + return String.format("%s:{%s}", getClass().getSimpleName(), event); + } } diff --git a/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRulePriority.java b/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRulePriority.java deleted file mode 100644 index c85bb9a3657265ca28e195cf4477c9ce6fd43df2..0000000000000000000000000000000000000000 --- a/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRulePriority.java +++ /dev/null @@ -1,30 +0,0 @@ -/* -* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -package eu.teraflow.policy.model; - -public class PolicyRulePriority { - - private final int policyRulePriority; - - public PolicyRulePriority(int policyRulePriority) { - this.policyRulePriority = policyRulePriority; - } - - public int getPolicyRulePriority() { - return policyRulePriority; - } -} diff --git a/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleState.java b/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleState.java index 43b93403073fcc78a614b721bd4a169894322841..38ee0a73b187420cfdd3f0bd7527d5196d7bad9f 100644 --- a/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleState.java +++ b/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleState.java @@ -16,23 +16,28 @@ package eu.teraflow.policy.model; -import eu.teraflow.policy.context.model.Uuid; - public class PolicyRuleState { - private final Uuid policeRuleId; + private final String policeRuleId; private final RuleState ruleState; - public PolicyRuleState(Uuid policeRuleId, RuleState ruleState) { + public PolicyRuleState(String policeRuleId, RuleState ruleState) { this.policeRuleId = policeRuleId; this.ruleState = ruleState; } - public Uuid getPolicyRuleId() { + public String getPolicyRuleId() { return policeRuleId; } public RuleState getRuleState() { return ruleState; } + + @Override + public String toString() { + return String.format( + "%s:{policeRuleId:\"%s\", ruleState:\"%s\"}", + getClass().getSimpleName(), policeRuleId, ruleState); + } } diff --git a/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleType.java b/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleType.java index 6becad243c2ab3d0bbe4cdb3a943fc0ab2ad9bd3..321220176adb7a336870b4845d3883e367c12078 100644 --- a/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleType.java +++ b/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleType.java @@ -17,6 +17,6 @@ package eu.teraflow.policy.model; public enum PolicyRuleType { - DEVICE, - NETWORK + POLICYTYPE_DEVICE, + POLICYTYPE_NETWORK } diff --git a/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleVariable.java b/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleVariable.java deleted file mode 100644 index fa35d270a7cd00ec9772f6d3678d38f67972eea5..0000000000000000000000000000000000000000 --- a/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleVariable.java +++ /dev/null @@ -1,30 +0,0 @@ -/* -* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -package eu.teraflow.policy.model; - -public class PolicyRuleVariable { - - private final String policyRuleVariable; - - public PolicyRuleVariable(String policyRuleVariable) { - this.policyRuleVariable = policyRuleVariable; - } - - public String getPolicyRuleVariable() { - return policyRuleVariable; - } -} diff --git a/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/BooleanKpiValue.java b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/BooleanKpiValue.java new file mode 100644 index 0000000000000000000000000000000000000000..aa2fe96cd4fdd96ea854de03bf7aea794fe4de00 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/BooleanKpiValue.java @@ -0,0 +1,20 @@ +package eu.teraflow.policy.monitoring.model; + +public class BooleanKpiValue implements KpiValue<Boolean> { + + private final boolean value; + + public BooleanKpiValue(boolean value) { + this.value = value; + } + + @Override + public Boolean getValue() { + return this.value; + } + + @Override + public String toString() { + return String.format("%s:{value:\"%b\"}", getClass().getSimpleName(), value); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/FloatKpiValue.java b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/FloatKpiValue.java new file mode 100644 index 0000000000000000000000000000000000000000..d183c9c756f678a08c12669b27e46797eb745b51 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/FloatKpiValue.java @@ -0,0 +1,20 @@ +package eu.teraflow.policy.monitoring.model; + +public class FloatKpiValue implements KpiValue<Float> { + + private final float value; + + public FloatKpiValue(float value) { + this.value = value; + } + + @Override + public Float getValue() { + return this.value; + } + + @Override + public String toString() { + return String.format("%s:{value:\"%f\"}", getClass().getSimpleName(), value); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/IntegerKpiValue.java b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/IntegerKpiValue.java new file mode 100644 index 0000000000000000000000000000000000000000..b7048b188687657d3c6253d71cce32add4b80306 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/IntegerKpiValue.java @@ -0,0 +1,20 @@ +package eu.teraflow.policy.monitoring.model; + +public class IntegerKpiValue implements KpiValue<Integer> { + + private final int value; + + public IntegerKpiValue(int value) { + this.value = value; + } + + @Override + public Integer getValue() { + return this.value; + } + + @Override + public String toString() { + return String.format("%s:{value:\"%d\"}", getClass().getSimpleName(), value); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/Kpi.java b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/Kpi.java new file mode 100644 index 0000000000000000000000000000000000000000..4d84c29d4f32cd2605cf2d20a67b0fa41f801ab1 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/Kpi.java @@ -0,0 +1,49 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +package eu.teraflow.policy.monitoring.model; + +public class Kpi { + + private final String kpiId; + private final String timestamp; + private final String kpiValue; + + public Kpi(String kpiId, String timestamp, String kpiValue) { + this.kpiId = kpiId; + this.timestamp = timestamp; + this.kpiValue = kpiValue; + } + + public String getKpiId() { + return kpiId; + } + + public String getTimestamp() { + return timestamp; + } + + public String getKpiValue() { + return kpiValue; + } + + @Override + public String toString() { + return String.format( + "%s:{kpiId:\"%s\", timeStamp:\"%s\", kpiValue:\"%s\"}", + getClass().getSimpleName(), kpiId, timestamp, kpiValue); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/KpiDescriptor.java b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/KpiDescriptor.java new file mode 100644 index 0000000000000000000000000000000000000000..85e09ce2e6f7ac297657e59c7868fbbd750675b8 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/KpiDescriptor.java @@ -0,0 +1,75 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +package eu.teraflow.policy.monitoring.model; + +import eu.teraflow.policy.context.model.EndPointId; +import eu.teraflow.policy.context.model.ServiceId; +import eu.teraflow.policy.kpi_sample_types.model.KpiSampleType; + +public class KpiDescriptor { + + private final String kpiDescription; + private final KpiSampleType kpiSampleType; + private final String deviceId; + private final EndPointId endPointId; + private final ServiceId serviceId; + + public KpiDescriptor( + String kpiDescription, + KpiSampleType kpiSampleType, + String deviceId, + EndPointId endPointId, + ServiceId serviceId) { + this.kpiDescription = kpiDescription; + this.kpiSampleType = kpiSampleType; + this.deviceId = deviceId; + this.endPointId = endPointId; + this.serviceId = serviceId; + } + + public String getKpiDescription() { + return kpiDescription; + } + + public KpiSampleType getKpiSampleType() { + return kpiSampleType; + } + + public String getDeviceId() { + return deviceId; + } + + public EndPointId getEndPointId() { + return endPointId; + } + + public ServiceId getServiceId() { + return serviceId; + } + + @Override + public String toString() { + return String.format( + "%s:{kpiDescription:\"%s\", kpiSampleType:\"%s\", deviceId:\"%s\", %s, %s}", + getClass().getSimpleName(), + kpiDescription, + kpiSampleType.toString(), + deviceId, + endPointId, + serviceId); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/KpiValue.java b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/KpiValue.java new file mode 100644 index 0000000000000000000000000000000000000000..4313c82698086dcf7b755ca522fbc6f952233423 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/KpiValue.java @@ -0,0 +1,6 @@ +package eu.teraflow.policy.monitoring.model; + +public interface KpiValue<T> { + + public T getValue(); +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/StringKpiValue.java b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/StringKpiValue.java new file mode 100644 index 0000000000000000000000000000000000000000..fade272217208a44f70e0031fbf7c3bc54f1e196 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/StringKpiValue.java @@ -0,0 +1,20 @@ +package eu.teraflow.policy.monitoring.model; + +public class StringKpiValue implements KpiValue<String> { + + private final String value; + + public StringKpiValue(String value) { + this.value = value; + } + + @Override + public String getValue() { + return this.value; + } + + @Override + public String toString() { + return String.format("%s:{value:\"%s\"}", getClass().getSimpleName(), value); + } +} diff --git a/src/policy/src/main/proto/service.proto b/src/policy/src/main/proto/service.proto new file mode 120000 index 0000000000000000000000000000000000000000..5ca543da01298ca25912a534f460d4a7183e3a60 --- /dev/null +++ b/src/policy/src/main/proto/service.proto @@ -0,0 +1 @@ +../../../../../proto/service.proto \ No newline at end of file diff --git a/src/policy/target/generated-sources/grpc/service/MutinyServiceServiceGrpc.java b/src/policy/target/generated-sources/grpc/service/MutinyServiceServiceGrpc.java new file mode 100644 index 0000000000000000000000000000000000000000..8caa9641d654e5b0f3e07635b366684d8ab5f980 --- /dev/null +++ b/src/policy/target/generated-sources/grpc/service/MutinyServiceServiceGrpc.java @@ -0,0 +1,168 @@ +package service; + +import static service.ServiceServiceGrpc.getServiceDescriptor; +import static io.grpc.stub.ServerCalls.asyncUnaryCall; +import static io.grpc.stub.ServerCalls.asyncServerStreamingCall; +import static io.grpc.stub.ServerCalls.asyncClientStreamingCall; +import static io.grpc.stub.ServerCalls.asyncBidiStreamingCall; + +@javax.annotation.Generated( +value = "by Mutiny Grpc generator", +comments = "Source: service.proto") +public final class MutinyServiceServiceGrpc implements io.quarkus.grpc.runtime.MutinyGrpc { + private MutinyServiceServiceGrpc() {} + + public static MutinyServiceServiceStub newMutinyStub(io.grpc.Channel channel) { + return new MutinyServiceServiceStub(channel); + } + + + public static final class MutinyServiceServiceStub extends io.grpc.stub.AbstractStub<MutinyServiceServiceStub> implements io.quarkus.grpc.runtime.MutinyStub { + private ServiceServiceGrpc.ServiceServiceStub delegateStub; + + private MutinyServiceServiceStub(io.grpc.Channel channel) { + super(channel); + delegateStub = ServiceServiceGrpc.newStub(channel); + } + + private MutinyServiceServiceStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + delegateStub = ServiceServiceGrpc.newStub(channel).build(channel, callOptions); + } + + @Override + protected MutinyServiceServiceStub build(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new MutinyServiceServiceStub(channel, callOptions); + } + + + public io.smallrye.mutiny.Uni<context.ContextOuterClass.ServiceId> createService(context.ContextOuterClass.Service request) { + return io.quarkus.grpc.runtime.ClientCalls.oneToOne(request, delegateStub::createService); + } + + + public io.smallrye.mutiny.Uni<context.ContextOuterClass.ServiceId> updateService(context.ContextOuterClass.Service request) { + return io.quarkus.grpc.runtime.ClientCalls.oneToOne(request, delegateStub::updateService); + } + + + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteService(context.ContextOuterClass.ServiceId request) { + return io.quarkus.grpc.runtime.ClientCalls.oneToOne(request, delegateStub::deleteService); + } + + } + + + public static abstract class ServiceServiceImplBase implements io.grpc.BindableService { + + private String compression; + /** + * Set whether the server will try to use a compressed response. + * + * @param compression the compression, e.g {@code gzip} + */ + public ServiceServiceImplBase withCompression(String compression) { + this.compression = compression; + return this; + } + + + + public io.smallrye.mutiny.Uni<context.ContextOuterClass.ServiceId> createService(context.ContextOuterClass.Service request) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + + + public io.smallrye.mutiny.Uni<context.ContextOuterClass.ServiceId> updateService(context.ContextOuterClass.Service request) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + + + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteService(context.ContextOuterClass.ServiceId request) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + + @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() { + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) + .addMethod( + service.ServiceServiceGrpc.getCreateServiceMethod(), + asyncUnaryCall( + new MethodHandlers< + context.ContextOuterClass.Service, + context.ContextOuterClass.ServiceId>( + this, METHODID_CREATE_SERVICE, compression))) + .addMethod( + service.ServiceServiceGrpc.getUpdateServiceMethod(), + asyncUnaryCall( + new MethodHandlers< + context.ContextOuterClass.Service, + context.ContextOuterClass.ServiceId>( + this, METHODID_UPDATE_SERVICE, compression))) + .addMethod( + service.ServiceServiceGrpc.getDeleteServiceMethod(), + asyncUnaryCall( + new MethodHandlers< + context.ContextOuterClass.ServiceId, + context.ContextOuterClass.Empty>( + this, METHODID_DELETE_SERVICE, compression))) + .build(); + } + } + + private static final int METHODID_CREATE_SERVICE = 0; + private static final int METHODID_UPDATE_SERVICE = 1; + private static final int METHODID_DELETE_SERVICE = 2; + + private static final class MethodHandlers<Req, Resp> implements + io.grpc.stub.ServerCalls.UnaryMethod<Req, Resp>, + io.grpc.stub.ServerCalls.ServerStreamingMethod<Req, Resp>, + io.grpc.stub.ServerCalls.ClientStreamingMethod<Req, Resp>, + io.grpc.stub.ServerCalls.BidiStreamingMethod<Req, Resp> { + private final ServiceServiceImplBase serviceImpl; + private final int methodId; + private final String compression; + + MethodHandlers(ServiceServiceImplBase serviceImpl, int methodId, String compression) { + this.serviceImpl = serviceImpl; + this.methodId = methodId; + this.compression = compression; + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public void invoke(Req request, io.grpc.stub.StreamObserver<Resp> responseObserver) { + switch (methodId) { + case METHODID_CREATE_SERVICE: + io.quarkus.grpc.runtime.ServerCalls.oneToOne((context.ContextOuterClass.Service) request, + (io.grpc.stub.StreamObserver<context.ContextOuterClass.ServiceId>) responseObserver, + compression, + serviceImpl::createService); + break; + case METHODID_UPDATE_SERVICE: + io.quarkus.grpc.runtime.ServerCalls.oneToOne((context.ContextOuterClass.Service) request, + (io.grpc.stub.StreamObserver<context.ContextOuterClass.ServiceId>) responseObserver, + compression, + serviceImpl::updateService); + break; + case METHODID_DELETE_SERVICE: + io.quarkus.grpc.runtime.ServerCalls.oneToOne((context.ContextOuterClass.ServiceId) request, + (io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty>) responseObserver, + compression, + serviceImpl::deleteService); + break; + default: + throw new java.lang.AssertionError(); + } + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public io.grpc.stub.StreamObserver<Req> invoke(io.grpc.stub.StreamObserver<Resp> responseObserver) { + switch (methodId) { + default: + throw new java.lang.AssertionError(); + } + } + } + +} \ No newline at end of file diff --git a/src/policy/target/generated-sources/grpc/service/Service.java b/src/policy/target/generated-sources/grpc/service/Service.java new file mode 100644 index 0000000000000000000000000000000000000000..32393a23714ffd1c1aa69d0909a3ffe7bc876146 --- /dev/null +++ b/src/policy/target/generated-sources/grpc/service/Service.java @@ -0,0 +1,42 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: service.proto + +package service; + +public final class Service { + private Service() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\rservice.proto\022\007service\032\rcontext.proto2" + + "\271\001\n\016ServiceService\0227\n\rCreateService\022\020.co" + + "ntext.Service\032\022.context.ServiceId\"\000\0227\n\rU" + + "pdateService\022\020.context.Service\032\022.context" + + ".ServiceId\"\000\0225\n\rDeleteService\022\022.context." + + "ServiceId\032\016.context.Empty\"\000b\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + context.ContextOuterClass.getDescriptor(), + }); + context.ContextOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/policy/target/generated-sources/grpc/service/ServiceService.java b/src/policy/target/generated-sources/grpc/service/ServiceService.java new file mode 100644 index 0000000000000000000000000000000000000000..b51f2353623b201978b84ff8587553a8ef606b51 --- /dev/null +++ b/src/policy/target/generated-sources/grpc/service/ServiceService.java @@ -0,0 +1,20 @@ +package service; + +import io.quarkus.grpc.runtime.MutinyService; + +@javax.annotation.Generated( +value = "by Mutiny Grpc generator", +comments = "Source: service.proto") +public interface ServiceService extends MutinyService { + + + io.smallrye.mutiny.Uni<context.ContextOuterClass.ServiceId> createService(context.ContextOuterClass.Service request); + + io.smallrye.mutiny.Uni<context.ContextOuterClass.ServiceId> updateService(context.ContextOuterClass.Service request); + + io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteService(context.ContextOuterClass.ServiceId request); + + + + +} \ No newline at end of file diff --git a/src/policy/target/generated-sources/grpc/service/ServiceServiceBean.java b/src/policy/target/generated-sources/grpc/service/ServiceServiceBean.java new file mode 100644 index 0000000000000000000000000000000000000000..a4c34aaa82129ae725d7b2ff7abeff7dc6c159cc --- /dev/null +++ b/src/policy/target/generated-sources/grpc/service/ServiceServiceBean.java @@ -0,0 +1,43 @@ +package service; + +import io.grpc.BindableService; +import io.quarkus.grpc.GrpcService; +import io.quarkus.grpc.runtime.MutinyBean; + +@javax.annotation.Generated( +value = "by Mutiny Grpc generator", +comments = "Source: service.proto") +public class ServiceServiceBean extends MutinyServiceServiceGrpc.ServiceServiceImplBase implements BindableService, MutinyBean { + + private final ServiceService delegate; + + ServiceServiceBean(@GrpcService ServiceService delegate) { + this.delegate = delegate; + } + + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.ServiceId> createService(context.ContextOuterClass.Service request) { + try { + return delegate.createService(request); + } catch (UnsupportedOperationException e) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + } + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.ServiceId> updateService(context.ContextOuterClass.Service request) { + try { + return delegate.updateService(request); + } catch (UnsupportedOperationException e) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + } + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteService(context.ContextOuterClass.ServiceId request) { + try { + return delegate.deleteService(request); + } catch (UnsupportedOperationException e) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + } + +} \ No newline at end of file diff --git a/src/policy/target/generated-sources/grpc/service/ServiceServiceClient.java b/src/policy/target/generated-sources/grpc/service/ServiceServiceClient.java new file mode 100644 index 0000000000000000000000000000000000000000..91522d4779a6ee7c85c9589588ea7cc0cba39efc --- /dev/null +++ b/src/policy/target/generated-sources/grpc/service/ServiceServiceClient.java @@ -0,0 +1,36 @@ +package service; + +import java.util.function.BiFunction; + +import io.quarkus.grpc.runtime.MutinyClient; + +@javax.annotation.Generated( +value = "by Mutiny Grpc generator", +comments = "Source: service.proto") +public class ServiceServiceClient implements ServiceService, MutinyClient<MutinyServiceServiceGrpc.MutinyServiceServiceStub> { + + private final MutinyServiceServiceGrpc.MutinyServiceServiceStub stub; + + public ServiceServiceClient(String name, io.grpc.Channel channel, BiFunction<String, MutinyServiceServiceGrpc.MutinyServiceServiceStub, MutinyServiceServiceGrpc.MutinyServiceServiceStub> stubConfigurator) { + this.stub = stubConfigurator.apply(name,MutinyServiceServiceGrpc.newMutinyStub(channel)); + } + + @Override + public MutinyServiceServiceGrpc.MutinyServiceServiceStub getStub() { + return stub; + } + + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.ServiceId> createService(context.ContextOuterClass.Service request) { + return stub.createService(request); + } + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.ServiceId> updateService(context.ContextOuterClass.Service request) { + return stub.updateService(request); + } + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteService(context.ContextOuterClass.ServiceId request) { + return stub.deleteService(request); + } + +} \ No newline at end of file diff --git a/src/policy/target/generated-sources/grpc/service/ServiceServiceGrpc.java b/src/policy/target/generated-sources/grpc/service/ServiceServiceGrpc.java new file mode 100644 index 0000000000000000000000000000000000000000..66419a93bacee7dad02d302044b8024e8ed12154 --- /dev/null +++ b/src/policy/target/generated-sources/grpc/service/ServiceServiceGrpc.java @@ -0,0 +1,423 @@ +package service; + +import static io.grpc.MethodDescriptor.generateFullMethodName; + +/** + */ +@javax.annotation.Generated( + value = "by gRPC proto compiler (version 1.38.1)", + comments = "Source: service.proto") +public final class ServiceServiceGrpc { + + private ServiceServiceGrpc() {} + + public static final String SERVICE_NAME = "service.ServiceService"; + + // Static method descriptors that strictly reflect the proto. + private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.Service, + context.ContextOuterClass.ServiceId> getCreateServiceMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "CreateService", + requestType = context.ContextOuterClass.Service.class, + responseType = context.ContextOuterClass.ServiceId.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor<context.ContextOuterClass.Service, + context.ContextOuterClass.ServiceId> getCreateServiceMethod() { + io.grpc.MethodDescriptor<context.ContextOuterClass.Service, context.ContextOuterClass.ServiceId> getCreateServiceMethod; + if ((getCreateServiceMethod = ServiceServiceGrpc.getCreateServiceMethod) == null) { + synchronized (ServiceServiceGrpc.class) { + if ((getCreateServiceMethod = ServiceServiceGrpc.getCreateServiceMethod) == null) { + ServiceServiceGrpc.getCreateServiceMethod = getCreateServiceMethod = + io.grpc.MethodDescriptor.<context.ContextOuterClass.Service, context.ContextOuterClass.ServiceId>newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "CreateService")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + context.ContextOuterClass.Service.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + context.ContextOuterClass.ServiceId.getDefaultInstance())) + .setSchemaDescriptor(new ServiceServiceMethodDescriptorSupplier("CreateService")) + .build(); + } + } + } + return getCreateServiceMethod; + } + + private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.Service, + context.ContextOuterClass.ServiceId> getUpdateServiceMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "UpdateService", + requestType = context.ContextOuterClass.Service.class, + responseType = context.ContextOuterClass.ServiceId.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor<context.ContextOuterClass.Service, + context.ContextOuterClass.ServiceId> getUpdateServiceMethod() { + io.grpc.MethodDescriptor<context.ContextOuterClass.Service, context.ContextOuterClass.ServiceId> getUpdateServiceMethod; + if ((getUpdateServiceMethod = ServiceServiceGrpc.getUpdateServiceMethod) == null) { + synchronized (ServiceServiceGrpc.class) { + if ((getUpdateServiceMethod = ServiceServiceGrpc.getUpdateServiceMethod) == null) { + ServiceServiceGrpc.getUpdateServiceMethod = getUpdateServiceMethod = + io.grpc.MethodDescriptor.<context.ContextOuterClass.Service, context.ContextOuterClass.ServiceId>newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "UpdateService")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + context.ContextOuterClass.Service.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + context.ContextOuterClass.ServiceId.getDefaultInstance())) + .setSchemaDescriptor(new ServiceServiceMethodDescriptorSupplier("UpdateService")) + .build(); + } + } + } + return getUpdateServiceMethod; + } + + private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.ServiceId, + context.ContextOuterClass.Empty> getDeleteServiceMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "DeleteService", + requestType = context.ContextOuterClass.ServiceId.class, + responseType = context.ContextOuterClass.Empty.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor<context.ContextOuterClass.ServiceId, + context.ContextOuterClass.Empty> getDeleteServiceMethod() { + io.grpc.MethodDescriptor<context.ContextOuterClass.ServiceId, context.ContextOuterClass.Empty> getDeleteServiceMethod; + if ((getDeleteServiceMethod = ServiceServiceGrpc.getDeleteServiceMethod) == null) { + synchronized (ServiceServiceGrpc.class) { + if ((getDeleteServiceMethod = ServiceServiceGrpc.getDeleteServiceMethod) == null) { + ServiceServiceGrpc.getDeleteServiceMethod = getDeleteServiceMethod = + io.grpc.MethodDescriptor.<context.ContextOuterClass.ServiceId, context.ContextOuterClass.Empty>newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "DeleteService")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + context.ContextOuterClass.ServiceId.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + context.ContextOuterClass.Empty.getDefaultInstance())) + .setSchemaDescriptor(new ServiceServiceMethodDescriptorSupplier("DeleteService")) + .build(); + } + } + } + return getDeleteServiceMethod; + } + + /** + * Creates a new async stub that supports all call types for the service + */ + public static ServiceServiceStub newStub(io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory<ServiceServiceStub> factory = + new io.grpc.stub.AbstractStub.StubFactory<ServiceServiceStub>() { + @java.lang.Override + public ServiceServiceStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new ServiceServiceStub(channel, callOptions); + } + }; + return ServiceServiceStub.newStub(factory, channel); + } + + /** + * Creates a new blocking-style stub that supports unary and streaming output calls on the service + */ + public static ServiceServiceBlockingStub newBlockingStub( + io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory<ServiceServiceBlockingStub> factory = + new io.grpc.stub.AbstractStub.StubFactory<ServiceServiceBlockingStub>() { + @java.lang.Override + public ServiceServiceBlockingStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new ServiceServiceBlockingStub(channel, callOptions); + } + }; + return ServiceServiceBlockingStub.newStub(factory, channel); + } + + /** + * Creates a new ListenableFuture-style stub that supports unary calls on the service + */ + public static ServiceServiceFutureStub newFutureStub( + io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory<ServiceServiceFutureStub> factory = + new io.grpc.stub.AbstractStub.StubFactory<ServiceServiceFutureStub>() { + @java.lang.Override + public ServiceServiceFutureStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new ServiceServiceFutureStub(channel, callOptions); + } + }; + return ServiceServiceFutureStub.newStub(factory, channel); + } + + /** + */ + public static abstract class ServiceServiceImplBase implements io.grpc.BindableService { + + /** + */ + public void createService(context.ContextOuterClass.Service request, + io.grpc.stub.StreamObserver<context.ContextOuterClass.ServiceId> responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getCreateServiceMethod(), responseObserver); + } + + /** + */ + public void updateService(context.ContextOuterClass.Service request, + io.grpc.stub.StreamObserver<context.ContextOuterClass.ServiceId> responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getUpdateServiceMethod(), responseObserver); + } + + /** + */ + public void deleteService(context.ContextOuterClass.ServiceId request, + io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getDeleteServiceMethod(), responseObserver); + } + + @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() { + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) + .addMethod( + getCreateServiceMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + context.ContextOuterClass.Service, + context.ContextOuterClass.ServiceId>( + this, METHODID_CREATE_SERVICE))) + .addMethod( + getUpdateServiceMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + context.ContextOuterClass.Service, + context.ContextOuterClass.ServiceId>( + this, METHODID_UPDATE_SERVICE))) + .addMethod( + getDeleteServiceMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + context.ContextOuterClass.ServiceId, + context.ContextOuterClass.Empty>( + this, METHODID_DELETE_SERVICE))) + .build(); + } + } + + /** + */ + public static final class ServiceServiceStub extends io.grpc.stub.AbstractAsyncStub<ServiceServiceStub> { + private ServiceServiceStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected ServiceServiceStub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new ServiceServiceStub(channel, callOptions); + } + + /** + */ + public void createService(context.ContextOuterClass.Service request, + io.grpc.stub.StreamObserver<context.ContextOuterClass.ServiceId> responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getCreateServiceMethod(), getCallOptions()), request, responseObserver); + } + + /** + */ + public void updateService(context.ContextOuterClass.Service request, + io.grpc.stub.StreamObserver<context.ContextOuterClass.ServiceId> responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getUpdateServiceMethod(), getCallOptions()), request, responseObserver); + } + + /** + */ + public void deleteService(context.ContextOuterClass.ServiceId request, + io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getDeleteServiceMethod(), getCallOptions()), request, responseObserver); + } + } + + /** + */ + public static final class ServiceServiceBlockingStub extends io.grpc.stub.AbstractBlockingStub<ServiceServiceBlockingStub> { + private ServiceServiceBlockingStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected ServiceServiceBlockingStub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new ServiceServiceBlockingStub(channel, callOptions); + } + + /** + */ + public context.ContextOuterClass.ServiceId createService(context.ContextOuterClass.Service request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getCreateServiceMethod(), getCallOptions(), request); + } + + /** + */ + public context.ContextOuterClass.ServiceId updateService(context.ContextOuterClass.Service request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getUpdateServiceMethod(), getCallOptions(), request); + } + + /** + */ + public context.ContextOuterClass.Empty deleteService(context.ContextOuterClass.ServiceId request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getDeleteServiceMethod(), getCallOptions(), request); + } + } + + /** + */ + public static final class ServiceServiceFutureStub extends io.grpc.stub.AbstractFutureStub<ServiceServiceFutureStub> { + private ServiceServiceFutureStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected ServiceServiceFutureStub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new ServiceServiceFutureStub(channel, callOptions); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.ServiceId> createService( + context.ContextOuterClass.Service request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getCreateServiceMethod(), getCallOptions()), request); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.ServiceId> updateService( + context.ContextOuterClass.Service request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getUpdateServiceMethod(), getCallOptions()), request); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.Empty> deleteService( + context.ContextOuterClass.ServiceId request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getDeleteServiceMethod(), getCallOptions()), request); + } + } + + private static final int METHODID_CREATE_SERVICE = 0; + private static final int METHODID_UPDATE_SERVICE = 1; + private static final int METHODID_DELETE_SERVICE = 2; + + private static final class MethodHandlers<Req, Resp> implements + io.grpc.stub.ServerCalls.UnaryMethod<Req, Resp>, + io.grpc.stub.ServerCalls.ServerStreamingMethod<Req, Resp>, + io.grpc.stub.ServerCalls.ClientStreamingMethod<Req, Resp>, + io.grpc.stub.ServerCalls.BidiStreamingMethod<Req, Resp> { + private final ServiceServiceImplBase serviceImpl; + private final int methodId; + + MethodHandlers(ServiceServiceImplBase serviceImpl, int methodId) { + this.serviceImpl = serviceImpl; + this.methodId = methodId; + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public void invoke(Req request, io.grpc.stub.StreamObserver<Resp> responseObserver) { + switch (methodId) { + case METHODID_CREATE_SERVICE: + serviceImpl.createService((context.ContextOuterClass.Service) request, + (io.grpc.stub.StreamObserver<context.ContextOuterClass.ServiceId>) responseObserver); + break; + case METHODID_UPDATE_SERVICE: + serviceImpl.updateService((context.ContextOuterClass.Service) request, + (io.grpc.stub.StreamObserver<context.ContextOuterClass.ServiceId>) responseObserver); + break; + case METHODID_DELETE_SERVICE: + serviceImpl.deleteService((context.ContextOuterClass.ServiceId) request, + (io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty>) responseObserver); + break; + default: + throw new AssertionError(); + } + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public io.grpc.stub.StreamObserver<Req> invoke( + io.grpc.stub.StreamObserver<Resp> responseObserver) { + switch (methodId) { + default: + throw new AssertionError(); + } + } + } + + private static abstract class ServiceServiceBaseDescriptorSupplier + implements io.grpc.protobuf.ProtoFileDescriptorSupplier, io.grpc.protobuf.ProtoServiceDescriptorSupplier { + ServiceServiceBaseDescriptorSupplier() {} + + @java.lang.Override + public com.google.protobuf.Descriptors.FileDescriptor getFileDescriptor() { + return service.Service.getDescriptor(); + } + + @java.lang.Override + public com.google.protobuf.Descriptors.ServiceDescriptor getServiceDescriptor() { + return getFileDescriptor().findServiceByName("ServiceService"); + } + } + + private static final class ServiceServiceFileDescriptorSupplier + extends ServiceServiceBaseDescriptorSupplier { + ServiceServiceFileDescriptorSupplier() {} + } + + private static final class ServiceServiceMethodDescriptorSupplier + extends ServiceServiceBaseDescriptorSupplier + implements io.grpc.protobuf.ProtoMethodDescriptorSupplier { + private final String methodName; + + ServiceServiceMethodDescriptorSupplier(String methodName) { + this.methodName = methodName; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.MethodDescriptor getMethodDescriptor() { + return getServiceDescriptor().findMethodByName(methodName); + } + } + + private static volatile io.grpc.ServiceDescriptor serviceDescriptor; + + public static io.grpc.ServiceDescriptor getServiceDescriptor() { + io.grpc.ServiceDescriptor result = serviceDescriptor; + if (result == null) { + synchronized (ServiceServiceGrpc.class) { + result = serviceDescriptor; + if (result == null) { + serviceDescriptor = result = io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME) + .setSchemaDescriptor(new ServiceServiceFileDescriptorSupplier()) + .addMethod(getCreateServiceMethod()) + .addMethod(getUpdateServiceMethod()) + .addMethod(getDeleteServiceMethod()) + .build(); + } + } + } + return result; + } +}