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"),
61 HEAT_ARTIFACT("HEAT_ARTIFACT"),
64 HEAT_NESTED("HEAT_NESTED"),
68 LIFECYCLE_OPERATIONS("LIFECYCLE_OPERATIONS"),
69 MODEL_INVENTORY_PROFILE("MODEL_INVENTORY_PROFILE"),
70 MODEL_QUERY_SPEC("MODEL_QUERY_SPEC"),
71 MURANO_PKG("MURANO_PKG"),
72 NETWORK_CALL_FLOW("NETWORK_CALL_FLOW"),
73 ONBOARDED_PACKAGE("ONBOARDED_PACKAGE"),
75 PERFORMANCE_COUNTER("PERFORMANCE_COUNTER"),
77 PM_DICTIONARY("PM_DICTIONARY"),
78 PNF_SW_INFORMATION("PNF_SW_INFORMATION"),
81 SHELL_SCRIPT("SHELL_SCRIPT"),
82 SNMP_POLL("SNMP_POLL"),
83 SNMP_TRAP("SNMP_TRAP"),
84 TOSCA_CSAR("TOSCA_CSAR"),
85 TOSCA_TEMPLATE("TOSCA_TEMPLATE"),
86 UCPE_LAYER_2_CONFIGURATION("UCPE_LAYER_2_CONFIGURATION"),
87 VENDOR_LICENSE("VENDOR_LICENSE"),
88 VES_EVENTS("VES_EVENTS"),
89 VF_LICENSE("VF_LICENSE"),
90 VF_MODULES_METADATA("VF_MODULES_METADATA"),
91 VNF_CATALOG("VNF_CATALOG"),
94 YANG_MODULE("YANG_MODULE"),
97 private final String type;
100 * Parse a string to a {@link ArtifactTypeEnum}, ignoring the case.
102 * @param type the artifact type
103 * @return The artifact type if its represented in the present enum, otherwise {@code null}.
105 public static ArtifactTypeEnum parse(final String type) {
106 for (final ArtifactTypeEnum artifactType : ArtifactTypeEnum.values()) {
107 if (artifactType.getType().equalsIgnoreCase(type)) {
115 * Gets the list of mandatory/base SDC artifacts. Those artifacts must be configured.
117 * @return A set of base artifact types
119 public static Set<ArtifactTypeEnum> getBaseArtifacts() {
120 final List<ArtifactTypeEnum> artifactTypeEnums = Arrays.asList(
122 AAI_VF_INSTANCE_MODEL,
129 CLOUD_TECHNOLOGY_SPECIFIC_ARTIFACT,
130 CONTROLLER_BLUEPRINT_ARCHIVE,
133 DCAE_INVENTORY_BLUEPRINT,
135 DCAE_INVENTORY_EVENT,
137 DCAE_INVENTORY_POLICY,
138 DCAE_INVENTORY_TOSCA,
151 LIFECYCLE_OPERATIONS,
152 MODEL_INVENTORY_PROFILE,
169 UCPE_LAYER_2_CONFIGURATION,
180 return new HashSet<>(artifactTypeEnums);