Initial commit with all the necessary files
[aai/aai-common.git] / aai-schema / src / main / java / org / openecomp / aai / schema / enums / ObjectMetadata.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * org.openecomp.aai
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
21 package org.openecomp.aai.schema.enums;
22
23 public enum ObjectMetadata {
24
25         /**
26          * description of object
27          */
28         DESCRIPTION("description"),
29         /**
30          * names of properties to appear in relationship-lists
31          * and parent objects in DMaaP messages
32          * <br><b>comma separated list</b>
33          */
34         NAME_PROPS("nameProps"),
35         /**
36          * names of properties to be indexed in the
37          * db schema
38          * <br><b>comma separated list</b>
39          */
40         INDEXED_PROPS("indexedProps"),
41         /**
42          * name of the object this one depends on
43          */
44         DEPENDENT_ON("dependentOn"),
45         /**
46          * name of the object which contains this object
47          */
48         CONTAINER("container"),
49         /**
50          * the top level namespace to which this object belongs<br>
51          * <b>only valid on top level objects</b>
52          */
53         NAMESPACE("namespace"),
54         /**
55          * properties which are searchable via the GUI
56          * <br><b>comma separated list</b>
57          */
58         SEARCHABLE("searchable"),
59         /**
60          * properties marked as unique in the db schema
61          * <br><b>comma separated list</b>
62          */
63         UNIQUE_PROPS("uniqueProps"),
64         /**
65          * abstract type from which this object extends
66          */
67         EXTENDS("extends"),
68         /**
69          * comma separated list of objects who inherit this object<br>
70          * <b>only valid on abstract objects</b>
71          */
72         INHERITORS("inheritors"),
73         /**
74          * a value of true marks this object as abstract
75          * abstract objects cannot be read/written directly
76          * they resolve to "or queries" when used in queries
77          */
78         ABSTRACT("abstract"),
79         /**
80          * comma separated list of properties which are alternate ways
81          * to identify this object
82          */
83         ALTERNATE_KEYS_1("alternateKeys1"),
84         /**
85          * the maximum allowable retrievable depth 
86          */
87         MAXIMUM_DEPTH("maximumDepth"),
88         /**
89          * collection of other objects to retrieve along with this one
90          *  <br><b>comma separated list</b>
91          */
92         CROSS_ENTITY_REFERENCE("crossEntityReference"),
93         /**
94          * Marks that this object can be linked to via dataLink 
95          */
96         CAN_BE_LINKED("canBeLinked"),
97         /**
98          * The entity contains properties that are suggestible
99          */
100         CONTAINS_SUGGESTIBLE_PROPS("containsSuggestibleProps"),
101         /**
102          * A list of aliases for the entity name (for AAI UI searches)
103          */
104         SUGGESTION_ALIASES("suggestionAliases"),
105         /**
106          * a value of true allows this object to be read directly
107          */
108         ALLOW_DIRECT_READ("allowDirectRead"),
109         /**
110          * a value of true allows this object to be written directly
111          */
112         ALLOW_DIRECT_WRITE("allowDirectWrite");
113         
114          private final String name;
115
116           private ObjectMetadata(String name) { 
117             this.name = name;
118           }
119
120           @Override public String toString() {
121             return name; 
122           }
123         
124 }