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=6a39814272307d0207222c9229b0d765ac062bf0;hp=ddb71af4817d403d430de857d090a6ddb5198441;hpb=ffe0c150f08205d73ee362f58f492aeb2703f295;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 ddb71af4..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 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 Flux 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); }