2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.sdc.be.model.operations.api;
23 import java.util.List;
27 import org.openecomp.sdc.be.dao.titan.TitanGenericDao;
28 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
29 import org.openecomp.sdc.be.model.LifecycleStateEnum;
30 import org.openecomp.sdc.be.model.Resource;
32 import fj.data.Either;
34 public interface IResourceOperation extends IComponentOperation {
36 public TitanGenericDao getTitanGenericDao();
38 // public StorageOperationStatus lockResource(Resource resource);
40 // public StorageOperationStatus unlockResource(Resource resource);
42 public Either<Resource, StorageOperationStatus> createResource(Resource resource);
44 public Either<Resource, StorageOperationStatus> createResource(Resource resource, boolean inTransaction);
46 public Either<Resource, StorageOperationStatus> getResource(String resourceId);
48 // public Either<Resource, StorageOperationStatus> getResource_tx(String
49 // resourceId,boolean inTransaction);
51 public Either<Resource, StorageOperationStatus> getResource(String resourceId, boolean inTransaction);
54 * the method retrieves all the certified resources, the returned values are only abstract or only none abstract according to the supplied parameters.
57 * the value defines which resources to return only abstract or only none abstract
60 public Either<List<Resource>, StorageOperationStatus> getAllCertifiedResources(boolean getAbstract);
62 public Either<List<Resource>, StorageOperationStatus> getAllCertifiedResources(boolean getAbstract, Boolean isHighest);
64 public Either<Boolean, StorageOperationStatus> validateResourceNameExists(String resourceName, ResourceTypeEnum resourceType);
66 public Either<Resource, StorageOperationStatus> deleteResource(String resourceId);
68 public Either<Resource, StorageOperationStatus> deleteResource(String resourceId, boolean inTransaction);
70 public Either<Resource, StorageOperationStatus> updateResource(Resource resource);
72 public Either<Resource, StorageOperationStatus> updateResource(Resource resource, boolean inTransaction);
74 public Either<Integer, StorageOperationStatus> getNumberOfResourcesByName(String resourceName);
76 // public Either<List<ArtifactDefinition>, StorageOperationStatus>
77 // getResourceArtifactsForDelete(Resource resource);
79 public Either<List<Resource>, StorageOperationStatus> getFollowed(String userId, Set<LifecycleStateEnum> lifecycleStates, Set<LifecycleStateEnum> lastStateStates, boolean inTransaction);
81 public Either<Set<Resource>, StorageOperationStatus> getCatalogData(Map<String, Object> propertiesToMatch, boolean inTransaction);
83 public Either<Resource, StorageOperationStatus> getLatestByName(String resourceName, boolean inTransaction);
85 public Either<Resource, StorageOperationStatus> overrideResource(Resource resource, Resource resourceSaved, boolean inTransaction);
87 public Either<List<Resource>, StorageOperationStatus> getTesterFollowed(String userId, Set<LifecycleStateEnum> lifecycleStates, boolean inTransaction);
89 public Either<List<Resource>, StorageOperationStatus> getResourceListByUuid(String uuid, boolean inTransaction);
91 public Either<List<Resource>, StorageOperationStatus> getLatestResourceByUuid(String uuid, boolean inTransaction);
93 public Either<List<Resource>, StorageOperationStatus> getResourceListBySystemName(String systemName, boolean inTransaction);
95 public Either<List<Resource>, StorageOperationStatus> getResourceCatalogData(boolean inTransaction);
97 public Either<List<Resource>, StorageOperationStatus> getResourceCatalogDataVFLatestCertifiedAndNonCertified(boolean inTransaction);
99 public Either<List<Resource>, StorageOperationStatus> getResourceByNameAndVersion(String name, String version, boolean inTransaction);
101 public Either<List<Resource>, StorageOperationStatus> getResourceByNameAndVersion(String name, String version);
103 public Either<Resource, StorageOperationStatus> getResourceBySystemNameAndVersion(String name, String version, Map<String, Object> additionalParams, boolean inTransaction);
105 // public Either<List<Resource>, StorageOperationStatus>
106 // getAllNotCheckoutResources(boolean getAbstract);
108 // public Either<List<Resource>, StorageOperationStatus>
109 // getAllNotCheckoutResources(boolean getAbstract, Boolean isHighest);
111 public Either<List<String>, StorageOperationStatus> getAllResourcesMarkedForDeletion();
113 public Either<Boolean, StorageOperationStatus> isResourceInUse(String resourceToDelete);
115 public Either<Resource, StorageOperationStatus> getLatestByToscaResourceName(String toscaResourceName, boolean inTransaction);
117 public Either<Boolean, StorageOperationStatus> validateToscaResourceNameExists(String templateName);
119 public Either<Boolean, StorageOperationStatus> validateToscaResourceNameExtends(String templateNameCurrent, String templateNameExtends);
123 * @param resource the resource to look for its derived resources
124 * @return all resources which derives from the given resource
126 Either<List<Resource>, StorageOperationStatus> getAllDerivedResources(Resource resource);
130 * @return all root resources (i.e all normatives with tosca name {@code Resource.ROOT_RESOURCE}
132 Either<List<Resource>, StorageOperationStatus> getRootResources();
136 * @return all resources with type VF
138 Either<List<Resource>, StorageOperationStatus> getVFResources();