5508521658ac28cebc48ec4e49f179607d504966
[ccsdk/cds.git] /
1 /*
2  * Copyright © 2017-2018 AT&T Intellectual Property.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.onap.ccsdk.apps.blueprintsprocessor.functions.netconf.executor.api
17
18 import org.onap.ccsdk.apps.blueprintsprocessor.functions.netconf.executor.utils.ModifyAction
19 import org.onap.ccsdk.apps.blueprintsprocessor.functions.netconf.executor.utils.NetconfDatastore
20
21 interface NetconfRpcService {
22
23     /**
24      * Lock
25      *
26      * @param configTarget running or candidate, default candidate
27      * @return Device response
28      */
29     fun lock(configTarget: String = NetconfDatastore.CANDIDATE.datastore): DeviceResponse
30
31     /**
32      * Get-config
33      *
34      * @param filter filter content, default empty
35      * @param configTarget running or candidate, default running
36      * @return Device response
37      */
38     fun getConfig(filter: String = "", configTarget: String = NetconfDatastore.RUNNING.datastore): DeviceResponse
39
40     /**
41      * Delete config
42      *
43      * @param configTarget running or candidate, default candidate
44      * @return Device response
45      */
46     fun deleteConfig(configTarget: String = NetconfDatastore.CANDIDATE.datastore): DeviceResponse
47
48     /**
49      * Edit-config
50      *
51      * @param messageContent edit config content.
52      * @param configTarget running or candidate, default candidate
53      * @param editDefaultOperation, default set to none. Valid values: merge, replace, create, delete, none
54      * @return Device response
55      */
56     fun editConfig(messageContent: String, configTarget: String = NetconfDatastore.CANDIDATE.datastore,
57                    editDefaultOperation: String = ModifyAction.NONE.action): DeviceResponse
58
59     /**
60      * Validate
61      *
62      * @param configTarget running or candidate, default candidate
63      * @return Device response
64      */
65     fun validate(configTarget: String = NetconfDatastore.CANDIDATE.datastore): DeviceResponse
66
67     /**
68      * Commit
69      *
70      * @param confirmed Perform a confirmed <commit> operation. If flag set to true,
71      * then it is expected to have a follow-up <commit> operation to confirm the request
72      * @param confirmTimeout Timeout period for confirmed commit, in seconds.
73      * @param persist Make the confirmed commit survive a session termination, and
74      * set a token on the ongoing confirmed commit.
75      * @param persistId Used to issue a follow-up confirmed commit or a confirming
76      * commit from any session, with the token from the previous <commit> operation.
77      * If unspecified, the confirm timeout defaults to 600 seconds.
78      * @return Device response
79      */
80     fun commit(confirmed: Boolean = false, confirmTimeout: Int = 60, persist: String = "",
81                persistId: String = ""): DeviceResponse
82
83     /**
84      * Cancels an ongoing confirmed commit.  If the <persist-id> parameter is not given,
85      * the <cancel-commit> operation MUST be issued on the same session that issued
86      * the confirmed commit.
87      *
88      * @param persistId Cancels a persistent confirmed commit.  The value MUST be equal
89      * to the value given in the <persist> parameter to the <commit> operation.
90      * If the value does not match, the operation fails with an "invalid-value" error.
91      */
92     fun cancelCommit(persistId: String = ""): DeviceResponse
93
94     /**
95      * Unlock
96      *
97      * @param configTarget running or candidate, default candidate
98      * @return Device response
99      */
100     fun unLock(configTarget: String = NetconfDatastore.CANDIDATE.datastore): DeviceResponse
101
102     /**
103      * Discard config
104      *
105      * @return Device response
106      */
107     fun discardConfig(): DeviceResponse
108
109     /**
110      * Close session
111      *
112      * @param force force closeSession
113      * @return Device response
114      */
115     fun closeSession(force: Boolean): DeviceResponse
116
117     /**
118      * Executes an RPC request to the netconf server.
119      *
120      * @param request the XML containing the RPC request for the server.
121      * @return Device response
122      */
123     fun asyncRpc(request: String, messageId: String): DeviceResponse
124 }