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 static enum A1ProtocolType {
- UNKNOWN, STD_V1
+ 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<A1ProtocolType> getProtocolVersion();
- public Mono<Collection<String>> getPolicyTypeIdentities();
+ public Mono<List<String>> getPolicyTypeIdentities();
- public Mono<Collection<String>> getPolicyIdentities();
+ public Mono<List<String>> getPolicyIdentities();
public Mono<String> getPolicyTypeSchema(String policyTypeId);
public Mono<String> putPolicy(Policy policy);
- public Mono<String> deletePolicy(String policyId);
+ public Mono<String> deletePolicy(Policy policy);
+
+ public Flux<String> deleteAllPolicies();
+ public Mono<String> getPolicyStatus(Policy policy);
}