# AUTOGENERATED - modify shared_anyscale_util in root directory to make changes
import os
from typing import cast


TEST_MODE = os.environ.get("TEST_MODE") == "1"

ANYSCALE_ENDPOINTS = {
    "aws": {
        "development": "https://console.anyscale-dev.dev",
        "staging": "https://console.anyscale-staging.com",
        "production": "https://console.anyscale.com",
        "predeploy": "https://console.predeploy.anyscale.dev",
        "test": "",
    },
    "azure": {
        "staging": "https://console.azure.anyscale-staging.com",
        "predeploy": "https://console.gcplane.azure.predeploy.anyscale.dev",
        "production": "https://console.azure.anyscale.com",
    },
}

ANYSCALE_CORS_ORIGINS = {
    # development
    "https://console.anyscale-dev.dev": "https://*.anyscale-dev.dev",
    # staging
    "https://console.anyscale-staging.com": "https://*.anyscale-staging.com",
    # production
    "https://console.anyscale.com": "https://*.anyscale.com",
    # predeploy
    "https://console.predeploy.anyscale.dev": "https://*.predeploy.anyscale.dev",
}

# Required ExposeHeaders for CORS configuration to support file viewer feature
ANYSCALE_CORS_EXPOSE_HEADERS = ["Accept-Ranges", "Content-Range", "Content-Length"]

ANYSCALE_EXTERNAL_API_ENDPOINTS = {
    "development": "https://anyscale-dev.dev/ext",
    "staging": "https://api.anyscale-staging.com",
    "production": "https://api.anyscale.com",
    "predeploy": "https://api.predeploy.anyscale.dev",
    "test": "",
}

if "ANYSCALE_HOST" in os.environ and os.environ.get("ANYSCALE_HOST") not in {
    url
    for provider_endpoints in ANYSCALE_ENDPOINTS.values()
    for url in provider_endpoints.values()
}:
    anyscale_env_default = "test"
else:
    anyscale_env_default = "production"

ANYSCALE_ENV = cast(
    str,
    os.environ.get("ANYSCALE_DEPLOY_ENVIRONMENT")
    or os.environ.get("DEPLOY_ENVIRONMENT")
    or os.environ.get("ANYSCALE_TEST_ENV", anyscale_env_default),
)
_DEPLOY_INFRA_PROVIDER = os.environ.get("DEPLOY_INFRA_PROVIDER", "aws")


def _get_default_anyscale_host() -> str:
    provider_endpoints = ANYSCALE_ENDPOINTS.get(_DEPLOY_INFRA_PROVIDER, {})
    if ANYSCALE_ENV in provider_endpoints:
        return provider_endpoints[ANYSCALE_ENV]
    return ANYSCALE_ENDPOINTS["aws"][ANYSCALE_ENV]


ANYSCALE_HOST = os.environ.get("ANYSCALE_HOST") or _get_default_anyscale_host()
ANYSCALE_CORS_ORIGIN = ANYSCALE_CORS_ORIGINS.get(
    ANYSCALE_HOST, "https://*.anyscale-dev.dev"
)
ANYSCALE_API_HOST = ANYSCALE_EXTERNAL_API_ENDPOINTS[ANYSCALE_ENV]
