X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=policy-agent%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fpolicyagent%2Fclients%2FA1Client.java;h=f94c2c1e1e5e420985aceca18156c1621eb32ae7;hb=0316038265be758ae8b1bce006b5fd017185c55d;hp=bc6d7cdaa6729030149751b65af180660f78d845;hpb=637540bc28fbf337e0c4c58c051a6b4f7ceb321d;p=nonrtric.git diff --git a/policy-agent/src/main/java/org/oransc/policyagent/clients/A1Client.java b/policy-agent/src/main/java/org/oransc/policyagent/clients/A1Client.java index bc6d7cda..f94c2c1e 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/clients/A1Client.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/clients/A1Client.java @@ -20,20 +20,41 @@ package org.oransc.policyagent.clients; -import java.util.Collection; +import java.util.List; +import org.oransc.policyagent.repository.Policy; + +import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +/** + * Common interface for 'A1' Policy access. Implementations of this interface + * adapts to the different southbound REST APIs supported. + */ public interface A1Client { - public Mono> getPolicyTypeIdentities(String nearRtRicUrl); + public enum A1ProtocolType { + UNKNOWN, // + STD_V1_1, // STD A1 version 1.1 + OSC_V1, // OSC 'A1' + SDNC_OSC_STD_V1_1, // SDNC_OSC with STD A1 version 1.1 southbound + SDNC_OSC_OSC_V1, // SDNC_OSC with OSC 'A1' southbound + SDNC_ONAP + } + + public Mono getProtocolVersion(); + + public Mono> getPolicyTypeIdentities(); + + public Mono> getPolicyIdentities(); - public Mono> getPolicyIdentities(String nearRtRicUrl); + public Mono getPolicyTypeSchema(String policyTypeId); - public Mono getPolicyType(String nearRtRicUrl, String policyTypeId); + public Mono putPolicy(Policy policy); - public Mono putPolicy(String nearRtRicUrl, String policyId, String policyString); + public Mono deletePolicy(Policy policy); - public Mono deletePolicy(String nearRtRicUrl, String policyId); + public Flux deleteAllPolicies(); + public Mono getPolicyStatus(Policy policy); }