ec4ab3162ac6b3aa465015916c770423f6637c51
[osm/SO.git] / rwlaunchpad / plugins / rwvns / vala / rwsdn.vala
1 namespace RwSdn {
2
3   public interface Topology: GLib.Object {
4     /*
5      * Init routine
6      */
7     public abstract RwTypes.RwStatus init(RwLog.Ctx log_ctx);
8
9     /*
10      * Credential Validation related APIs
11      */
12     public abstract RwTypes.RwStatus validate_sdn_creds(
13       Rwsdn.SDNAccount account,
14       out Rwsdn.SdnConnectionStatus status);
15
16     /*
17      * Configuring  related APIs
18      */
19     /* TODO */
20
21     /*
22      * Network related APIs
23      */
24     public abstract RwTypes.RwStatus get_network_list(
25       Rwsdn.SDNAccount account,
26       out RwTopology.YangData_IetfNetwork network_topology);
27    
28     /*
29      * VNFFG Chain related APIs
30      */
31     public abstract RwTypes.RwStatus create_vnffg_chain(
32       Rwsdn.SDNAccount account,
33       Rwsdn.VNFFGChain vnffg_chain,
34       out string vnffg_id);
35
36     /*
37      * VNFFG Chain Terminate related APIs
38      */
39     public abstract RwTypes.RwStatus terminate_vnffg_chain(
40       Rwsdn.SDNAccount account,
41       string vnffg_id);
42
43
44     /*
45      * Network related APIs
46      */
47     public abstract RwTypes.RwStatus get_vnffg_rendered_paths(
48       Rwsdn.SDNAccount account,
49       out Rwsdn.VNFFGRenderedPaths rendered_paths);
50
51     /*
52      * Classifier related APIs
53      */
54     public abstract RwTypes.RwStatus create_vnffg_classifier(
55       Rwsdn.SDNAccount account,
56       Rwsdn.VNFFGClassifier vnffg_classifier, 
57       out string vnffg_classifier_id);
58
59     /*
60      * Classifier related APIs
61      */
62     public abstract RwTypes.RwStatus terminate_vnffg_classifier(
63       Rwsdn.SDNAccount account,
64       string vnffg_classifier_id);
65
66
67
68     /*
69      * Node Related APIs
70      */
71      /* TODO */
72
73     /*
74      * Termination-point Related APIs
75      */
76      /* TODO */
77
78     /*
79      * Link Related APIs
80      */
81      /* TODO */
82     
83   }
84 }
85
86