Support querying of model by type
[sdc.git] / catalog-dao / src / main / java / org / openecomp / sdc / be / dao / neo4j / GraphPropertiesDictionary.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
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
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
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=========================================================
19  */
20 package org.openecomp.sdc.be.dao.neo4j;
21
22 import lombok.AllArgsConstructor;
23 import lombok.Getter;
24
25 @AllArgsConstructor
26 @Getter
27 public enum GraphPropertiesDictionary {
28     // @formatter:off
29     //                                  field name                                      class type                              unique          indexed
30     //                                                                                          stored in graph                         index
31     // Common
32     LABEL                               ("nodeLabel",                           String.class,                           false,          true),
33     HEALTH_CHECK                ("healthcheckis",                       String.class,                           true,           true),
34     // Resource
35     NAME                                ("name",                                        String.class,                           false,          true),
36     TOSCA_RESOURCE_NAME ("toscaResourceName",           String.class,                           false,          true),
37     CATEGORY_NAME               ("categoryName",                        String.class,                           false,          true),
38     VERSION                             ("version",                                     String.class,                           false,          true),
39     CREATION_DATE               ("creationDate",                        Long.class,                             false,          false),
40     LAST_UPDATE_DATE    ("modificationDate",            Long.class,                             false,          false),
41     IS_HIGHEST_VERSION  ("highestVersion",                      Boolean.class,                          false,          true),
42     IS_ABSTRACT                 ("abstract",                            Boolean.class,                          false,          true),
43     DESCRIPTION                 ("description",                         String.class,                           false,          false),
44     UNIQUE_ID                   ("uid",                                         String.class,                           true,           true),
45     STATE                               ("state",                                       String.class,                           false,          true),
46     TYPE                                ("type",                                        String.class,                           false,          true),
47     REQUIRED                    ("required",                            Boolean.class,                          false,          false),
48     DEFAULT_VALUE               ("defaultValue",                        String.class,                           false,          false),
49     CONSTRAINTS                 ("constraints",                         String.class,                   false,          false),
50     CONTACT_ID                  ("contactId",                           String.class,                           false,          false),
51     VENDOR_NAME                 ("vendorName",                          String.class,                           false,          false),
52     VENDOR_RELEASE              ("vendorRelease",                       String.class,                           false,          false),
53     MODEL               ("model",                   String.class,               false,      false),
54     MODEL_TYPE          ("modelType",               String.class,               false,      false),
55     CONFORMANCE_LEVEL   ("conformanceLevel",            String.class,                           false,          false),
56     ICON                                ("icon",                                        String.class,                           false,          false),
57     TAGS                                ("tags",                                        String.class,                   false,          false),
58     UUID                                ("uuid",                                        String.class,                           false,          true),
59     COST                                ("cost",                                        String.class,                           false,          false),
60     LICENSE_TYPE                ("licenseType",                         String.class,                           false,          false),
61     NORMALIZED_NAME             ("normalizedName",                      String.class,                           false,          true),
62     SYSTEM_NAME                 ("systemName",                          String.class,                           false,          true),
63     IS_DELETED                  ("deleted",                                     Boolean.class,                          false,          true),
64     RESOURCE_TYPE               ("resourceType",                        String.class,                           false,          true),
65     ENTRY_SCHEMA                ("entry_schema",                        String.class,                           false,          false),
66     CSAR_UUID                   ("csarUuid",                            String.class,                           false,          true),
67     CSAR_VERSION                ("csarVersion",                         String.class,                           false,          true),
68     IMPORTED_TOSCA_CHECKSUM     ("importedToscaChecksum",                               String.class,                           false,          true),
69     GENERATED                   ("generated",                           Boolean.class,                          false,          false),
70     // User
71     USERID                              ("userId",                                      String.class,                           true,           true),
72     EMAIL                               ("email",                                       String.class,                           false,          false),
73     FIRST_NAME                  ("firstName",                           String.class,                           false,          false),
74     LAST_NAME                   ("lastName",                            String.class,                           false,          false),
75     ROLE                                ("role",                                        String.class,                           false,          true),
76     USER_STATUS                 ("status",                                      String.class,                           false,          true),
77     VALID_SOURCE_TYPES  ("validSourceTypes",        String.class,               false,          false),
78     VALID_TARGET_TYPES  ("validTargetTypes",        String.class,               false,      false),
79     NODE                                ("node",                                        String.class,                           false,          false),
80     VALUE                               ("value",                                       String.class,                           false,          false),
81     HIDDEN                              ("Hidden",                                      Boolean.class,                          false,          false),
82     PROPERTIES                  ("properties",                          String.class,                           false,          false),
83     POSITION_X                  ("positionX",                           String.class,                           false,          false),
84     POSITION_Y                  ("positionY",                           String.class,                           false,          false),
85     RELATIONSHIP_TYPE   ("relationshipType",            String.class,                           false,          false),
86     ARTIFACT_TYPE               ("artifactType",                        String.class,                           false,          true),
87     ARTIFACT_REF                ("artifactRef",                         String.class,                           false,          false),
88     ARTIFACT_REPOSITORY ("artifactRepository",          String.class,                           false,          false),
89     ARTIFACT_CHECKSUM   ("artifactChecksum",            String.class,                           false,          false),
90     CREATOR                             ("creator",                                     String.class,                           false,          false),
91     CREATOR_ID          ("creatorId",                           String.class,                           false,          false),
92     LAST_UPDATER                ("lastUpdater",                         String.class,                           false,          false),
93     CREATOR_FULL_NAME   ("creatorFullName",                     String.class,                           false,          false),
94     UPDATER_FULL_NAME   ("updaterFullName",                     String.class,                           false,          false),
95     ES_ID                               ("esId",                                        String.class,                           false,          false),
96     ARTIFACT_LABEL              ("artifactLabel",                       String.class,                           false,          true),
97     ARTIFACT_DISPLAY_NAME("artifactDisplayName",        String.class,                           false,          true),
98     INSTANCE_COUNTER    ("instanceCounter",                     Integer.class,                          false,          false),
99     PROJECT_CODE                ("projectCode",                         String.class,                           false,          false),
100     DISTRIBUTION_STATUS ("distributionStatus",          String.class,                           false,          false),
101     IS_VNF                              ("isVNF",                                       Boolean.class,                          false,          false),
102     LAST_LOGIN_TIME             ("lastLoginTime",                       Long.class,                                     false,          true),
103     ATTRIBUTE_COUNTER   ("attributeCounter",            Integer.class,                          false,          false),
104     INPUT_COUNTER               ("inputCounter",                        Integer.class,                          false,          false),
105     PROPERTY_COUNTER    ("propertyCounter",                     Integer.class,                          false,          false),
106     API_URL                             ("apiUrl",                                      String.class,                           false,          false),
107     SERVICE_API                 ("serviceApi",                          Boolean.class,                          false,          true),
108     ADDITIONAL_INFO_PARAMS ("additionalInfo",       String.class,              false,           false),
109     ADDITIONAL_INFO_ID_TO_KEY ("idToKey",               String.class,              false,               false),
110     ARTIFACT_GROUP_TYPE ("artifactGroupType",           String.class,              false,               true),
111     ARTIFACT_TIMEOUT    ("timeout",                                     Integer.class,                          false,          false),
112     IS_ACTIVE                   ("isActive",                            Boolean.class,                          false,          true),
113     PROPERTY_VALUE_RULES ("propertyValueRules",         String.class,                           false,          false),
114     //authantication
115     CONSUMER_NAME               ("consumerName",                        String.class,                           true,           true),
116     CONSUMER_PASSWORD   ("consumerPassword",            String.class,                           false,          false),
117     CONSUMER_SALT               ("consumerSalt",                        String.class,                           false,          false),
118     CONSUMER_LAST_AUTHENTICATION_TIME   ("consumerLastAuthenticationTime",              Long.class,                             false,          false),
119     CONSUMER_DETAILS_LAST_UPDATED_TIME  ("consumerDetailsLastupdatedtime",              Long.class,                             false,          false),
120     LAST_MODIFIER_USER_ID("lastModfierUserId",          String.class,                           false,          false),
121     ARTIFACT_VERSION    ("artifactVersion",                     String.class,                           false,          false),
122     ARTIFACT_UUID               ("artifactUUID",                        String.class,                           false,          false),
123     PAYLOAD_UPDATE_DATE ("payloadUpdateDate",           Long.class,                             false,          false),
124     HEAT_PARAMS_UPDATE_DATE     ("heatParamsUpdateDate",Long.class,                             false,          false),
125     //product
126     FULL_NAME                   ("fullName",                            String.class,               false,              true),
127     //was changed as part of migration from 1602 to 1602 ( in 1602 was defined as unique. it's problem to reconfigure the index )
128     CONSTANT_UUID               ("constantUuidNew",                     String.class,               false,              true),
129     CONTACTS                    ("contacts",                            String.class,                           false,          false),
130     //categorys
131     ICONS               ("icons",                   String.class,               false,      false),
132     METADATA_KEYS       ("metadataKeys",            String.class,               false,      false),
133     USE_SERVICE_SUBSTITUTION_FOR_NESTED_SERVICES   ("useServiceSubstitutionForNestedServices",      Boolean.class,                 false,      false),
134     //relation
135     CAPABILITY_OWNER_ID ("capOwnerId",                          String.class,                           false,          false),
136     REQUIREMENT_OWNER_ID ("reqOwnerId",                         String.class,                           false,          false),
137     CAPABILITY_ID               ("capabiltyId",                         String.class,                           false,          false),
138     REQUIREMENT_ID              ("requirementId",                       String.class,                           false,          false),
139     PROPERTY_ID                 ("propertyId",                          String.class,                           false,          false),
140     PROPERTY_NAME               ("propertyName",                        String.class,                           false,          false),
141     //component instance
142     ORIGIN_TYPE                 ("originType",                          String.class,                           false,          false),
143     //requirement & capabilty
144     MIN_OCCURRENCES             ("minOccurrences",                      String.class,                           false,          false),
145     MAX_OCCURRENCES             ("maxOccurrences",                      String.class,                           false,          false),
146     //Data type
147     DERIVED_FROM                ("derivedFrom",                         String.class,                           false,          false),
148     MEMBERS                             ("members",                                     String.class,                           false,          false),
149     TARGETS                             ("targets ",                            String.class,                           false,          false),
150     METADATA                    ("metadata",                            String.class,                           false,          false),
151     INVARIANT_UUID              ("invariantUuid",                       String.class,                           false,          true),
152     IS_BASE                             ("isBase",                                      Boolean.class,                          false,          true),
153     GROUP_UUID                  ("groupUuid",                       String.class,                               false,          true),
154     STATUS                              ("status",                              String.class,                           false,          false),
155     FUNCTIONAL_MENU             ("functionalMenu",                      String.class,                           false,          false),
156     REQUIRED_ARTIFACTS  ("requiredArtifacts",           String.class,                           false,          false),
157     CUSTOMIZATION_UUID  ("customizationUUID",           String.class,                           false,          false),
158     IS_ARCHIVED                 ("isArchived",                      Boolean.class,                              false,          true),
159     IS_VSP_ARCHIVED             ("isVspArchived",                   Boolean.class,                              false,          true),
160     ARCHIVE_TIME                ("archiveTime",                     Long.class,                                 false,          true);
161     // @formatter:on
162
163     private final String property;
164     private final Class<?> clazz;
165     private final boolean unique;
166     private final boolean indexed;
167
168 }