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