31016717bcf23e263d19421e390ed41459910edb
[mdsal.git] / common / mdsal-common-api / src / main / java / org / opendaylight / mdsal / common / api / LogicalDatastoreType.java
1 /*
2  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.mdsal.common.api;
9
10 /**
11  * The concept of a logical data store, similar to RFC8342.
12  */
13 // FIXME: 3.0.0: turn this into an interface so it can be externally-defined?
14 // FIXME: 3.0.0: note that mount points can have different types and policies, which can potentially be mapped
15 public enum LogicalDatastoreType {
16     /**
17      * Logical datastore representing operational state of the system and it's components. This datastore is used
18      * to describe operational state of the system and it's operation related data.
19      *
20      * <p>
21      * It is defined to:
22      * <ul>
23      *   <li>contain both {@code config=true} and {@code config=false} nodes</li>
24      *   <li>be replicated across all nodes by default, individual shards may have different strategies, which need to
25      *       be documented
26      *   </li>
27      * </ul>
28      */
29     OPERATIONAL,
30     /**
31      * Logical Datastore representing configuration state of the system and it's components. This datastore is used
32      * to describe intended state of the system and intended operation mode.
33      *
34      * <p>
35      * It is defined to:
36      * <ul>
37      *   <li>contain only {@code config=true} nodes</li>
38      *   <li>be replicated across all nodes by default, individual shards may have different strategies, which need to
39      *       be documented
40      *   </li>
41      *   <li>be persisted on all nodes by default, individual shards may have different strategies, which need to
42      *       be documented
43      *   </li>
44      * </ul>
45      */
46     CONFIGURATION
47 }