{{ define "alloy.config.logsServiceLoki" }}
{{- with .Values.externalServices.loki }}
// Loki
loki.write "logs_service" {
  endpoint {
    url = nonsensitive(remote.kubernetes.secret.logs_service.data[{{ .hostKey | quote }}]) + "{{ .writeEndpoint }}"
    tenant_id = nonsensitive(remote.kubernetes.secret.logs_service.data[{{ .tenantIdKey | quote }}])
{{- if or .extraHeaders .extraHeadersFrom }}
    headers = {
{{- range $key, $value := .extraHeaders }}
      {{ $key | quote }} = {{ $value | quote }},
{{- end }}
{{- range $key, $value := .extraHeadersFrom }}
      {{ $key | quote }} = {{ $value }},
{{- end }}
    }
{{- end }}
{{- if .proxyURL }}
    proxy_url = {{ .proxyURL | quote }}
{{- end }}
{{ if eq .authMode "basic" }}
    basic_auth {
      username = nonsensitive(remote.kubernetes.secret.logs_service.data[{{ .basicAuth.usernameKey | quote }}])
      password = remote.kubernetes.secret.logs_service.data[{{ .basicAuth.passwordKey | quote }}]
    }
{{- else if eq .authMode "oauth2" }}
    oauth2 {
      client_id = nonsensitive(remote.kubernetes.secret.logs_service.data[{{ .oauth2.clientIdKey | quote }}])
      {{- if eq .oauth2.clientSecretFile "" }}
      client_secret = remote.kubernetes.secret.logs_service.data[{{ .oauth2.clientSecretKey | quote }}]
      {{- else }}
      client_secret_file = {{ .oauth2.clientSecretFile | quote }}
      {{- end }}
      {{- if .oauth2.endpointParams }}
      endpoint_params = {
      {{- range $k, $v := .oauth2.endpointParams }}
        {{ $k }} = {{ $v | quote }},
      {{- end }}
      }
      {{- end }}
      {{- if .oauth2.proxyURL }}
      proxy_url = {{ .oauth2.proxyURL | quote }}
      {{- end }}
      {{- if .oauth2.noProxy }}
      no_proxy = {{ .oauth2.noProxy | quote }}
      {{- end }}
      {{- if .oauth2.proxyFromEnvironment }}
      proxyFromEnvironment = {{ .oauth2.proxyFromEnvironment }}
      {{- end }}
      {{- if .oauth2.proxyConnectHeader }}
      proxy_connect_header = {{ .oauth2.proxyConnectHeader | toJson }}
      {{- end }}
      {{- if .oauth2.scopes }}
      scopes = {{ .oauth2.scopes | toJson }}
      {{- end }}
      {{- if .oauth2.tokenURL }}
      token_url = {{ .oauth2.tokenURL | quote }}
      {{- end }}
    }
{{- end }}
{{- if .tls }}
    tls_config {
    {{- range $k, $v := .tls }}
      {{ $k }} = {{ $v | toJson }}
    {{- end }}
    }
{{- end }}
  }
{{- if or .externalLabels .externalLabelsFrom }}
  external_labels = {
{{- if .externalLabels }}
    {{- range $k, $v := .externalLabels }}
    {{ $k }} = {{ $v | quote }},
    {{- end }}
{{- end }}
{{- if .externalLabelsFrom }}
    {{- range $k, $v := .externalLabelsFrom }}
    {{ $k }} = {{ $v }},
    {{- end }}
{{- end }}
  }
{{- end }}
{{- end }}
}
{{ end }}
