aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api')
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IAdditionalInformationOperation.java94
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IArtifactOperation.java70
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IAttributeOperation.java71
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICacheMangerOperation.java44
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityInstanceOperation.java143
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityOperation.java79
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityTypeOperation.java47
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IComponentInstanceOperation.java246
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IComponentOperation.java50
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IConsumerOperation.java107
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IDataTypeOperation.java46
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IElementOperation.java104
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGraphLockOperation.java36
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGroupOperation.java114
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGroupTypeOperation.java61
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IHeatParametersOperation.java46
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IInputsOperation.java81
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IInterfaceLifecycleOperation.java92
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ILifecycleOperation.java65
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IPolicyTypeOperation.java38
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IProductOperation.java47
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IPropertyOperation.java110
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IRequirementOperation.java85
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IResourceOperation.java131
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IServiceOperation.java88
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IUserAdminOperation.java58
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/StorageOperationStatus.java27
27 files changed, 2180 insertions, 0 deletions
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IAdditionalInformationOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IAdditionalInformationOperation.java
new file mode 100644
index 0000000000..71167c395f
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IAdditionalInformationOperation.java
@@ -0,0 +1,94 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import java.util.List;
+
+import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
+import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
+import org.openecomp.sdc.be.model.AdditionalInfoParameterInfo;
+import org.openecomp.sdc.be.model.AdditionalInformationDefinition;
+import org.openecomp.sdc.be.resources.data.AdditionalInfoParameterData;
+
+import com.thinkaurelius.titan.core.TitanTransaction;
+import com.thinkaurelius.titan.core.TitanVertex;
+
+import fj.data.Either;
+
+public interface IAdditionalInformationOperation {
+
+ public Either<AdditionalInformationDefinition, TitanOperationStatus> addAdditionalInformationParameter(
+ NodeTypeEnum nodeType, String resourceId, String key, String value);
+
+ public Either<AdditionalInformationDefinition, TitanOperationStatus> updateAdditionalInformationParameter(
+ NodeTypeEnum nodeType, String resourceId, String origKey, String key, String value);
+
+ public Either<AdditionalInformationDefinition, TitanOperationStatus> deleteAdditionalInformationParameter(
+ NodeTypeEnum nodeType, String resourceId, String key);
+
+ public Either<AdditionalInfoParameterData, TitanOperationStatus> addAdditionalInformationNode(NodeTypeEnum nodeType,
+ String resourceUniqueId);
+
+ public Either<AdditionalInformationDefinition, TitanOperationStatus> addAdditionalInformationNode(
+ NodeTypeEnum nodeType, String componentId, AdditionalInformationDefinition parameters);
+
+ public TitanOperationStatus findResourceAllAdditionalInformationRecursively(String uniqueId,
+ List<AdditionalInformationDefinition> properties);
+
+ public TitanOperationStatus findServiceAllAdditionalInformationRecursively(String uniqueId,
+ List<AdditionalInformationDefinition> properties);
+
+ public Either<AdditionalInformationDefinition, StorageOperationStatus> createAdditionalInformationParameter(
+ NodeTypeEnum nodeType, String resourceId, String key, String value, boolean inTransaction);
+
+ public Either<AdditionalInformationDefinition, StorageOperationStatus> updateAdditionalInformationParameter(
+ NodeTypeEnum nodeType, String resourceId, String id, String key, String value, boolean inTransaction);
+
+ public Either<AdditionalInformationDefinition, StorageOperationStatus> deleteAdditionalInformationParameter(
+ NodeTypeEnum nodeType, String resourceId, String id, boolean inTransaction);
+
+ public Either<Integer, StorageOperationStatus> getNumberOfAdditionalInformationParameters(NodeTypeEnum nodeType,
+ String resourceId, boolean inTransaction);
+
+ public Either<Integer, TitanOperationStatus> getNumberOfParameters(NodeTypeEnum nodeType, String resourceId);
+
+ public Either<AdditionalInfoParameterInfo, TitanOperationStatus> getAdditionalInformationParameter(
+ NodeTypeEnum nodeType, String resourceId, String id);
+
+ public Either<AdditionalInfoParameterInfo, StorageOperationStatus> getAdditionalInformationParameter(
+ NodeTypeEnum nodeType, String resourceId, String id, boolean inTransaction);
+
+ public Either<AdditionalInformationDefinition, TitanOperationStatus> getAllAdditionalInformationParameters(
+ NodeTypeEnum nodeType, String resourceId, boolean ignoreVerification);
+
+ public Either<AdditionalInformationDefinition, StorageOperationStatus> getAllAdditionalInformationParameters(
+ NodeTypeEnum nodeType, String resourceId, boolean ignoreVerification, boolean inTransaction);
+
+ public Either<AdditionalInformationDefinition, StorageOperationStatus> deleteAllAdditionalInformationParameters(
+ NodeTypeEnum nodeType, String resourceId, boolean inTransaction);
+
+ public Either<TitanVertex, TitanOperationStatus> addAdditionalInformationNode(NodeTypeEnum nodeType,
+ String componentId, TitanVertex matadatVertex);
+
+ public TitanOperationStatus addAdditionalInformationNode(NodeTypeEnum nodeType, String componentId,
+ AdditionalInformationDefinition parameters, TitanVertex metadataVertex);
+
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IArtifactOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IArtifactOperation.java
new file mode 100644
index 0000000000..873d05e1ed
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IArtifactOperation.java
@@ -0,0 +1,70 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import java.util.Map;
+
+import org.openecomp.sdc.be.dao.titan.TitanGenericDao;
+import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition;
+import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
+import org.openecomp.sdc.be.model.ArtifactDefinition;
+import org.openecomp.sdc.be.resources.data.ArtifactData;
+
+import com.thinkaurelius.titan.core.TitanTransaction;
+import com.thinkaurelius.titan.core.TitanVertex;
+
+import fj.data.Either;
+
+public interface IArtifactOperation {
+
+ public Either<ArtifactDefinition, StorageOperationStatus> addArifactToComponent(ArtifactDefinition artifactInfo, String id, NodeTypeEnum type, boolean failIfExist, boolean inTransaction);
+
+ public Either<ArtifactDefinition, StorageOperationStatus> updateArifactOnResource(ArtifactDefinition artifactInfo, String id, String artifactId, NodeTypeEnum type, boolean inTransaction);
+
+ public Either<ArtifactDefinition, StorageOperationStatus> updateArifactDefinition(ArtifactDefinition artifactInfo, boolean inTransaction);
+
+ public Either<ArtifactDefinition, StorageOperationStatus> removeArifactFromResource(String id, String artifactId, NodeTypeEnum resource, boolean deleteMandatoryArtifact, boolean inTransaction);
+
+ public Either<Map<String, ArtifactDefinition>, StorageOperationStatus> getArtifacts(String parentId, NodeTypeEnum parentType, boolean inTransaction);
+
+ public void setTitanGenericDao(TitanGenericDao titanGenericDao);
+
+ public Either<ArtifactDefinition, StorageOperationStatus> getArtifactById(String id, boolean inTransaction);
+
+ public Either<Map<String, ArtifactDefinition>, StorageOperationStatus> getArtifacts(String parentId, NodeTypeEnum parentType, boolean inTransaction, String groupType);
+
+ Either<ArtifactDefinition, StorageOperationStatus> addHeatEnvArtifact(ArtifactDefinition artifactHeatEnv, ArtifactDefinition artifactHeat, String parentId, NodeTypeEnum parentType, boolean inTransaction);
+
+ public void updateUUID(ArtifactDataDefinition artifactData, String oldChecksum, String oldVesrion);
+
+ public Either<Integer, StorageOperationStatus> getParentsOfArtifact(String artifactId, NodeTypeEnum type);
+
+ public Either<ArtifactDefinition, StorageOperationStatus> getHeatArtifactByHeatEnvId(String heatEnvId, boolean inTransaction);
+
+ public Either<ArtifactData, StorageOperationStatus> updateToscaArtifactNameOnGraph(ArtifactDefinition artifactInfo, String artifactId, NodeTypeEnum type, String id);
+
+ public StorageOperationStatus addArifactToComponent(ArtifactDefinition artifactInfo, String parentId, NodeTypeEnum type, boolean failIfExist, TitanVertex parentVertex);
+
+ public Either<ArtifactData, StorageOperationStatus> getLatestArtifactDataByArtifactUUID(String artifactUUID, boolean inTransaction);
+
+ StorageOperationStatus addArifactToComponent(TitanVertex artifactInfo, TitanVertex parentVertex, String label);
+
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IAttributeOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IAttributeOperation.java
new file mode 100644
index 0000000000..db2b988f5f
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IAttributeOperation.java
@@ -0,0 +1,71 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import java.util.List;
+import java.util.Map;
+
+import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
+import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
+import org.openecomp.sdc.be.model.AttributeDefinition;
+import org.openecomp.sdc.be.model.ComponentInstance;
+import org.openecomp.sdc.be.model.ComponentInstanceAttribute;
+import org.openecomp.sdc.be.model.DataTypeDefinition;
+import org.openecomp.sdc.be.resources.data.AttributeData;
+import org.openecomp.sdc.be.resources.data.AttributeValueData;
+
+import com.thinkaurelius.titan.core.TitanVertex;
+
+import fj.data.Either;
+
+public interface IAttributeOperation {
+ Either<AttributeData, StorageOperationStatus> deleteAttribute(String attributeId);
+
+ TitanOperationStatus addAttributesToGraph(TitanVertex metadataVertex, Map<String, AttributeDefinition> attributes, String resourceId, Map<String, DataTypeDefinition> dataTypes);
+
+ Either<List<ComponentInstanceAttribute>, TitanOperationStatus> getAllAttributesOfResourceInstance(ComponentInstance compInstance);
+
+ TitanOperationStatus findAllResourceAttributesRecursively(String resourceId, List<AttributeDefinition> attributes);
+
+ Either<Map<String, AttributeDefinition>, StorageOperationStatus> deleteAllAttributeAssociatedToNode(NodeTypeEnum nodeType, String uniqueId);
+
+ TitanOperationStatus findNodeNonInheretedAttribues(String uniqueId, NodeTypeEnum nodeType, List<AttributeDefinition> attributes);
+
+ Either<AttributeData, StorageOperationStatus> addAttribute(AttributeDefinition attributeDefinition, String resourceId);
+
+ Either<AttributeData, TitanOperationStatus> addAttributeToGraph(AttributeDefinition attribute, String resourceId, Map<String, DataTypeDefinition> dataTypes);
+
+ AttributeDefinition convertAttributeDataToAttributeDefinition(AttributeData attributeData, String attributeName, String resourceId);
+
+ Either<AttributeData, StorageOperationStatus> updateAttribute(String attributeId, AttributeDefinition newAttDef, Map<String, DataTypeDefinition> dataTypes);
+
+ /**
+ * Builds ComponentInstanceAttribute from AttributeValueData
+ *
+ * @param attributeValueData
+ * @param resourceInstanceAttribute
+ * @return
+ */
+ ComponentInstanceAttribute buildResourceInstanceAttribute(AttributeValueData attributeValueData, ComponentInstanceAttribute resourceInstanceAttribute);
+
+ TitanOperationStatus addAttributeToGraphByVertex(TitanVertex metadataVertex, AttributeDefinition attribute, String resourceId, Map<String, DataTypeDefinition> dataTypes);
+
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICacheMangerOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICacheMangerOperation.java
new file mode 100644
index 0000000000..52586dad60
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICacheMangerOperation.java
@@ -0,0 +1,44 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
+import org.openecomp.sdc.be.model.Component;
+import org.openecomp.sdc.be.model.cache.jobs.CheckAndUpdateJob;
+import org.openecomp.sdc.be.model.cache.jobs.StoreJob;
+
+/**
+ * Created by mlando on 9/5/2016.
+ */
+public interface ICacheMangerOperation {
+
+ /**
+ *
+ *
+ * @param componentId
+ * @param timestamp
+ * @param nodeTypeEnum
+ */
+ void updateComponentInCache(String componentId, long timestamp, NodeTypeEnum nodeTypeEnum);
+
+ void storeComponentInCache(org.openecomp.sdc.be.model.Component component, NodeTypeEnum nodeTypeEnum);
+
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityInstanceOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityInstanceOperation.java
new file mode 100644
index 0000000000..e50b658121
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityInstanceOperation.java
@@ -0,0 +1,143 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import java.util.List;
+import java.util.Map;
+import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.openecomp.sdc.be.dao.graph.datatype.GraphEdge;
+import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
+import org.openecomp.sdc.be.model.CapabilityDefinition;
+import org.openecomp.sdc.be.model.ComponentInstanceProperty;
+import org.openecomp.sdc.be.model.PropertyDefinition;
+import org.openecomp.sdc.be.resources.data.CapabilityInstData;
+import org.openecomp.sdc.be.resources.data.ComponentInstanceData;
+import org.openecomp.sdc.be.resources.data.PropertyValueData;
+
+import com.thinkaurelius.titan.core.TitanVertex;
+
+import fj.data.Either;
+
+/**
+ * public interface ICapabilityInstanceOperation provides methods for CRUD
+ * operations for CapabilityInstance on component instance level
+ *
+ * @author ns019t
+ *
+ */
+public interface ICapabilityInstanceOperation {
+ /**
+ * create capability instance of capability with property values for
+ * resource instance
+ *
+ * @param resourceInstanceId
+ * @param capabilityId
+ * @param propertyValues
+ * @param validateCapabilityInstExistance
+ * @param capabilityName
+ * @return
+ */
+ public Either<Map<CapabilityInstData, List<PropertyValueData>>, TitanOperationStatus> createCapabilityInstanceOfCapabilityWithPropertyValuesForResourceInstance(
+ String resourceInstanceId, String capabilityId, String capabilityName,
+ List<ComponentInstanceProperty> propertyValues, boolean validateCapabilityInstExistance);
+
+ /**
+ *
+ * @param resourceInstanceVertex
+ * @param capabilityId
+ * @param capabilityName
+ * @param propertyValues
+ * @param validateCapabilityInstExistence
+ * @return
+ */
+ public TitanOperationStatus createCapabilityInstanceOfCapabilityWithPropertyValuesForResourceInstance(
+ TitanVertex resourceInstanceVertex, String resourceInstanceId, String capabilityId, String capabilityName,
+ List<ComponentInstanceProperty> propertyValues, boolean validateCapabilityInstExistence);
+
+ /**
+ * validate capability instance uniqueness
+ *
+ * @param resourceInstanceId
+ * @param capabilityId
+ * @return
+ */
+ public Either<Boolean, TitanOperationStatus> validateCapabilityInstExistence(String resourceInstanceId,
+ String capabilityId);
+
+ /**
+ * delete capability instance from resource instance
+ *
+ * @param resourceInstanceId
+ * @param capabilityInstanceId
+ * @return
+ */
+ public Either<CapabilityInstData, TitanOperationStatus> deleteCapabilityInstanceFromResourceInstance(
+ String resourceInstanceId, String capabilityInstanceId);
+
+ /**
+ * get all capability instances for resource instance returns all Capability
+ * Instances related to Resource Instance as List<CapabilityInstData> or
+ * TitanOperationStatus if error occurs or if Resource Instance have no any
+ * related Capability Instance
+ *
+ * @param resourceInstanceId
+ * @return Either<List<CapabilityInstData>, TitanOperationStatus>
+ */
+ public Either<List<ImmutablePair<CapabilityInstData, GraphEdge>>, TitanOperationStatus> getAllCapabilityInstancesOfResourceInstance(
+ String resourceInstanceId);
+
+ /**
+ * get capability instance of capability for resource instance
+ *
+ * @param resourceInstanceId
+ * @param capabilityId
+ * @return
+ */
+ public Either<CapabilityInstData, TitanOperationStatus> getCapabilityInstanceOfCapabilityOfResourceInstance(
+ String resourceInstanceId, String capabilityId);
+
+ /**
+ * update capability property values
+ *
+ * @param resourceInstanceId
+ * @param capabilityInstanceId
+ * @param propertyValues
+ * @param capabilityId
+ * @return
+ */
+ public Either<List<PropertyValueData>, TitanOperationStatus> updateCapabilityPropertyValues(
+ String resourceInstanceId, String capabilityId, List<ComponentInstanceProperty> propertyValues);
+
+ /**
+ * clone and associate capability instance with property values
+ *
+ * @param createdComponentInstance
+ * @param capability
+ * @param capabilityInstPair
+ * @return
+ */
+ public Either<ImmutablePair<CapabilityInstData, List<PropertyValueData>>, TitanOperationStatus> cloneAssociateCapabilityInstanceWithPropertyValues(
+ ComponentInstanceData createdComponentInstance, CapabilityDefinition capability,
+ ImmutablePair<CapabilityInstData, GraphEdge> capabilityInstPair);
+
+ Either<Boolean, TitanOperationStatus> validateCapabilityInstExistence(TitanVertex instanceVertex,
+ String resourceInstanceId, String capabilityId);
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityOperation.java
new file mode 100644
index 0000000000..3b692b9607
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityOperation.java
@@ -0,0 +1,79 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.openecomp.sdc.be.dao.graph.datatype.GraphEdge;
+import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
+import org.openecomp.sdc.be.model.CapabilityDefinition;
+import org.openecomp.sdc.be.model.PropertyDefinition;
+import org.openecomp.sdc.be.resources.data.CapabilityData;
+import org.openecomp.sdc.be.resources.data.PropertyData;
+
+import com.thinkaurelius.titan.core.TitanVertex;
+
+import fj.data.Either;
+
+public interface ICapabilityOperation {
+
+ public Either<CapabilityDefinition, StorageOperationStatus> addCapability(String resourceId, String capabilityName,
+ CapabilityDefinition capabilityDefinition);
+
+ public Either<CapabilityDefinition, StorageOperationStatus> addCapability(String resourceId, String capabilityName,
+ CapabilityDefinition capabilityDefinition, boolean inTransaction);
+
+ /**
+ * @param uniqueId
+ * @return
+ */
+ public Either<CapabilityDefinition, StorageOperationStatus> getCapability(String uniqueId);
+
+ public Either<CapabilityDefinition, StorageOperationStatus> getCapability(String uniqueId, boolean inTransaction);
+
+ public Either<CapabilityDefinition, StorageOperationStatus> getCapability(String capabilityName, String resourceId);
+
+ public Either<CapabilityDefinition, StorageOperationStatus> getCapability(String capabilityName, String resourceId,
+ boolean inTransaction);
+
+ public Either<List<ImmutablePair<CapabilityData, GraphEdge>>, TitanOperationStatus> getAllCapabilitiesPairs(
+ String resourceId);
+
+ public Either<Map<String, CapabilityDefinition>, StorageOperationStatus> deleteAllCapabilities(String resourceId,
+ boolean inTransaction);
+
+ public Either<CapabilityDefinition, TitanOperationStatus> getCapabilityByCapabilityData(
+ CapabilityData capabilityData);
+
+ public TitanOperationStatus getCapabilitySourcesList(String resourceId, List<String> derivedFromList);
+
+ public Either<Map<String, PropertyData>, StorageOperationStatus> updatePropertiesOfCapability(String uniqueId,
+ String capabilityType, List<PropertyDefinition> newProperties);
+
+ public Either<Map<String, PropertyData>, StorageOperationStatus> updatePropertiesOfCapability(String uniqueId,
+ String capabilityType, List<PropertyDefinition> newProperties, boolean inTransaction);
+
+ StorageOperationStatus addCapability(TitanVertex metadataVertex, String resourceId, String capabilityName,
+ CapabilityDefinition capabilityDefinition, boolean inTransaction);
+
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityTypeOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityTypeOperation.java
new file mode 100644
index 0000000000..6f0b5b8d13
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityTypeOperation.java
@@ -0,0 +1,47 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import org.openecomp.sdc.be.model.CapabilityTypeDefinition;
+
+import fj.data.Either;
+
+public interface ICapabilityTypeOperation {
+
+ /**
+ * @param capabilityTypeDefinition
+ * @return
+ */
+ public Either<CapabilityTypeDefinition, StorageOperationStatus> addCapabilityType(
+ CapabilityTypeDefinition capabilityTypeDefinition);
+
+ public Either<CapabilityTypeDefinition, StorageOperationStatus> addCapabilityType(
+ CapabilityTypeDefinition capabilityTypeDefinition, boolean inTransaction);
+
+ /**
+ * @param uniqueId
+ * @return
+ */
+ public Either<CapabilityTypeDefinition, StorageOperationStatus> getCapabilityType(String uniqueId);
+
+ public Either<CapabilityTypeDefinition, StorageOperationStatus> getCapabilityType(String uniqueId,
+ boolean inTransaction);
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IComponentInstanceOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IComponentInstanceOperation.java
new file mode 100644
index 0000000000..e51e077906
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IComponentInstanceOperation.java
@@ -0,0 +1,246 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary;
+import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
+import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
+import org.openecomp.sdc.be.model.ArtifactDefinition;
+import org.openecomp.sdc.be.model.ComponentInstance;
+import org.openecomp.sdc.be.model.ComponentInstanceAttribute;
+import org.openecomp.sdc.be.model.ComponentInstanceInput;
+import org.openecomp.sdc.be.model.ComponentInstanceProperty;
+import org.openecomp.sdc.be.model.RequirementAndRelationshipPair;
+import org.openecomp.sdc.be.model.RequirementCapabilityRelDef;
+import org.openecomp.sdc.be.resources.data.AttributeValueData;
+import org.openecomp.sdc.be.resources.data.ComponentInstanceData;
+
+import fj.data.Either;
+
+public interface IComponentInstanceOperation {
+
+ /**
+ * add resource instance to service
+ *
+ * @param containerComponentId
+ * - component id
+ * @param instanceNumber
+ * - instance number of the component instance
+ * @param componentInstance
+ * @param inTransaction
+ * @return
+ */
+ public Either<ComponentInstance, StorageOperationStatus> createComponentInstance(String containerComponentId,
+ NodeTypeEnum containerNodeType, String instanceNumber, ComponentInstance componentInstance,
+ NodeTypeEnum instNodeType, boolean inTransaction);
+
+ /**
+ * add resource instance to service with internal transaction
+ *
+ * @param containerComponentId
+ * @param instanceNumber
+ * @param componentInstance
+ * @return
+ */
+ public Either<ComponentInstance, StorageOperationStatus> createComponentInstance(String containerComponentId,
+ NodeTypeEnum containerNodeType, String instanceNumber, ComponentInstance componentInstance,
+ NodeTypeEnum instNodeType);
+
+ /**
+ * delete resource instance from component
+ *
+ * @param containerComponentId
+ * - containerComponent id
+ * @param resourceInstUid
+ * - resource instance uid
+ * @param inTransaction
+ * @return
+ */
+ public Either<ComponentInstance, StorageOperationStatus> deleteComponentInstance(NodeTypeEnum containerNodeType,
+ String containerComponentId, String resourceInstUid, boolean inTransaction);
+
+ public Either<ComponentInstance, StorageOperationStatus> deleteComponentInstance(NodeTypeEnum containerNodeType,
+ String containerComponentId, String resourceInstUid);
+
+ /**
+ * associate 2 resource instances for a given requirement
+ *
+ * @param serviceId
+ * @param fromResInstanceUid
+ * @param toResInstanceUid
+ * @param requirement
+ * @param relationship
+ * @param inTransaction
+ * @return
+ */
+ // public Either<RequirementCapabilityRelDef, StorageOperationStatus>
+ // associateResourceInstances(
+ // String serviceId, NodeTypeEnum nodeType, String fromResInstanceUid,
+ // String toResInstanceUid, String requirement, String relationship,
+ // boolean inTransaction);
+
+ // public Either<RequirementCapabilityRelDef, StorageOperationStatus>
+ // associateResourceInstances(
+ // String serviceId, NodeTypeEnum nodeType, String fromResInstanceUid,
+ // String toResInstanceUid, String requirement, String relationship);
+
+ public Either<RequirementCapabilityRelDef, StorageOperationStatus> associateResourceInstances(String serviceId,
+ NodeTypeEnum nodeType, RequirementCapabilityRelDef relation, boolean inTransaction);
+
+ public Either<RequirementCapabilityRelDef, StorageOperationStatus> associateResourceInstances(String serviceId,
+ NodeTypeEnum nodeType, RequirementCapabilityRelDef relation);
+
+ /**
+ *
+ * dissociate the relation between 2 resource instances for a given
+ * requirement
+ *
+ * @param serviceId
+ * @param fromResInstanceUid
+ * @param toResInstanceUid
+ * @param requirement
+ * @param inTransaction
+ * @return
+ */
+ public Either<RequirementCapabilityRelDef, StorageOperationStatus> dissociateResourceInstances(String serviceId,
+ NodeTypeEnum nodeType, RequirementCapabilityRelDef requirementDef, boolean inTransaction);
+
+ public Either<RequirementCapabilityRelDef, StorageOperationStatus> dissociateResourceInstances(String serviceId,
+ NodeTypeEnum nodeType, RequirementCapabilityRelDef requirementDef);
+
+ /**
+ * update the properties of a given resource instance
+ *
+ * @param serviceId
+ * @param resourceInstanceName
+ * @param resourceInstance
+ * @param inTransaction
+ * @return
+ */
+ public Either<ComponentInstance, StorageOperationStatus> updateResourceInstance(String serviceId,
+ NodeTypeEnum nodeType, String resourceInstanceName, ComponentInstance resourceInstance,
+ boolean inTransaction);
+
+ public Either<ComponentInstance, StorageOperationStatus> updateResourceInstance(String serviceId,
+ NodeTypeEnum nodeType, String resourceInstanceName, ComponentInstance resourceInstance);
+
+ /**
+ * get all resource instances of a given service and the relations between
+ * the resource instances
+ *
+ * @param serviceId
+ * @param inTransaction
+ * @return
+ */
+ public Either<ImmutablePair<List<ComponentInstance>, List<RequirementCapabilityRelDef>>, StorageOperationStatus> getAllComponentInstances(
+ String componentId, NodeTypeEnum containerNodeType, NodeTypeEnum compInstNodeType, boolean inTransaction);
+
+ public Either<List<String>, StorageOperationStatus> getAllComponentInstancesNames(String componentId,
+ NodeTypeEnum nodeType, boolean inTransaction);
+
+ public Either<List<String>, StorageOperationStatus> getAllComponentInstancesNames(String componentId,
+ NodeTypeEnum nodeType);
+
+ /**
+ * get resource instance from id
+ *
+ * @param resourceId
+ * @return resource instance of given id
+ */
+ public Either<ComponentInstance, StorageOperationStatus> getResourceInstanceById(String resourceId);
+
+ public Either<List<ComponentInstance>, StorageOperationStatus> deleteAllComponentInstances(String serviceId,
+ NodeTypeEnum nodeType, boolean inTransaction);
+
+ public Either<List<ComponentInstance>, StorageOperationStatus> deleteAllComponentInstances(String serviceId,
+ NodeTypeEnum nodeType);
+
+ public Either<Integer, StorageOperationStatus> increaseAndGetResourceInstanceSpecificCounter(
+ String resourceInstanceId, GraphPropertiesDictionary counterType, boolean inTransaction);
+
+ public String createComponentInstLogicalName(String instanceNumber, String componentInstanceName);
+
+ public Either<Boolean, StorageOperationStatus> isComponentInstanceNameExist(String parentComponentId,
+ NodeTypeEnum parentNodeType, String compInstId, String componentInstName);
+
+ public Either<Boolean, StorageOperationStatus> validateParent(String parentId, String uniqId,
+ boolean inTransaction);
+
+ public Either<ComponentInstance, StorageOperationStatus> getFullComponentInstance(
+ ComponentInstance componentInstance, NodeTypeEnum compInstNodeType);
+
+ public Either<Boolean, StorageOperationStatus> isAvailableRequirement(ComponentInstance fromResInstance,
+ RequirementAndRelationshipPair relationPair);
+
+ public Either<Boolean, StorageOperationStatus> isAvailableCapabilty(ComponentInstance toResInstance,
+ RequirementAndRelationshipPair relationPair);
+
+ public Either<ComponentInstanceProperty, StorageOperationStatus> addPropertyValueToResourceInstance(
+ ComponentInstanceProperty resourceInstanceProperty, String resourceInstanceId, Integer index,
+ boolean inTransaction);
+
+ public Either<ComponentInstanceProperty, StorageOperationStatus> addPropertyValueToResourceInstance(
+ ComponentInstanceProperty resourceInstanceProperty, String resourceInstanceId, boolean isvalidate,
+ Integer index, boolean inTransaction);
+
+ /**
+ * Adds Attribute to resource instance
+ *
+ * @param resourceInstanceAttribute
+ * * @param resourceInstanceId * @param index * @param
+ * inTransaction
+ * @return
+ **/
+ public Either<ComponentInstanceAttribute, StorageOperationStatus> addAttributeValueToResourceInstance(
+ ComponentInstanceAttribute resourceInstanceAttribute, String resourceInstanceId, Integer index,
+ boolean inTransaction);
+
+ public Either<ComponentInstanceProperty, StorageOperationStatus> updatePropertyValueInResourceInstance(
+ ComponentInstanceProperty resourceInstanceProperty, String resourceInstanceId, boolean inTransaction);
+
+ /**
+ * Updates Attribute on resource instance
+ *
+ * @param attribute
+ * @param resourceInstanceId
+ * @param inTransaction
+ * @return
+ */
+ public Either<ComponentInstanceAttribute, StorageOperationStatus> updateAttributeValueInResourceInstance(
+ ComponentInstanceAttribute attribute, String resourceInstanceId, boolean inTransaction);
+
+ public Either<AttributeValueData, TitanOperationStatus> createOrUpdateAttributeOfResourceInstance(
+ ComponentInstanceAttribute attributeInstanceProperty, String resourceInstanceId);
+
+ public Either<ComponentInstanceInput, StorageOperationStatus> addInputValueToResourceInstance(
+ ComponentInstanceInput input, String resourceInstanceId, Integer innerElement, boolean b);
+
+ public Either<ComponentInstanceInput, StorageOperationStatus> updateInputValueInResourceInstance(
+ ComponentInstanceInput input, String resourceInstanceId, boolean b);
+
+ public Either<Map<String, ArtifactDefinition>, StorageOperationStatus> fetchCIEnvArtifacts(
+ String componentInstanceId);
+
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IComponentOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IComponentOperation.java
new file mode 100644
index 0000000000..e7eff13a9d
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IComponentOperation.java
@@ -0,0 +1,50 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import java.util.List;
+import java.util.Map;
+
+import org.openecomp.sdc.be.dao.graph.datatype.GraphNode;
+import org.openecomp.sdc.be.datatypes.enums.FilterKeyEnum;
+import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
+import org.openecomp.sdc.be.model.ArtifactDefinition;
+import org.openecomp.sdc.be.model.Component;
+
+import fj.data.Either;
+
+public interface IComponentOperation {
+ public <T extends Component> Either<T, StorageOperationStatus> getComponent(String id, Class<T> clazz);
+
+ public Either<List<ArtifactDefinition>, StorageOperationStatus> getComponentArtifactsForDelete(String parentId,
+ NodeTypeEnum parentType, boolean inTransacton);
+
+ public <T> Either<T, StorageOperationStatus> getLightComponent(String id, boolean inTransaction);
+
+ public <T> Either<T, StorageOperationStatus> getComponent(String id, boolean inTransaction);
+
+ public <T> Either<List<T>, StorageOperationStatus> getFilteredComponents(Map<FilterKeyEnum, String> filters,
+ boolean inTranscation);
+
+ public <T extends GraphNode> Either<T, StorageOperationStatus> getComponentByLabelAndId(String uniqueId,
+ NodeTypeEnum nodeType, Class<T> clazz);
+
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IConsumerOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IConsumerOperation.java
new file mode 100644
index 0000000000..290552b382
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IConsumerOperation.java
@@ -0,0 +1,107 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import org.openecomp.sdc.be.resources.data.ConsumerData;
+
+import fj.data.Either;
+
+public interface IConsumerOperation {
+
+ /**
+ * the method updates the node in the graph with the given ConsumerData
+ *
+ * @param consumerData
+ * the object we want to store
+ * @param inTransaction
+ * inTransaction is the operation part of a transaction, in case
+ * the value is false the action will be committed in the end of
+ * the method
+ * @return the updated object returned from the graph
+ */
+ Either<ConsumerData, StorageOperationStatus> updateCredentials(ConsumerData consumerData, boolean inTransaction);
+
+ /**
+ * the method updates the node in the graph with the given ConsumerData
+ *
+ * @param consumerData
+ * the object we want to store
+ * @return the updated object returned from the graph
+ */
+ Either<ConsumerData, StorageOperationStatus> updateCredentials(ConsumerData consumerData);
+
+ /**
+ * the method deletes the node with the given unique id
+ *
+ * @param consumerName
+ * the unique id by witch we will look up the credential we want
+ * to delete
+ * @param inTransaction
+ * inTransaction is the operation part of a transaction, in case
+ * the value is false the action will be committed in the end of
+ * the method
+ * @return the deleted object returned from the graph
+ */
+ Either<ConsumerData, StorageOperationStatus> deleteCredentials(String consumerName, boolean inTransaction);
+
+ /**
+ * the method deletes the node with the given unique id
+ *
+ * @param consumerName
+ * the unique id by witch we will look up the credential we want
+ * to delete
+ * @return the deleted object returned from the graph
+ */
+ Either<ConsumerData, StorageOperationStatus> deleteCredentials(String consumerName);
+
+ /**
+ * the method creates a new nod in the grape representing the supplied
+ * credential object
+ *
+ * @param consumerData
+ * the object we want to store
+ * @param inTransaction
+ * is the operation part of a transaction, in case the value is
+ * false the action will be committed in the end of the method
+ * @return the newly stored object returned from the graph
+ */
+ Either<ConsumerData, StorageOperationStatus> createCredentials(ConsumerData consumerData, boolean inTransaction);
+
+ /**
+ * the method creates a new nod in the grape representing the supplied
+ * credential object
+ *
+ * @param consumerData
+ * the object we want to store
+ * @return the newly stored object returned from the graph
+ */
+ Either<ConsumerData, StorageOperationStatus> createCredentials(ConsumerData consumerData);
+
+ /**
+ * the method retrieves the credential for the given consumer name
+ *
+ * @param consumerName
+ * the unique id by witch we will look up the credential
+ * @return ConsumerData or the error received during the operation
+ */
+ Either<ConsumerData, StorageOperationStatus> getCredentials(String consumerName);
+
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IDataTypeOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IDataTypeOperation.java
new file mode 100644
index 0000000000..b7f1882b45
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IDataTypeOperation.java
@@ -0,0 +1,46 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import org.openecomp.sdc.be.model.DataTypeDefinition;
+
+import fj.data.Either;
+
+public interface IDataTypeOperation {
+
+ /**
+ * @param dataTypeDefinition
+ * @return
+ */
+ public Either<DataTypeDefinition, StorageOperationStatus> addDataType(DataTypeDefinition dataTypeDefinition);
+
+ public Either<DataTypeDefinition, StorageOperationStatus> addDataType(DataTypeDefinition dataTypeDefinition,
+ boolean inTransaction);
+
+ /**
+ * @param name
+ * @return
+ */
+ public Either<DataTypeDefinition, StorageOperationStatus> getDataTypeByName(String name);
+
+ public Either<DataTypeDefinition, StorageOperationStatus> getDataTypeByName(String name, boolean inTransaction);
+
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IElementOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IElementOperation.java
new file mode 100644
index 0000000000..a21c194060
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IElementOperation.java
@@ -0,0 +1,104 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import java.util.List;
+import java.util.Map;
+
+import org.openecomp.sdc.be.dao.api.ActionStatus;
+import org.openecomp.sdc.be.dao.graph.datatype.GraphNode;
+import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
+import org.openecomp.sdc.be.model.ArtifactType;
+import org.openecomp.sdc.be.model.PropertyScope;
+import org.openecomp.sdc.be.model.Tag;
+import org.openecomp.sdc.be.model.category.CategoryDefinition;
+import org.openecomp.sdc.be.model.category.GroupingDefinition;
+import org.openecomp.sdc.be.model.category.SubCategoryDefinition;
+import org.openecomp.sdc.be.resources.data.CategoryData;
+
+import fj.data.Either;
+
+public interface IElementOperation {
+
+ Either<List<CategoryDefinition>, ActionStatus> getAllResourceCategories();
+
+ Either<List<CategoryDefinition>, ActionStatus> getAllServiceCategories();
+
+ Either<List<CategoryDefinition>, ActionStatus> getAllProductCategories();
+
+ public Either<List<Tag>, ActionStatus> getAllTags();
+
+ public Either<List<PropertyScope>, ActionStatus> getAllPropertyScopes();
+
+ public Either<List<ArtifactType>, ActionStatus> getAllArtifactTypes();
+
+ public Either<Map<String, Object>, ActionStatus> getAllDeploymentArtifactTypes();
+
+ public Either<Integer, ActionStatus> getDefaultHeatTimeout();
+
+ public <T extends GraphNode> Either<CategoryData, StorageOperationStatus> getCategoryData(String name,
+ NodeTypeEnum type, Class<T> clazz);
+
+ public <T extends GraphNode> Either<org.openecomp.sdc.be.resources.data.category.CategoryData, StorageOperationStatus> getNewCategoryData(
+ String name, NodeTypeEnum type, Class<T> clazz);
+
+ public Either<Map<String, String>, ActionStatus> getResourceTypesMap();
+
+ Either<CategoryDefinition, ActionStatus> createCategory(CategoryDefinition category, NodeTypeEnum nodeType);
+
+ Either<CategoryDefinition, ActionStatus> createCategory(CategoryDefinition category, NodeTypeEnum nodeType,
+ boolean inTransaction);
+
+ Either<CategoryDefinition, ActionStatus> deleteCategory(NodeTypeEnum nodeType, String categoryId);
+
+ Either<SubCategoryDefinition, ActionStatus> deleteSubCategory(NodeTypeEnum nodeType, String subCategoryId);
+
+ Either<Boolean, ActionStatus> isCategoryUniqueForType(NodeTypeEnum nodeType, String normalizedName);
+
+ Either<SubCategoryDefinition, ActionStatus> createSubCategory(String categoryId, SubCategoryDefinition subCategory,
+ NodeTypeEnum nodeType);
+
+ Either<SubCategoryDefinition, ActionStatus> createSubCategory(String categoryId, SubCategoryDefinition subCategory,
+ NodeTypeEnum nodeType, boolean inTransaction);
+
+ Either<List<CategoryDefinition>, ActionStatus> getAllCategories(NodeTypeEnum nodeType, boolean inTransaction);
+
+ Either<CategoryDefinition, ActionStatus> getCategory(NodeTypeEnum nodeType, String categoryId);
+
+ Either<SubCategoryDefinition, ActionStatus> getSubCategoryUniqueForType(NodeTypeEnum nodeType,
+ String normalizedName);
+
+ Either<Boolean, ActionStatus> isSubCategoryUniqueForCategory(NodeTypeEnum nodeType, String subCategoryNormName,
+ String parentCategoryId);
+
+ Either<GroupingDefinition, ActionStatus> createGrouping(String subCategoryId, GroupingDefinition grouping,
+ NodeTypeEnum nodeType);
+
+ Either<GroupingDefinition, ActionStatus> deleteGrouping(NodeTypeEnum nodeType, String groupingId);
+
+ Either<SubCategoryDefinition, ActionStatus> getSubCategory(NodeTypeEnum nodeType, String subCategoryId);
+
+ Either<Boolean, ActionStatus> isGroupingUniqueForSubCategory(NodeTypeEnum nodeType, String groupingNormName,
+ String parentSubCategoryId);
+
+ Either<GroupingDefinition, ActionStatus> getGroupingUniqueForType(NodeTypeEnum nodeType,
+ String groupingNormalizedName);
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGraphLockOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGraphLockOperation.java
new file mode 100644
index 0000000000..d065ce0b09
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGraphLockOperation.java
@@ -0,0 +1,36 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
+
+public interface IGraphLockOperation {
+
+ public abstract StorageOperationStatus lockComponent(String componentId, NodeTypeEnum nodeType);
+
+ public abstract StorageOperationStatus unlockComponent(String componentId, NodeTypeEnum nodeType);
+
+ public abstract StorageOperationStatus lockComponentByName(String name, NodeTypeEnum nodeType);
+
+ public abstract StorageOperationStatus unlockComponentByName(String name, String componentId,
+ NodeTypeEnum nodeType);
+
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGroupOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGroupOperation.java
new file mode 100644
index 0000000000..4252ec0622
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGroupOperation.java
@@ -0,0 +1,114 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import java.util.List;
+
+import org.openecomp.sdc.be.dao.graph.datatype.GraphRelation;
+import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
+import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
+import org.openecomp.sdc.be.model.GroupDefinition;
+import org.openecomp.sdc.be.resources.data.ArtifactData;
+import org.openecomp.sdc.be.resources.data.GroupData;
+
+import fj.data.Either;
+
+public interface IGroupOperation {
+
+ // add full group to component
+ public Either<GroupData, TitanOperationStatus> addGroupToGraph(NodeTypeEnum nodeTypeEnum, String componentId,
+ GroupDefinition groupDefinition);
+
+ public Either<GroupDefinition, StorageOperationStatus> addGroup(NodeTypeEnum nodeTypeEnum, String componentId,
+ GroupDefinition groupDefinition);
+
+ public Either<GroupDefinition, StorageOperationStatus> addGroup(NodeTypeEnum nodeTypeEnum, String componentId,
+ GroupDefinition groupDefinition, boolean inTransaction);
+
+ public Either<List<GroupDefinition>, StorageOperationStatus> addGroups(NodeTypeEnum nodeTypeEnum,
+ String componentId, List<GroupDefinition> groups, boolean inTransaction);
+
+ // get group
+ public Either<GroupDefinition, TitanOperationStatus> getGroupFromGraph(String uniqueId);
+
+ public Either<GroupDefinition, StorageOperationStatus> getGroup(String uniqueId);
+
+ public Either<GroupDefinition, StorageOperationStatus> getGroup(String uniqueId, boolean inTransaction);
+
+ // get all groups under component
+ public Either<List<GroupDefinition>, TitanOperationStatus> getAllGroupsFromGraph(String componentId,
+ NodeTypeEnum componentTypeEnum);
+
+ public Either<List<GroupDefinition>, StorageOperationStatus> getAllGroups(String componentId,
+ NodeTypeEnum compTypeEnum, boolean inTransaction);
+
+ public Either<List<GroupDefinition>, StorageOperationStatus> getAllGroups(String componentId,
+ NodeTypeEnum compTypeEnum);
+
+ // delete all groups under component
+ public Either<List<GroupDefinition>, TitanOperationStatus> deleteAllGroupsFromGraph(String componentId,
+ NodeTypeEnum compTypeEnum);
+
+ public Either<List<GroupDefinition>, StorageOperationStatus> deleteAllGroups(String componentId,
+ NodeTypeEnum compTypeEnum, boolean inTransaction);
+
+ public Either<List<GroupDefinition>, StorageOperationStatus> deleteAllGroups(String componentId,
+ NodeTypeEnum compTypeEnum);
+
+ // Association
+ public Either<List<String>, StorageOperationStatus> getAssociatedGroupsToComponentInstance(
+ String componentInstanceId, boolean inTransaction);
+
+ public Either<List<String>, StorageOperationStatus> getAssociatedGroupsToComponentInstance(
+ String componentInstanceId);
+
+ public Either<List<String>, TitanOperationStatus> getAssociatedGroupsToComponentInstanceFromGraph(
+ String componentInstanceId);
+
+ public StorageOperationStatus associateGroupsToComponentInstance(List<String> groups, String componentInstanceId,
+ String compInstName, boolean inTransaction);
+
+ public StorageOperationStatus associateGroupsToComponentInstance(List<String> groups, String componentInstanceId,
+ String compInstName);
+
+ public Either<List<GraphRelation>, TitanOperationStatus> associateGroupsToComponentInstanceOnGraph(
+ List<String> groups, String componentInstanceId, String compInstName);
+
+ public Either<List<GraphRelation>, TitanOperationStatus> dissociateAllGroupsFromArtifactOnGraph(String componentId,
+ NodeTypeEnum componentTypeEnum, String artifactId);
+
+ public StorageOperationStatus dissociateAllGroupsFromArtifact(String componentId, NodeTypeEnum componentTypeEnum,
+ String artifactId, boolean inTransaction);
+
+ public StorageOperationStatus dissociateAllGroupsFromArtifact(String componentId, NodeTypeEnum componentTypeEnum,
+ String artifactId);
+
+ public TitanOperationStatus dissociateAndAssociateGroupsFromArtifactOnGraph(String componentId,
+ NodeTypeEnum componentTypeEnum, String oldArtifactId, ArtifactData newArtifact);
+
+ public StorageOperationStatus dissociateAndAssociateGroupsFromArtifact(String componentId,
+ NodeTypeEnum componentTypeEnum, String oldArtifactId, ArtifactData newArtifact, boolean inTransaction);
+
+ public StorageOperationStatus dissociateAndAssociateGroupsFromArtifact(String componentId,
+ NodeTypeEnum componentTypeEnum, String oldArtifactId, ArtifactData newArtifact);
+
+ public boolean isGroupExist(String groupName, boolean inTransaction);
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGroupTypeOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGroupTypeOperation.java
new file mode 100644
index 0000000000..2b612579b6
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGroupTypeOperation.java
@@ -0,0 +1,61 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
+import org.openecomp.sdc.be.model.GroupTypeDefinition;
+import org.openecomp.sdc.be.resources.data.GroupTypeData;
+
+import fj.data.Either;
+
+public interface IGroupTypeOperation {
+
+ /**
+ * @param groupTypeDefinition
+ * @return
+ */
+ public Either<GroupTypeDefinition, StorageOperationStatus> addGroupType(GroupTypeDefinition groupTypeDefinition);
+
+ public Either<GroupTypeDefinition, StorageOperationStatus> addGroupType(GroupTypeDefinition groupTypeDefinition,
+ boolean inTransaction);
+
+ /**
+ * @param uniqueId
+ * @return
+ */
+ public Either<GroupTypeDefinition, StorageOperationStatus> getGroupType(String uniqueId);
+
+ public Either<GroupTypeDefinition, StorageOperationStatus> getGroupType(String uniqueId, boolean inTransaction);
+
+ public Either<GroupTypeDefinition, StorageOperationStatus> getLatestGroupTypeByType(String name);
+
+ public Either<GroupTypeDefinition, StorageOperationStatus> getLatestGroupTypeByType(String name,
+ boolean inTransaction);
+
+ public Either<GroupTypeDefinition, StorageOperationStatus> getGroupTypeByTypeAndVersion(String name,
+ String version);
+
+ public Either<GroupTypeDefinition, StorageOperationStatus> getGroupTypeByTypeAndVersion(String name, String version,
+ boolean inTransaction);
+
+ public Either<GroupTypeData, TitanOperationStatus> getLatestGroupTypeByNameFromGraph(String name);
+
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IHeatParametersOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IHeatParametersOperation.java
new file mode 100644
index 0000000000..f903b4fc41
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IHeatParametersOperation.java
@@ -0,0 +1,46 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import java.util.List;
+
+import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
+import org.openecomp.sdc.be.model.HeatParameterDefinition;
+import org.openecomp.sdc.be.resources.data.HeatParameterValueData;
+
+import fj.data.Either;
+
+public interface IHeatParametersOperation {
+
+ public StorageOperationStatus addPropertiesToGraph(List<HeatParameterDefinition> properties, String resourceId, NodeTypeEnum nodeType);
+
+ public StorageOperationStatus getHeatParametersOfNode(NodeTypeEnum nodeType, String uniqueId, List<HeatParameterDefinition> properties);
+
+ public Either<List<HeatParameterDefinition>, StorageOperationStatus> deleteAllHeatParametersAssociatedToNode(NodeTypeEnum nodeType, String uniqueId);
+
+ public StorageOperationStatus deleteAllHeatValuesAssociatedToNode(NodeTypeEnum parentNodeType, String parentUniqueId);
+
+ public StorageOperationStatus validateAndUpdateProperty(HeatParameterDefinition heatParam);
+
+ public Either<HeatParameterValueData, StorageOperationStatus> updateHeatParameterValue(HeatParameterDefinition heatParam, String artifactId, String resourceInstanceId, String artifactLabel);
+
+ public StorageOperationStatus updateHeatParameters(List<HeatParameterDefinition> properties);
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IInputsOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IInputsOperation.java
new file mode 100644
index 0000000000..2f1f2a70cf
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IInputsOperation.java
@@ -0,0 +1,81 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import java.util.List;
+import java.util.Map;
+
+import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
+import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
+import org.openecomp.sdc.be.model.ComponentInstInputsMap;
+import org.openecomp.sdc.be.model.ComponentInstance;
+import org.openecomp.sdc.be.model.ComponentInstanceInput;
+import org.openecomp.sdc.be.model.DataTypeDefinition;
+import org.openecomp.sdc.be.model.InputDefinition;
+import org.openecomp.sdc.be.resources.data.AttributeData;
+import org.openecomp.sdc.be.resources.data.InputsData;
+
+import com.thinkaurelius.titan.core.TitanVertex;
+
+import fj.data.Either;
+
+public interface IInputsOperation {
+
+ Either<String, StorageOperationStatus> deleteInput(String inputId);
+
+ Either<List<InputDefinition>, TitanOperationStatus> addInputsToGraph(String componentId, NodeTypeEnum nodeType,
+ Map<String, InputDefinition> inputs, Map<String, DataTypeDefinition> dataTypes);
+
+ Either<List<InputDefinition>, StorageOperationStatus> addInputsToComponent(String resourceId, NodeTypeEnum nodeType,
+ ComponentInstInputsMap componentInsInputs, Map<String, DataTypeDefinition> dataTypes);
+
+ TitanOperationStatus findNodeNonInheretedInputs(String uniqueId, List<InputDefinition> inputs);
+
+ Either<List<InputDefinition>, StorageOperationStatus> getInputsOfComponent(String compId, String fromName,
+ int amount);
+
+ Either<List<ComponentInstanceInput>, TitanOperationStatus> getAllInputsOfResourceInstance(
+ ComponentInstance compInstance);
+
+ Either<Map<String, InputDefinition>, StorageOperationStatus> deleteAllInputsAssociatedToNode(NodeTypeEnum nodeType,
+ String uniqueId);
+
+ // TitanOperationStatus findNodeNonInheretedAttribues(String uniqueId,
+ // NodeTypeEnum nodeType, List<AttributeDefinition> attributes);
+
+ Either<InputsData, StorageOperationStatus> addInput(String inputName, InputDefinition inputDefinition,
+ String componentId, NodeTypeEnum nodeType);
+
+ Either<InputsData, TitanOperationStatus> addInputToGraph(String propertyName, InputDefinition inputDefinition,
+ String componentId, NodeTypeEnum nodeType);
+
+ Either<AttributeData, StorageOperationStatus> updateInput(String inputId, InputDefinition newInDef,
+ Map<String, DataTypeDefinition> dataTypes);
+
+ TitanOperationStatus findAllResourceInputs(String uniqueId, List<InputDefinition> inputs);
+
+ Either<InputDefinition, StorageOperationStatus> getInputById(String uniqueId, boolean skipProperties,
+ boolean skipinputsValue);
+
+ TitanOperationStatus addInputsToGraph(TitanVertex metadata, String componentId, Map<String, InputDefinition> inputs,
+ Map<String, DataTypeDefinition> dataTypes);
+
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IInterfaceLifecycleOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IInterfaceLifecycleOperation.java
new file mode 100644
index 0000000000..bbcb61fea8
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IInterfaceLifecycleOperation.java
@@ -0,0 +1,92 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import java.util.Map;
+
+import org.openecomp.sdc.be.dao.graph.datatype.GraphNode;
+import org.openecomp.sdc.be.datatypes.elements.InterfaceDataDefinition;
+import org.openecomp.sdc.be.model.InterfaceDefinition;
+import org.openecomp.sdc.be.model.Operation;
+
+import com.thinkaurelius.titan.core.TitanVertex;
+
+import fj.data.Either;
+
+public interface IInterfaceLifecycleOperation {
+
+ public Either<InterfaceDefinition, StorageOperationStatus> createInterfaceOnResource(InterfaceDefinition interf,
+ String resourceId, String interfaceName, boolean failIfExist, boolean inTransaction);
+
+ public StorageOperationStatus createInterfaceOnResource(InterfaceDefinition interf, String resourceId,
+ String interfaceName, boolean failIfExist, boolean inTransaction, TitanVertex metadataVertex);
+
+ public Either<InterfaceDefinition, StorageOperationStatus> addInterfaceToResource(InterfaceDefinition interf,
+ String resourceId, String interfaceName);
+
+ public Either<InterfaceDefinition, StorageOperationStatus> addInterfaceToResource(InterfaceDefinition interf,
+ String resourceId, String interfaceName, boolean inTransaction);
+
+ // public Either<InterfaceDefinition, StorageOperationStatus>
+ // getInterface(String interfaceId);
+ //
+ // public Either<InterfaceDefinition, StorageOperationStatus>
+ // getInterface(String interfaceId, boolean inTransaction);
+
+ public Either<Operation, StorageOperationStatus> updateInterfaceOperation(String resourceId, String interfaceName,
+ String operationName, Operation interf);
+
+ public Either<Operation, StorageOperationStatus> updateInterfaceOperation(String resourceId, String interfaceName,
+ String operationName, Operation interf, boolean inTransaction);
+
+ public Either<Operation, StorageOperationStatus> deleteInterfaceOperation(String resourceId, String interfaceName,
+ String operationName);
+
+ public Either<Operation, StorageOperationStatus> deleteInterfaceOperation(String resourceId, String interfaceName,
+ String operationName, boolean inTransaction);
+
+ public Either<Map<String, InterfaceDefinition>, StorageOperationStatus> getAllInterfacesOfResource(
+ String resourceId, boolean recursively, boolean inTransaction);
+
+ public Either<Map<String, InterfaceDefinition>, StorageOperationStatus> getAllInterfacesOfResource(
+ String resourceId, boolean recursively);
+
+ public Either<InterfaceDefinition, StorageOperationStatus> deleteInterfaceOfResourceOnGraph(String resourceId,
+ InterfaceDefinition interfaceDef, boolean inTransaction);
+
+ public Either<InterfaceDefinition, StorageOperationStatus> createInterfaceType(InterfaceDefinition interf);
+
+ public Either<InterfaceDefinition, StorageOperationStatus> createInterfaceType(InterfaceDefinition interf,
+ boolean inTransaction);
+
+ public Either<InterfaceDefinition, StorageOperationStatus> getInterface(String interfaceId);
+
+ public StorageOperationStatus associateInterfaceToNode(GraphNode node, InterfaceDefinition interfaceDefinition,
+ TitanVertex metadataVertex);
+
+ public Either<Operation, StorageOperationStatus> getSpecificOperation(String resourceId, String interfaceType,
+ String operationName);
+
+ public Either<InterfaceDefinition, StorageOperationStatus> dissociateInterfaceFromNode(GraphNode node,
+ InterfaceDefinition interfaceDefinition);
+
+ public String getShortInterfaceName(InterfaceDataDefinition interfaceDefinition);
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ILifecycleOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ILifecycleOperation.java
new file mode 100644
index 0000000000..3b82eb692c
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ILifecycleOperation.java
@@ -0,0 +1,65 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
+import org.openecomp.sdc.be.model.Component;
+import org.openecomp.sdc.be.model.LifecycleStateEnum;
+import org.openecomp.sdc.be.model.User;
+import org.openecomp.sdc.be.model.operations.impl.ComponentOperation;
+import org.openecomp.sdc.be.model.operations.impl.ResourceOperation;
+
+import fj.data.Either;
+
+public interface ILifecycleOperation {
+
+ public ResourceOperation getResourceOperation();
+
+ public Either<User, StorageOperationStatus> getComponentOwner(String resourceId, NodeTypeEnum nodeType,
+ boolean inTransaction);
+
+ public Either<? extends Component, StorageOperationStatus> checkinComponent(NodeTypeEnum nodeType,
+ Component component, User modifier, User owner, boolean inTransaction);
+
+ public Either<? extends Component, StorageOperationStatus> requestCertificationComponent(NodeTypeEnum nodeType,
+ Component component, User modifier, User owner, boolean inTransaction);
+
+ public Either<? extends Component, StorageOperationStatus> startComponentCertification(NodeTypeEnum nodeType,
+ Component component, User modifier, User owner, boolean inTransaction);
+
+ public Either<? extends Component, StorageOperationStatus> checkoutComponent(NodeTypeEnum nodeType,
+ Component component, User modifier, User currentOwner, boolean inTransaction);
+
+ public Either<? extends Component, StorageOperationStatus> certifyComponent(NodeTypeEnum nodeType,
+ Component component, User modifier, User currentOwner, boolean inTransaction);
+
+ public Either<? extends Component, StorageOperationStatus> cancelOrFailCertification(NodeTypeEnum nodeType,
+ Component component, User modifier, User owner, LifecycleStateEnum nextState, boolean b);
+
+ public Either<Boolean, StorageOperationStatus> deleteOldComponentVersions(NodeTypeEnum nodeType,
+ String componentName, String uuid, boolean inTransaction);
+
+ public Either<? extends Component, StorageOperationStatus> undoCheckout(NodeTypeEnum nodeType, Component resource,
+ User modifier, User currentOwner, boolean inTransaction);
+
+ public ComponentOperation getComponentOperation(NodeTypeEnum componentType);
+
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IPolicyTypeOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IPolicyTypeOperation.java
new file mode 100644
index 0000000000..fc689c81e2
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IPolicyTypeOperation.java
@@ -0,0 +1,38 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import org.openecomp.sdc.be.model.PolicyTypeDefinition;
+
+import fj.data.Either;
+
+public interface IPolicyTypeOperation {
+
+ Either<PolicyTypeDefinition, StorageOperationStatus> getLatestPolicyTypeByType(String policyTypeName);
+
+ Either<PolicyTypeDefinition, StorageOperationStatus> addPolicyType(PolicyTypeDefinition policyType);
+
+ Either<PolicyTypeDefinition, StorageOperationStatus> getPolicyType(String uniqueId, boolean inTransaction);
+
+ Either<PolicyTypeDefinition, StorageOperationStatus> addPolicyType(PolicyTypeDefinition policyType,
+ boolean inTransaction);
+
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IProductOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IProductOperation.java
new file mode 100644
index 0000000000..bbfea262a7
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IProductOperation.java
@@ -0,0 +1,47 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import java.util.List;
+import java.util.Set;
+
+import org.openecomp.sdc.be.model.LifecycleStateEnum;
+import org.openecomp.sdc.be.model.Product;
+
+import fj.data.Either;
+
+public interface IProductOperation extends IComponentOperation {
+ public Either<List<Product>, StorageOperationStatus> getProductCatalogData(boolean inTransaction);
+
+ public Either<Product, StorageOperationStatus> createProduct(Product product);
+
+ public Either<Product, StorageOperationStatus> createProduct(Product product, boolean inTransaction);
+
+ public Either<Product, StorageOperationStatus> deleteProduct(String productId, boolean inTransaction);
+
+ public Either<List<Product>, StorageOperationStatus> getFollowed(String userId,
+ Set<LifecycleStateEnum> lifecycleStates, Set<LifecycleStateEnum> lastStateStates, boolean inTransaction);
+
+ public void rollback();
+
+ public void commit();
+
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IPropertyOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IPropertyOperation.java
new file mode 100644
index 0000000000..6309510f6d
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IPropertyOperation.java
@@ -0,0 +1,110 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import java.util.Map;
+
+import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
+import org.openecomp.sdc.be.model.DataTypeDefinition;
+import org.openecomp.sdc.be.model.IComplexDefaultValue;
+import org.openecomp.sdc.be.model.PropertyDefinition;
+
+import fj.data.Either;
+
+public interface IPropertyOperation {
+
+ /**
+ * add property to resource
+ *
+ * @param propertyName
+ * @param propertyDefinition
+ * @param nodeType
+ * @param id
+ * @return
+ *
+ * public Either<PropertyDefinition, StorageOperationStatus>
+ * addPropertyToResource( String propertyName, PropertyDefinition
+ * propertyDefinition, NodeTypeEnum nodeType, String id);
+ */
+
+ /**
+ * get property belongs to resource
+ *
+ * @param propertyName
+ * - property name
+ * @param resourceId
+ * - resource unique id
+ * @return
+ */
+ public Either<PropertyDefinition, StorageOperationStatus> getPropertyOfResource(String propertyName,
+ String resourceId);
+
+ /**
+ * Delete all properties of resource
+ *
+ * @param nodeType
+ * @param uniqueId
+ * @return
+ */
+ public Either<Map<String, PropertyDefinition>, StorageOperationStatus> deleteAllPropertiesAssociatedToNode(
+ NodeTypeEnum nodeType, String uniqueId);
+
+ public boolean isPropertyDefaultValueValid(IComplexDefaultValue propertyDefinition,
+ Map<String, DataTypeDefinition> dataTypes);
+
+ public boolean isPropertyTypeValid(IComplexDefaultValue propertyDefinition);
+
+ public ImmutablePair<String, Boolean> isPropertyInnerTypeValid(IComplexDefaultValue propertyDefinition,
+ Map<String, DataTypeDefinition> dataTypes);
+
+ /**
+ * @param dataTypeDefinition
+ * @return
+ */
+ public Either<DataTypeDefinition, StorageOperationStatus> addDataType(DataTypeDefinition dataTypeDefinition);
+
+ public Either<DataTypeDefinition, StorageOperationStatus> addDataType(DataTypeDefinition dataTypeDefinition,
+ boolean inTransaction);
+
+ /**
+ * @param name
+ * @return
+ */
+ public Either<DataTypeDefinition, StorageOperationStatus> getDataTypeByName(String name);
+
+ public Either<DataTypeDefinition, StorageOperationStatus> getDataTypeByName(String name, boolean inTransaction);
+
+ public Either<DataTypeDefinition, StorageOperationStatus> getDataTypeByNameWithoutDerived(String name,
+ boolean inTransaction);
+
+ public Either<DataTypeDefinition, StorageOperationStatus> getDataTypeByNameWithoutDerived(String name);
+
+ public StorageOperationStatus validateAndUpdateProperty(IComplexDefaultValue propertyDefinition,
+ Map<String, DataTypeDefinition> dataTypes);
+
+ public Either<DataTypeDefinition, StorageOperationStatus> updateDataType(DataTypeDefinition newDataTypeDefinition,
+ DataTypeDefinition oldDataTypeDefinition, boolean inTransaction);
+
+ public Either<DataTypeDefinition, StorageOperationStatus> updateDataType(DataTypeDefinition newDataTypeDefinition,
+ DataTypeDefinition oldDataTypeDefinition);
+
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IRequirementOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IRequirementOperation.java
new file mode 100644
index 0000000000..a7a9bf6013
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IRequirementOperation.java
@@ -0,0 +1,85 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import java.util.List;
+import java.util.Map;
+
+import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
+import org.openecomp.sdc.be.model.RequirementDefinition;
+import org.openecomp.sdc.be.model.RequirementImplDef;
+
+import com.thinkaurelius.titan.core.TitanVertex;
+
+import fj.data.Either;
+
+public interface IRequirementOperation {
+
+ /**
+ * add a requirement to resource
+ *
+ * @param reqName
+ * @param reqDefinition
+ * @param nodeType
+ * @param uniqueId
+ * @return
+ */
+ public Either<RequirementDefinition, StorageOperationStatus> addRequirementToResource(String reqName,
+ RequirementDefinition reqDefinition, String resourceId);
+
+ public Either<RequirementDefinition, StorageOperationStatus> addRequirementToResource(String reqName,
+ RequirementDefinition reqDefinition, String resourceId, boolean inTransaction);
+
+ public Either<RequirementDefinition, StorageOperationStatus> addRequirementImplToResource(String reqName,
+ RequirementImplDef reqDefinition, String resourceId, String parentReqUniqueId);
+
+ public Either<RequirementDefinition, StorageOperationStatus> addRequirementImplToResource(String reqName,
+ RequirementImplDef reqDefinition, String resourceId, String parentReqUniqueId, boolean inTransaction);
+
+ /**
+ * get requirement of resource
+ *
+ * @param reqName
+ * @param resourceId
+ * @return
+ */
+ public Either<RequirementDefinition, StorageOperationStatus> getRequirementOfResource(String reqName,
+ String resourceId);
+
+ public Either<RequirementDefinition, StorageOperationStatus> getRequirementOfResource(String reqName,
+ String resourceId, boolean inTransaction);
+
+ public Either<Map<String, RequirementDefinition>, StorageOperationStatus> getAllResourceRequirements(
+ String resourceId, boolean inTransaction);
+
+ Either<Map<String, List<RequirementDefinition>>, StorageOperationStatus> getAllRequirementsOfResourceOnly(
+ String resourceId, boolean inTransaction);
+
+ public Either<Map<String, RequirementDefinition>, TitanOperationStatus> getResourceRequirements(String resourceId);
+
+ public Either<Map<String, RequirementDefinition>, StorageOperationStatus> deleteAllRequirements(String resourceId,
+ boolean inTransaction);
+
+ public Either<RequirementDefinition, TitanOperationStatus> getRequirement(String uniqueId);
+
+ StorageOperationStatus addRequirementToResource(TitanVertex metadataVertex, String reqName,
+ RequirementDefinition reqDefinition, String resourceId, boolean inTransaction);
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IResourceOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IResourceOperation.java
new file mode 100644
index 0000000000..759380c236
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IResourceOperation.java
@@ -0,0 +1,131 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.openecomp.sdc.be.dao.titan.TitanGenericDao;
+import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
+import org.openecomp.sdc.be.model.LifecycleStateEnum;
+import org.openecomp.sdc.be.model.Resource;
+
+import fj.data.Either;
+
+public interface IResourceOperation extends IComponentOperation {
+
+ public TitanGenericDao getTitanGenericDao();
+
+ // public StorageOperationStatus lockResource(Resource resource);
+ //
+ // public StorageOperationStatus unlockResource(Resource resource);
+
+ public Either<Resource, StorageOperationStatus> createResource(Resource resource);
+
+ public Either<Resource, StorageOperationStatus> createResource(Resource resource, boolean inTransaction);
+
+ public Either<Resource, StorageOperationStatus> getResource(String resourceId);
+
+ // public Either<Resource, StorageOperationStatus> getResource_tx(String
+ // resourceId,boolean inTransaction);
+
+ public Either<Resource, StorageOperationStatus> getResource(String resourceId, boolean inTransaction);
+
+ /**
+ * the method retrieves all the certified resources, the returned values are
+ * only abstract or only none abstract according to the supplied parameters.
+ *
+ * @param getAbstract
+ * the value defines which resources to return only abstract or
+ * only none abstract
+ * @return
+ */
+ public Either<List<Resource>, StorageOperationStatus> getAllCertifiedResources(boolean getAbstract);
+
+ public Either<List<Resource>, StorageOperationStatus> getAllCertifiedResources(boolean getAbstract,
+ Boolean isHighest);
+
+ public Either<Boolean, StorageOperationStatus> validateResourceNameExists(String resourceName,
+ ResourceTypeEnum resourceType);
+
+ public Either<Resource, StorageOperationStatus> deleteResource(String resourceId);
+
+ public Either<Resource, StorageOperationStatus> deleteResource(String resourceId, boolean inTransaction);
+
+ public Either<Resource, StorageOperationStatus> updateResource(Resource resource);
+
+ public Either<Resource, StorageOperationStatus> updateResource(Resource resource, boolean inTransaction);
+
+ public Either<Integer, StorageOperationStatus> getNumberOfResourcesByName(String resourceName);
+
+ // public Either<List<ArtifactDefinition>, StorageOperationStatus>
+ // getResourceArtifactsForDelete(Resource resource);
+
+ public Either<List<Resource>, StorageOperationStatus> getFollowed(String userId,
+ Set<LifecycleStateEnum> lifecycleStates, Set<LifecycleStateEnum> lastStateStates, boolean inTransaction);
+
+ public Either<Set<Resource>, StorageOperationStatus> getCatalogData(Map<String, Object> propertiesToMatch,
+ boolean inTransaction);
+
+ public Either<Resource, StorageOperationStatus> getLatestByName(String resourceName, boolean inTransaction);
+
+ public Either<Resource, StorageOperationStatus> overrideResource(Resource resource, Resource resourceSaved,
+ boolean inTransaction);
+
+ public Either<List<Resource>, StorageOperationStatus> getTesterFollowed(String userId,
+ Set<LifecycleStateEnum> lifecycleStates, boolean inTransaction);
+
+ public Either<List<Resource>, StorageOperationStatus> getResourceListByUuid(String uuid, boolean inTransaction);
+
+ public Either<List<Resource>, StorageOperationStatus> getLatestResourceByUuid(String uuid, boolean inTransaction);
+
+ public Either<List<Resource>, StorageOperationStatus> getResourceListBySystemName(String systemName,
+ boolean inTransaction);
+
+ public Either<List<Resource>, StorageOperationStatus> getResourceCatalogData(boolean inTransaction);
+
+ public Either<List<Resource>, StorageOperationStatus> getResourceCatalogDataVFLatestCertifiedAndNonCertified(
+ boolean inTransaction);
+
+ public Either<List<Resource>, StorageOperationStatus> getResourceByNameAndVersion(String name, String version,
+ boolean inTransaction);
+
+ public Either<List<Resource>, StorageOperationStatus> getResourceByNameAndVersion(String name, String version);
+
+ public Either<Resource, StorageOperationStatus> getResourceBySystemNameAndVersion(String name, String version,
+ Map<String, Object> additionalParams, boolean inTransaction);
+
+ // public Either<List<Resource>, StorageOperationStatus>
+ // getAllNotCheckoutResources(boolean getAbstract);
+
+ // public Either<List<Resource>, StorageOperationStatus>
+ // getAllNotCheckoutResources(boolean getAbstract, Boolean isHighest);
+
+ public Either<List<String>, StorageOperationStatus> getAllResourcesMarkedForDeletion();
+
+ public Either<Boolean, StorageOperationStatus> isResourceInUse(String resourceToDelete);
+
+ public Either<Resource, StorageOperationStatus> getLatestByToscaResourceName(String toscaResourceName,
+ boolean inTransaction);
+
+ public Either<Boolean, StorageOperationStatus> validateToscaResourceNameExists(String templateName);
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IServiceOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IServiceOperation.java
new file mode 100644
index 0000000000..05eb7c66f6
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IServiceOperation.java
@@ -0,0 +1,88 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.openecomp.sdc.be.model.DistributionStatusEnum;
+import org.openecomp.sdc.be.model.LifecycleStateEnum;
+import org.openecomp.sdc.be.model.Service;
+import org.openecomp.sdc.be.model.User;
+
+import fj.data.Either;
+
+public interface IServiceOperation extends IComponentOperation {
+
+ public Either<Service, StorageOperationStatus> createService(Service service);
+
+ public Either<Service, StorageOperationStatus> createService(Service service, boolean inTransaction);
+
+ public Either<Service, StorageOperationStatus> getService(String uniqueId);
+
+ public Either<Service, StorageOperationStatus> getService(String uniqueId, boolean inTransaction);
+ // public Either<Service, StorageOperationStatus> getService_tx(String
+ // uniqueId, boolean inTransaction);
+
+ public Either<Service, StorageOperationStatus> deleteService(String uniqueId);
+
+ public Either<Service, StorageOperationStatus> deleteService(String uniqueId, boolean inTransaction);
+
+ public Either<Boolean, StorageOperationStatus> validateServiceNameExists(String serviceName);
+
+ public Either<List<Service>, StorageOperationStatus> getFollowed(String userId,
+ Set<LifecycleStateEnum> lifecycleStates, Set<LifecycleStateEnum> lastStateStates, boolean inTransaction);
+
+ public Either<Service, StorageOperationStatus> updateService(Service service, boolean inTransaction);
+
+ public Either<Set<Service>, StorageOperationStatus> getCatalogData(Map<String, Object> propertiesToMatch,
+ boolean inTransaction);
+
+ public Either<List<Service>, StorageOperationStatus> getTesterFollowed(String userId,
+ Set<LifecycleStateEnum> lifecycleStates, boolean inTransaction);
+
+ public Either<Set<Service>, StorageOperationStatus> getCertifiedServicesWithDistStatus(
+ Map<String, Object> propertiesToMatch, Set<DistributionStatusEnum> distStatus, boolean inTransaction);
+
+ public Either<Service, StorageOperationStatus> updateDestributionStatus(Service service, User user,
+ DistributionStatusEnum distributionStatus);
+
+ public Either<List<Service>, StorageOperationStatus> getServiceCatalogData(boolean inTransaction);
+
+ public Either<List<Service>, StorageOperationStatus> getServiceCatalogDataLatestCertifiedAndNotCertified(
+ boolean inTransaction);
+
+ public Either<Service, StorageOperationStatus> getServiceByNameAndVersion(String name, String version,
+ Map<String, Object> additionalParams, boolean inTransaction);
+
+ public Either<Service, StorageOperationStatus> getServiceByNameAndVersion(String name, String version);
+
+ public Either<Service, StorageOperationStatus> getServiceBySystemNameAndVersion(String name, String version,
+ boolean inTransaction);
+
+ public Either<List<Service>, StorageOperationStatus> getServiceListByUuid(String uuid, boolean inTransaction);
+
+ public Either<List<Service>, StorageOperationStatus> getLatestServiceByUuid(String uuid, boolean inTransaction);
+
+ public Either<List<Service>, StorageOperationStatus> getServiceListBySystemName(String systemName,
+ boolean inTransaction);
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IUserAdminOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IUserAdminOperation.java
new file mode 100644
index 0000000000..dd9766fc83
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IUserAdminOperation.java
@@ -0,0 +1,58 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.apache.tinkerpop.gremlin.structure.Edge;
+import org.openecomp.sdc.be.dao.api.ActionStatus;
+import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
+import org.openecomp.sdc.be.model.FunctionalMenuInfo;
+import org.openecomp.sdc.be.model.User;
+
+import fj.data.Either;
+
+public interface IUserAdminOperation {
+
+ public Either<User, ActionStatus> getUserData(String id, boolean inTransaction);
+
+ public Either<User, ActionStatus> getInactiveUserData(String id);
+
+ public Either<User, StorageOperationStatus> saveUserData(User user);
+
+ public Either<User, StorageOperationStatus> updateUserData(User user);
+
+ public Either<User, StorageOperationStatus> deActivateUser(User user);
+
+ public Either<User, ActionStatus> deleteUserData(String id);
+
+ public Either<List<User>, ActionStatus> getAllUsersWithRole(String role, String status);
+
+ public Either<List<Edge>, StorageOperationStatus> getUserPandingTasksList(User user,
+ Map<String, Object> properties);
+
+ public Either<ImmutablePair<User, FunctionalMenuInfo>, ActionStatus> getUserDataWithFunctionalMenu(String userId);
+
+ public Either<FunctionalMenuInfo, TitanOperationStatus> createOrUpdateFunctionalMenu(String userId,
+ String newFunctionalMenu);
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/StorageOperationStatus.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/StorageOperationStatus.java
new file mode 100644
index 0000000000..c2346a316a
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/StorageOperationStatus.java
@@ -0,0 +1,27 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+public enum StorageOperationStatus {
+
+ OK, CONNECTION_FAILURE, BAD_REQUEST, ENTITY_ALREADY_EXISTS, GRAPH_IS_LOCK, GENERAL_ERROR, USER_NOT_FOUND, PERMISSION_ERROR, HTTP_PROTOCOL_ERROR, STORAGE_NOT_AVAILABLE, READ_ONLY_STORAGE, STORAGE_LEGACY_INDEX_ERROR, SCHEMA_ERROR, TRANSACTION_ERROR, EXEUCTION_FAILED, NOT_FOUND, OPERATION_NOT_SUPPORTED, CATEGORY_NOT_FOUND, PARENT_RESOURCE_NOT_FOUND, MULTIPLE_PARENT_RESOURCE_FOUND, INCONSISTENCY, GRAPH_IS_NOT_AVAILABLE, SCHEMA_VIOLATION, FAILED_TO_LOCK_ELEMENT, INVALID_ID, MATCH_NOT_FOUND, ARTIFACT_NOT_FOUND, DISTR_ENVIRONMENT_NOT_AVAILABLE, DISTR_ENVIRONMENT_NOT_FOUND, DISTR_ENVIRONMENT_SENT_IS_INVALID, DISTR_ARTIFACT_NOT_FOUND, OVERLOAD, INVALID_TYPE, INVALID_VALUE, INVALID_INNER_TYPE, CSAR_NOT_FOUND, GROUP_INVALID_CONTENT, CANNOT_UPDATE_EXISTING_ENTITY, PROPERTY_NAME_ALREADY_EXISTS, INVALID_PROPERTY,;
+
+}