summaryrefslogtreecommitdiffstats
path: root/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IComponentInstanceOperation.java
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IComponentInstanceOperation.java')
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IComponentInstanceOperation.java246
1 files changed, 246 insertions, 0 deletions
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);
+
+}