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=5f38e95cbd87e9c67cd8a8ddb810b629a81cd306;hp=bed839b7920750aa325875d72c7a8a78e4d69d63;hpb=766e6af8d8ddf946ad5cb45a560b040e4857065e;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 bed839b7..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,19 +20,41 @@ package org.oransc.policyagent.clients; +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 Flux getAllPolicyTypes(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 Flux getPoliciesForType(String nearRtRicUrl, String policyTypeId); + public Mono getPolicyTypeSchema(String policyTypeId); - public Mono getPolicy(String nearRtRicUrl, String policyId); + 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); }