#!/usr/bin/env python3
# MIT License
#
# Copyright (c) 2020 FABRIC Testbed
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#
#
# Author: Komal Thareja (kthare10@renci.org)
class Constants:
    NAME = "name"
    MESSAGE_ID = "message_id"
    CALLBACK_TOPIC = "callback_topic"
    KAFKA_ERROR = "kafka_error"
    ID_TOKEN = "id_token"

    PEER = "peer"

    ACTOR_GUID = "actor_guid"
    MODE = "mode"

    FAILED = "failed"
    MESSAGE = "message"

    RTYPE = "rtype"
    PARENT_ID = "parent_id"
    STATE = "state"
    SEQUENCE = "sequence"
    RESERVATION_ID = "reservation_id"
    SLICE_ID = "slice_id"
    ACTOR_ID = "actor_id"
    PROPERTIES = "properties"
    SLIVER = "sliver"
    MAINT_INFO = "maint_info"
    POAS = "poas"
    INFO = "info"
    VCPU_CPU_MAP = "vcpu_cpu_map"
    NODE_SET = "node_set"
    KEYS = "keys"
    BDF = "bdf"
    BROKER = "broker"
    TICKET = "ticket"
    RENEWABLE = "renewable"
    RENEW_TIME = "renew_time"
    UNIT_SET = "unit_set"
    UNITS = "units"
    PROXIES = "proxies"
    DELEGATIONS = "delegations"
    ACTORS = "actors"
    MODEL = "model"
    AUTHORITY = "authority"

    RESERVATION = "reservation"
    RESERVATIONS = "reservations"
    RESERVATION_STATES = "reservation_states"
    AUTH = "auth"

    TYPE = "type"
    OWNER = "owner"
    DESCRIPTION = "description"
    POLICY_CLASS = "policy_class"
    POLICY_MODULE = "policy_module"
    ACTOR_CLASS = "actor_class"
    ACTOR_MODULE = "actor_module"
    ONLINE = "online"
    MANAGEMENT_CLASS = "management_class"
    MANAGEMENT_MODULE = "management_module"
    ID = "id"
    ATTEMPT = "attempt"
    POLICY_GUID = "policy_guid"

    RESERVATION_LIST = "reservation_list"
    RESERVATION_OBJ = "reservation_obj"
    SLICE_OBJ = "slice_obj"
    SLICE = "slice"
    SLICES = "slices"
    TERM = "term"
    RESOURCE_SET = "resource_set"
    RESOURCE_TICKET = "resource_ticket"

    UPDATE_DATA = "update_data"
    DELEGATION = "delegation"
    STATUS = "status"
    SITES = "sites"

    REDEEM_PREDECESSORS = "redeem_processors"

    ERROR_INVALID_ARGUMENTS = "Invalid arguments"
    ERROR_INVALID_MESSAGE = "Invalid message"
