"""Global constants defining endpoint naming conventions, etc."""
import datetime
import os
# this must be an absolute path
ASSETS_DIR = os.path.join(os.path.dirname(__file__), 'assets')
_MODEL_CONTEXT = 'model_context'
_PREDICTIONS = 'predictions'
LIVENESS_ENDPOINT = '/-/alive'
READINESS_ENDPOINT = '/-/ready'
ENDPOINT_TEMPLATE = '{namespace}/{service_name}/{api_version}/{action}'
[docs]
class BASE_KEYS:
REQUEST_ID = 'request_id'
[docs]
class HEALTH_CHECK_KEYS(BASE_KEYS):
PORTER_VERSION = 'porter_version'
DEPLOYED_ON = 'deployed_on'
APP_META = 'app_meta'
SERVICES = 'services'
[docs]
class HEALTH_CHECK_VALUES:
IS_READY = 'READY'
DEPLOYED_ON = datetime.datetime.now().isoformat()
[docs]
class HEALTH_CHECK_SERVICES_KEYS:
ENDPOINT = 'endpoint'
STATUS = 'status'
MODEL_CONTEXT = _MODEL_CONTEXT
[docs]
class GENERIC_ERROR_KEYS(BASE_KEYS):
ERROR = 'error'
[docs]
class MODEL_CONTEXT_ERROR_KEYS:
MODEL_CONTEXT = 'model_context'
[docs]
class ERROR_BODY_KEYS:
NAME = 'name'
MESSAGES = 'messages'
TRACEBACK = 'traceback'
USER_DATA = 'user_data'
[docs]
class MODEL_CONTEXT_KEYS:
MODEL_NAME = 'model_name'
API_VERSION = 'api_version'
MODEL_META = 'model_meta'
[docs]
class PREDICTION_KEYS(BASE_KEYS):
MODEL_CONTEXT = _MODEL_CONTEXT
PREDICTIONS = _PREDICTIONS
[docs]
class PREDICTION_PREDICTIONS_KEYS:
ID = 'id'
PREDICTION = 'prediction'