Path: blob/main/component/otelcol/auth/oauth2/oauth2.go
4096 views
package oauth212import (3"net/url"4"time"56"github.com/grafana/agent/component"7"github.com/grafana/agent/component/otelcol"8"github.com/grafana/agent/component/otelcol/auth"9"github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension"10otelcomponent "go.opentelemetry.io/collector/component"11otelconfig "go.opentelemetry.io/collector/config"12)1314func init() {15component.Register(component.Registration{16Name: "otelcol.auth.oauth2",17Args: Arguments{},18Exports: auth.Exports{},1920Build: func(opts component.Options, args component.Arguments) (component.Component, error) {21fact := oauth2clientauthextension.NewFactory()22return auth.New(opts, fact, args.(Arguments))23},24})25}2627// Arguments configures the otelcol.auth.oauth2 component.28type Arguments struct {29ClientID string `river:"client_id,attr"`30ClientSecret string `river:"client_secret,attr"`31TokenURL string `river:"token_url,attr"`32EndpointParams url.Values `river:"endpoint_params,attr,optional"`33Scopes []string `river:"scopes,attr,optional"`34TLSSetting otelcol.TLSClientArguments `river:"tls,block,optional"`35Timeout time.Duration `river:"timeout,attr,optional"`36}3738var _ auth.Arguments = Arguments{}3940// Convert implements auth.Arguments.41func (args Arguments) Convert() (otelconfig.Extension, error) {42return &oauth2clientauthextension.Config{43ExtensionSettings: otelconfig.NewExtensionSettings(otelconfig.NewComponentID("oauth2")),44ClientID: args.ClientID,45ClientSecret: args.ClientSecret,46TokenURL: args.TokenURL,47EndpointParams: args.EndpointParams,48Scopes: args.Scopes,49TLSSetting: *args.TLSSetting.Convert(),50Timeout: args.Timeout,51}, nil52}5354// Extensions implements auth.Arguments.55func (args Arguments) Extensions() map[otelconfig.ComponentID]otelcomponent.Extension {56return nil57}5859// Exporters implements auth.Arguments.60func (args Arguments) Exporters() map[otelconfig.DataType]map[otelconfig.ComponentID]otelcomponent.Exporter {61return nil62}636465