# Database keys
KEY_CONTEXTS            =                'contexts{container_name}'

# Context keys
KEY_CONTEXT             =                'context[{context_uuid}]'
KEY_TOPOLOGIES          = KEY_CONTEXT  + '/topologies{container_name}'
KEY_SERVICES            = KEY_CONTEXT  + '/services{container_name}'

# Context.Topology keys
KEY_TOPOLOGY            = KEY_CONTEXT  + '/topology[{topology_uuid}]'
KEY_DEVICES             = KEY_TOPOLOGY + '/devices{container_name}'
KEY_LINKS               = KEY_TOPOLOGY + '/links{container_name}'

# Context.Topology.Device keys
KEY_DEVICE              = KEY_TOPOLOGY + '/device[{device_uuid}]'
KEY_DEVICE_ENDPOINTS    = KEY_DEVICE   + '/endpoints{container_name}'

# Context.Topology.Device.Endpoint keys
KEY_DEVICE_ENDPOINT     = KEY_DEVICE   + '/endpoint[{endpoint_uuid}]'

# Context.Topology.Link keys
KEY_LINK                = KEY_TOPOLOGY + '/link[{link_uuid}]'
KEY_LINK_ENDPOINTS      = KEY_LINK     + '/endpoints{container_name}'

# Context.Topology.Link.Endpoint Keys
KEY_LINK_ENDPOINT       = KEY_LINK     + '/endpoint[{endpoint_uuid}]'

# Service keys
KEY_SERVICE             = KEY_CONTEXT  + '/service[{service_uuid}]'
KEY_SERVICE_ENDPOINTS   = KEY_SERVICE  + '/endpoints{container_name}'
KEY_SERVICE_CONSTRAINTS = KEY_SERVICE  + '/constraints{container_name}'

# Context.Service.Endpoint Keys
KEY_SERVICE_ENDPOINT    = KEY_SERVICE  + '/endpoint[{endpoint_uuid}]'

# Context.Service.Constraint Keys
KEY_SERVICE_CONSTRAINT  = KEY_SERVICE  + '/constraint[{constraint_type}]'
