39cfdec4c4d723283302b85bf4bab21a36e1ee53
[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          * properties marked as required
65          * <br><b>comma separated list</b>
66          */
67         REQUIRED_PROPS("requiredProps"),
68         /**
69          * uri template for this object
70          */
71         URI_TEMPLATE("uriTemplate"),
72         /**
73          * abstract type from which this object extends
74          */
75         EXTENDS("extends"),
76         /**
77          * comma separated list of objects who inherit this object<br>
78          * <b>only valid on abstract objects</b>
79          */
80         INHERITORS("inheritors"),
81         /**
82          * a value of true marks this object as abstract
83          * abstract objects cannot be read/written directly
84          * they resolve to "or queries" when used in queries
85          */
86         ABSTRACT("abstract"),
87         /**
88          * comma separated list of properties which are alternate ways
89          * to identify this object
90          */
91         ALTERNATE_KEYS_1("alternateKeys1"),
92         /**
93          * the maximum allowable retrievable depth 
94          */
95         MAXIMUM_DEPTH("maximumDepth"),
96         /**
97          * collection of other objects to retrieve along with this one
98          *  <br><b>comma separated list</b>
99          */
100         CROSS_ENTITY_REFERENCE("crossEntityReference"),
101         /**
102          * Marks that this object can be linked to via dataLink 
103          */
104         CAN_BE_LINKED("canBeLinked"),
105         /**
106          * The entity contains properties that are suggestible
107          */
108         CONTAINS_SUGGESTIBLE_PROPS("containsSuggestibleProps"),
109         /**
110          * A list of aliases for the entity name (for AAI UI searches)
111          */
112         SUGGESTION_ALIASES("suggestionAliases"),
113         /**
114          * a value of true allows this object to be read directly
115          */
116         ALLOW_DIRECT_READ("allowDirectRead"),
117         /**
118          * a value of true allows this object to be written directly
119          */
120         ALLOW_DIRECT_WRITE("allowDirectWrite");
121         
122          private final String name;
123
124           private ObjectMetadata(String name) { 
125             this.name = name;
126           }
127
128           @Override public String toString() {
129             return name; 
130           }
131         
132 }