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.common.api;
23 import java.util.Arrays;
24 import java.util.HashSet;
25 import java.util.List;
27 import lombok.AllArgsConstructor;
31 * Represents an artifact type that is used for hard-coded type representation.
32 * All artifacts must be configured in the SDC configuration file.
36 public enum ArtifactTypeEnum {
37 AAI_SERVICE_MODEL("AAI_SERVICE_MODEL"),
38 AAI_VF_INSTANCE_MODEL("AAI_VF_INSTANCE_MODEL"),
39 AAI_VF_MODEL("AAI_VF_MODEL"),
40 AAI_VF_MODULE_MODEL("AAI_VF_MODULE_MODEL"),
41 ANSIBLE_PLAYBOOK("ANSIBLE_PLAYBOOK"),
42 APPC_CONFIG("APPC_CONFIG"),
45 CLOUD_TECHNOLOGY_SPECIFIC_ARTIFACT("CLOUD_TECHNOLOGY_SPECIFIC_ARTIFACT"),
46 CONTROLLER_BLUEPRINT_ARCHIVE("CONTROLLER_BLUEPRINT_ARCHIVE"),
49 DCAE_EVENT("DCAE_EVENT"),
50 DCAE_INVENTORY_BLUEPRINT("DCAE_INVENTORY_BLUEPRINT"),
51 DCAE_INVENTORY_DOC("DCAE_INVENTORY_DOC"),
52 DCAE_INVENTORY_EVENT("DCAE_INVENTORY_EVENT"),
53 DCAE_INVENTORY_JSON("DCAE_INVENTORY_JSON"),
54 DCAE_INVENTORY_POLICY("DCAE_INVENTORY_POLICY"),
55 DCAE_INVENTORY_TOSCA("DCAE_INVENTORY_TOSCA"),
56 DCAE_JSON("DCAE_JSON"),
57 DCAE_POLICY("DCAE_POLICY"),
58 DCAE_TOSCA("DCAE_TOSCA"),
60 ETSI_PACKAGE("ETSI_PACKAGE"),
62 HEAT_ARTIFACT("HEAT_ARTIFACT"),
65 HEAT_NESTED("HEAT_NESTED"),
69 LIFECYCLE_OPERATIONS("LIFECYCLE_OPERATIONS"),
70 MODEL_INVENTORY_PROFILE("MODEL_INVENTORY_PROFILE"),
71 MODEL_QUERY_SPEC("MODEL_QUERY_SPEC"),
72 MURANO_PKG("MURANO_PKG"),
73 NETWORK_CALL_FLOW("NETWORK_CALL_FLOW"),
74 ONBOARDED_PACKAGE("ONBOARDED_PACKAGE"),
76 PERFORMANCE_COUNTER("PERFORMANCE_COUNTER"),
78 PM_DICTIONARY("PM_DICTIONARY"),
79 PNF_SW_INFORMATION("PNF_SW_INFORMATION"),
82 SHELL_SCRIPT("SHELL_SCRIPT"),
83 SNMP_POLL("SNMP_POLL"),
84 SNMP_TRAP("SNMP_TRAP"),
85 TOSCA_CSAR("TOSCA_CSAR"),
86 TOSCA_TEMPLATE("TOSCA_TEMPLATE"),
87 UCPE_LAYER_2_CONFIGURATION("UCPE_LAYER_2_CONFIGURATION"),
88 VENDOR_LICENSE("VENDOR_LICENSE"),
89 VES_EVENTS("VES_EVENTS"),
90 VF_LICENSE("VF_LICENSE"),
91 VF_MODULES_METADATA("VF_MODULES_METADATA"),
92 VNF_CATALOG("VNF_CATALOG"),
95 YANG_MODULE("YANG_MODULE"),
98 private final String type;
101 * Parse a string to a {@link ArtifactTypeEnum}, ignoring the case.
103 * @param type the artifact type
104 * @return The artifact type if its represented in the present enum, otherwise {@code null}.
106 public static ArtifactTypeEnum parse(final String type) {
107 for (final ArtifactTypeEnum artifactType : ArtifactTypeEnum.values()) {
108 if (artifactType.getType().equalsIgnoreCase(type)) {
116 * Gets the list of mandatory/base SDC artifacts. Those artifacts must be configured.
118 * @return A set of base artifact types
120 public static Set<ArtifactTypeEnum> getBaseArtifacts() {
121 final List<ArtifactTypeEnum> artifactTypeEnums = Arrays.asList(
123 AAI_VF_INSTANCE_MODEL,
130 CLOUD_TECHNOLOGY_SPECIFIC_ARTIFACT,
131 CONTROLLER_BLUEPRINT_ARCHIVE,
134 DCAE_INVENTORY_BLUEPRINT,
136 DCAE_INVENTORY_EVENT,
138 DCAE_INVENTORY_POLICY,
139 DCAE_INVENTORY_TOSCA,
152 LIFECYCLE_OPERATIONS,
153 MODEL_INVENTORY_PROFILE,
170 UCPE_LAYER_2_CONFIGURATION,
181 return new HashSet<>(artifactTypeEnums);