public:
  bind:
    address: 'BIND_ADDRESS'
    port: 'PORT'

  metrics:
    prometheus:
      enabled: 'METRICS_PROMETHEUS_ENABLED'
      endpointEnabled: 'METRICS_PROMETHEUS_ENDPOINT_ENABLED'
    influx:
      enabled: 'METRICS_INFLUX_ENABLED'
      url: 'METRICS_INFLUX_URL'
      timeoutMilliseconds: 'METRICS_INFLUX_TIMEOUT_MILLISECONDS'
      intervalSeconds: 'METRICS_INFLUX_INTERVAL_SECONDS'
      instanceIdFrom: 'METRICS_INFLUX_INSTANCE_ID_FROM'
      instanceIdEnvVarName: 'METRICS_INFLUX_INSTANCE_ID_ENV_VAR_NAME'
      envLabel: 'METRICS_INFLUX_ENV_LABEL'

  ssl:
    isSecure: 'HTTPS'
    key: 'HTTPS_KEY'
    cert: 'HTTPS_CRT'

  redirectUrl: 'REDIRECT_URI'

  rasterUrl: 'RASTER_URL'

  cors:
    allowedOrigin:
      __name: 'ALLOWED_ORIGIN'
      __format: 'json'

  services:
    bitbucketServer:
      authorizedOrigins: 'BITBUCKET_SERVER_ORIGINS'
    drone:
      authorizedOrigins: 'DRONE_ORIGINS'
    github:
      baseUri: 'GITHUB_URL'
      debug:
        enabled: 'GITHUB_DEBUG_ENABLED'
        intervalSeconds: 'GITHUB_DEBUG_INTERVAL_SECONDS'
    jenkins:
      authorizedOrigins: 'JENKINS_ORIGINS'
    jira:
      authorizedOrigins: 'JIRA_ORIGINS'
    nexus:
      authorizedOrigins: 'NEXUS_ORIGINS'
    npm:
      authorizedOrigins: 'NPM_ORIGINS'
    sonar:
      authorizedOrigins: 'SONAR_ORIGINS'
    teamcity:
      authorizedOrigins: 'TEAMCITY_ORIGINS'
    trace: 'TRACE_SERVICES'

  cacheHeaders:
    defaultCacheLengthSeconds: 'BADGE_MAX_AGE_SECONDS'

  rateLimit: 'RATE_LIMIT'

  fetchLimit: 'FETCH_LIMIT'

  requestTimeoutSeconds: 'REQUEST_TIMEOUT_SECONDS'
  requestTimeoutMaxAgeSeconds: 'REQUEST_TIMEOUT_MAX_AGE_SECONDS'

  requireCloudflare: 'REQUIRE_CLOUDFLARE'

private:
  azure_devops_token: 'AZURE_DEVOPS_TOKEN'
  bitbucket_username: 'BITBUCKET_USER'
  bitbucket_password: 'BITBUCKET_PASS'
  bitbucket_server_username: 'BITBUCKET_SERVER_USER'
  bitbucket_server_password: 'BITBUCKET_SERVER_PASS'
  discord_bot_token: 'DISCORD_BOT_TOKEN'
  drone_token: 'DRONE_TOKEN'
  gh_client_id: 'GH_CLIENT_ID'
  gh_client_secret: 'GH_CLIENT_SECRET'
  gh_token: 'GH_TOKEN'
  jenkins_user: 'JENKINS_USER'
  jenkins_pass: 'JENKINS_PASS'
  jira_user: 'JIRA_USER'
  jira_pass: 'JIRA_PASS'
  nexus_user: 'NEXUS_USER'
  nexus_pass: 'NEXUS_PASS'
  npm_token: 'NPM_TOKEN'
  redis_url: 'REDIS_URL'
  sentry_dsn: 'SENTRY_DSN'
  shields_secret: 'SHIELDS_SECRET'
  sl_insight_userUuid: 'SL_INSIGHT_USER_UUID'
  sl_insight_apiToken: 'SL_INSIGHT_API_TOKEN'
  sonarqube_token: 'SONARQUBE_TOKEN'
  teamcity_user: 'TEAMCITY_USER'
  teamcity_pass: 'TEAMCITY_PASS'
  twitch_client_id: 'TWITCH_CLIENT_ID'
  twitch_client_secret: 'TWITCH_CLIENT_SECRET'
  wheelmap_token: 'WHEELMAP_TOKEN'
  influx_username: 'INFLUX_USERNAME'
  influx_password: 'INFLUX_PASSWORD'
  youtube_api_key: 'YOUTUBE_API_KEY'
