694c35ebbe672694338a05a1e90e5ca623782beb
[sdc.git] /
1 package org.openecomp.core.zusammen.api;
2
3 import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element;
4 import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementConflict;
5 import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo;
6 import com.amdocs.zusammen.adaptor.inbound.api.types.item.ItemVersionConflict;
7 import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
8 import com.amdocs.zusammen.commons.health.data.HealthInfo;
9 import com.amdocs.zusammen.datatypes.Id;
10 import com.amdocs.zusammen.datatypes.SessionContext;
11 import com.amdocs.zusammen.datatypes.item.ElementContext;
12 import com.amdocs.zusammen.datatypes.item.Info;
13 import com.amdocs.zusammen.datatypes.item.Item;
14 import com.amdocs.zusammen.datatypes.item.ItemVersion;
15 import com.amdocs.zusammen.datatypes.item.ItemVersionData;
16 import com.amdocs.zusammen.datatypes.item.ItemVersionStatus;
17 import com.amdocs.zusammen.datatypes.item.Resolution;
18 import com.amdocs.zusammen.datatypes.itemversion.ItemVersionRevisions;
19 import com.amdocs.zusammen.datatypes.itemversion.Tag;
20
21 import java.util.Collection;
22 import java.util.Optional;
23
24 public interface ZusammenAdaptor {
25
26   Collection<Item> listItems(SessionContext context);
27
28   Item getItem(SessionContext context, Id itemId);
29
30   Id createItem(SessionContext context, Info info);
31
32   void updateItem(SessionContext context, Id itemId, Info info);
33
34   // TODO: 4/4/2017 remove this workaround when versionId will be recieved from UI
35   Optional<ItemVersion> getFirstVersion(SessionContext context, Id itemId);
36
37   Collection<ItemVersion> listPublicVersions(SessionContext context, Id itemId);
38
39   ItemVersion getPublicVersion(SessionContext context, Id itemId, Id versionId);
40
41   Id createVersion(SessionContext context, Id itemId, Id baseVersionId,
42                    ItemVersionData itemVersionData);
43
44   void updateVersion(SessionContext context, Id itemId, Id versionId,
45                      ItemVersionData itemVersionData);
46
47   ItemVersion getVersion(SessionContext context, Id itemId, Id versionId);
48
49   ItemVersionStatus getVersionStatus(SessionContext context, Id itemId, Id versionId);
50
51   ItemVersionConflict getVersionConflict(SessionContext context, Id itemId, Id versionId);
52
53   void tagVersion(SessionContext context, Id itemId, Id versionId, Tag tag);
54
55   void resetVersionHistory(SessionContext context, Id itemId, Id versionId, String version);
56
57   void publishVersion(SessionContext context, Id itemId, Id versionId, String message);
58
59   void syncVersion(SessionContext context, Id itemId, Id versionId);
60
61   void forceSyncVersion(SessionContext context, Id itemId, Id versionId);
62
63   Optional<ElementInfo> getElementInfo(SessionContext context, ElementContext elementContext,
64                                        Id elementId);
65
66   Optional<Element> getElement(SessionContext context, ElementContext elementContext,
67                                String elementId); // TODO: 4/3/2017 change to Id
68
69   Optional<Element> getElementByName(SessionContext context, ElementContext elementContext,
70                                      Id parentElementId, String elementName);
71
72   Collection<ElementInfo> listElements(SessionContext context, ElementContext elementContext,
73                                        Id parentElementId);
74
75   Collection<Element> listElementData(SessionContext context, ElementContext elementContext,
76                                       Id parentElementId);
77
78   /**
79    * Lists the sub elements of the element named elementName which is a sub element of
80    * parentElementId
81    */
82   Collection<ElementInfo> listElementsByName(SessionContext context, ElementContext elementContext,
83                                              Id parentElementId, String elementName);
84
85   Optional<ElementInfo> getElementInfoByName(SessionContext context, ElementContext elementContext,
86                                              Id parentElementId, String elementName);
87
88   Optional<ElementConflict> getElementConflict(SessionContext context,
89                                                ElementContext elementContext, Id elementId);
90
91   Element saveElement(SessionContext context, ElementContext elementContext,
92                       ZusammenElement element, String message);
93
94   void resolveElementConflict(SessionContext context, ElementContext elementContext,
95                               ZusammenElement element, Resolution resolution);
96
97   void revert(SessionContext context, Id itemId, Id versionId, Id revisionId);
98
99   ItemVersionRevisions listRevisions(SessionContext context, Id itemId, Id versionId);
100
101   Collection<HealthInfo> checkHealth(SessionContext context);
102
103   String getVersion(SessionContext context);
104 }