Refine access control, peer access
[federation.git] / gateway / src / main / java / org / acumos / federation / gateway / service / PeerService.java
1 /*-
2  * ===============LICENSE_START=======================================================
3  * Acumos
4  * ===================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property & Tech Mahindra. All rights reserved.
6  * ===================================================================================
7  * This Acumos software file is distributed by AT&T and Tech Mahindra
8  * under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *  
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  *  
14  * This file is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ===============LICENSE_END=========================================================
19  */
20
21 package org.acumos.federation.gateway.service;
22
23 import java.util.List;
24
25 import org.acumos.cds.domain.MLPPeer;
26
27 /**
28  * 
29  *
30  */
31 public interface PeerService {
32
33         /**
34          * @return List of Peers configured in the Local Acumos Instance
35          */
36         List<MLPPeer> getPeers();
37         
38         /**
39          * Provide the list of locally registered peers to one of our peers
40          */
41         List<MLPPeer> getPeers(ServiceContext theContext);
42         
43         /**
44          * @return Peer based on the configured Subject Name
45          */
46         List<MLPPeer> getPeer(String subjectName);
47         
48         MLPPeer getOnePeer(String peerId);
49         
50         /**
51          * @param mlpPeer MLPPeer Configuration that needs to be created on the Platform
52          * 
53          * @return Peer configuration that has been created.
54          */
55         MLPPeer savePeer(MLPPeer mlpPeer);
56         
57         
58         /**
59          * @param mlpPeer MLPPeer Configuration that needs to be updated on the Platform
60          * 
61          * @return Peer configuration that has been updated.
62          */
63         boolean updatePeer(MLPPeer mlpPeer);
64         
65         /**
66          * @param mlpPeer MLPPeer Configuration that needs to be deleted on the Platform
67          * 
68          * @return true if successfully deleted else false.
69          */
70         boolean deletePeer(MLPPeer mlpPeer);
71 }