Documentation ¶
Index ¶
- Variables
- func APIKeyAuth(name, in, value string) runtime.ClientAuthInfoWriter
- func BasicAuth(username, password string) runtime.ClientAuthInfoWriter
- func BearerToken(token string) runtime.ClientAuthInfoWriter
- func Compose(auths ...runtime.ClientAuthInfoWriter) runtime.ClientAuthInfoWriter
- func KeepAliveTransport(rt http.RoundTripper) http.RoundTripper
- func TLSClient(opts TLSClientOptions) (*http.Client, error)
- func TLSClientAuth(opts TLSClientOptions) (*tls.Config, error)
- func TLSTransport(opts TLSClientOptions) (http.RoundTripper, error)
- type ClientResponseFunc
- type OpenTelemetryOpt
- func WithPropagators(ps propagation.TextMapPropagator) OpenTelemetryOpt
- func WithSpanNameFormatter(f func(op *runtime.ClientOperation) string) OpenTelemetryOpt
- func WithSpanOptions(opts ...trace.SpanStartOption) OpenTelemetryOpt
- func WithTracerProvider(provider trace.TracerProvider) OpenTelemetryOpt
- type Runtime
- func (r *Runtime) CreateHttpRequest(operation *runtime.ClientOperation) (req *http.Request, err error)
- func (r *Runtime) EnableConnectionReuse()
- func (r *Runtime) SetDebug(debug bool)
- func (r *Runtime) SetLogger(logger logger.Logger)
- func (r *Runtime) SetResponseReader(f ClientResponseFunc)
- func (r *Runtime) Submit(operation *runtime.ClientOperation) (interface{}, error)
- func (r *Runtime) WithOpenTelemetry(opts ...OpenTelemetryOpt) runtime.ClientTransport
- func (r *Runtime) WithOpenTracing(opts ...opentracing.StartSpanOption) runtime.ClientTransport
- type TLSClientOptions
Constants ¶
This section is empty.
Variables ¶
var DefaultTimeout = 30 * time.Second
DefaultTimeout the default request timeout
var PassThroughAuth runtime.ClientAuthInfoWriter
PassThroughAuth never manipulates the request
Functions ¶
func APIKeyAuth ¶
func APIKeyAuth(name, in, value string) runtime.ClientAuthInfoWriter
APIKeyAuth provides an API key auth info writer
func BasicAuth ¶
func BasicAuth(username, password string) runtime.ClientAuthInfoWriter
BasicAuth provides a basic auth info writer
func BearerToken ¶
func BearerToken(token string) runtime.ClientAuthInfoWriter
BearerToken provides a header based oauth2 bearer access token auth info writer
func Compose ¶ added in v0.19.27
func Compose(auths ...runtime.ClientAuthInfoWriter) runtime.ClientAuthInfoWriter
Compose combines multiple ClientAuthInfoWriters into a single one. Useful when multiple auth headers are needed.
func KeepAliveTransport ¶
func KeepAliveTransport(rt http.RoundTripper) http.RoundTripper
KeepAliveTransport drains the remaining body from a response so that go will reuse the TCP connections. This is not enabled by default because there are servers where the response never gets closed and that would make the code hang forever. So instead it's provided as a http client middleware that can be used to override any request.
func TLSClient ¶
func TLSClient(opts TLSClientOptions) (*http.Client, error)
TLSClient creates a http.Client for mutual auth
func TLSClientAuth ¶
func TLSClientAuth(opts TLSClientOptions) (*tls.Config, error)
TLSClientAuth creates a tls.Config for mutual auth
func TLSTransport ¶
func TLSTransport(opts TLSClientOptions) (http.RoundTripper, error)
TLSTransport creates a http client transport suitable for mutual tls auth
Types ¶
type ClientResponseFunc ¶ added in v0.24.2
type ClientResponseFunc = func(*http.Response) runtime.ClientResponse //nolint:revive
type OpenTelemetryOpt ¶ added in v0.25.0
type OpenTelemetryOpt interface {
// contains filtered or unexported methods
}
func WithPropagators ¶ added in v0.25.0
func WithPropagators(ps propagation.TextMapPropagator) OpenTelemetryOpt
WithPropagators configures specific propagators. If this option isn't specified, then the global TextMapPropagator is used.
func WithSpanNameFormatter ¶ added in v0.25.0
func WithSpanNameFormatter(f func(op *runtime.ClientOperation) string) OpenTelemetryOpt
WithSpanNameFormatter takes a function that will be called on every request and the returned string will become the Span Name.
func WithSpanOptions ¶ added in v0.25.0
func WithSpanOptions(opts ...trace.SpanStartOption) OpenTelemetryOpt
WithSpanOptions configures an additional set of trace.SpanOptions, which are applied to each new span.
func WithTracerProvider ¶ added in v0.25.0
func WithTracerProvider(provider trace.TracerProvider) OpenTelemetryOpt
WithTracerProvider specifies a tracer provider to use for creating a tracer. If none is specified, the global provider is used.
type Runtime ¶
type Runtime struct { DefaultMediaType string DefaultAuthentication runtime.ClientAuthInfoWriter Consumers map[string]runtime.Consumer Producers map[string]runtime.Producer Transport http.RoundTripper Jar http.CookieJar // Spec *spec.Document Host string BasePath string Formats strfmt.Registry Context context.Context //nolint:containedctx // we precisely want this type to contain the request context Debug bool // contains filtered or unexported fields }
Runtime represents an API client that uses the transport to make http requests based on a swagger specification.
func NewWithClient ¶
NewWithClient allows you to create a new transport with a configured http.Client
func (*Runtime) CreateHttpRequest ¶ added in v0.24.0
func (*Runtime) EnableConnectionReuse ¶
func (r *Runtime) EnableConnectionReuse()
EnableConnectionReuse drains the remaining body from a response so that go will reuse the TCP connections.
This is not enabled by default because there are servers where the response never gets closed and that would make the code hang forever. So instead it's provided as a http client middleware that can be used to override any request.
func (*Runtime) SetDebug ¶
SetDebug changes the debug flag. It ensures that client and middlewares have the set debug level.
func (*Runtime) SetLogger ¶
SetLogger changes the logger stream. It ensures that client and middlewares use the same logger.
func (*Runtime) SetResponseReader ¶ added in v0.24.2
func (r *Runtime) SetResponseReader(f ClientResponseFunc)
SetResponseReader changes the response reader implementation.
func (*Runtime) Submit ¶
func (r *Runtime) Submit(operation *runtime.ClientOperation) (interface{}, error)
Submit a request and when there is a body on success it will turn that into the result all other things are turned into an api error for swagger which retains the status code
func (*Runtime) WithOpenTelemetry ¶ added in v0.25.0
func (r *Runtime) WithOpenTelemetry(opts ...OpenTelemetryOpt) runtime.ClientTransport
WithOpenTelemetry adds opentelemetry support to the provided runtime. A new client span is created for each request. If the context of the client operation does not contain an active span, no span is created. The provided opts are applied to each spans - for example to add global tags.
func (*Runtime) WithOpenTracing ¶ added in v0.19.25
func (r *Runtime) WithOpenTracing(opts ...opentracing.StartSpanOption) runtime.ClientTransport
WithOpenTracing adds opentracing support to the provided runtime. A new client span is created for each request. If the context of the client operation does not contain an active span, no span is created. The provided opts are applied to each spans - for example to add global tags.
type TLSClientOptions ¶
type TLSClientOptions struct { // Certificate is the path to a PEM-encoded certificate to be used for // client authentication. If set then Key must also be set. Certificate string // LoadedCertificate is the certificate to be used for client authentication. // This field is ignored if Certificate is set. If this field is set, LoadedKey // is also required. LoadedCertificate *x509.Certificate // Key is the path to an unencrypted PEM-encoded private key for client // authentication. This field is required if Certificate is set. Key string // LoadedKey is the key for client authentication. This field is required if // LoadedCertificate is set. LoadedKey crypto.PrivateKey // CA is a path to a PEM-encoded certificate that specifies the root certificate // to use when validating the TLS certificate presented by the server. If this field // (and LoadedCA) is not set, the system certificate pool is used. This field is ignored if LoadedCA // is set. CA string // LoadedCA specifies the root certificate to use when validating the server's TLS certificate. // If this field (and CA) is not set, the system certificate pool is used. LoadedCA *x509.Certificate // LoadedCAPool specifies a pool of RootCAs to use when validating the server's TLS certificate. // If set, it will be combined with the other loaded certificates (see LoadedCA and CA). // If neither LoadedCA or CA is set, the provided pool with override the system // certificate pool. // The caller must not use the supplied pool after calling TLSClientAuth. LoadedCAPool *x509.CertPool // ServerName specifies the hostname to use when verifying the server certificate. // If this field is set then InsecureSkipVerify will be ignored and treated as // false. ServerName string // InsecureSkipVerify controls whether the certificate chain and hostname presented // by the server are validated. If true, any certificate is accepted. InsecureSkipVerify bool // VerifyPeerCertificate, if not nil, is called after normal // certificate verification. It receives the raw ASN.1 certificates // provided by the peer and also any verified chains that normal processing found. // If it returns a non-nil error, the handshake is aborted and that error results. // // If normal verification fails then the handshake will abort before // considering this callback. If normal verification is disabled by // setting InsecureSkipVerify then this callback will be considered but // the verifiedChains argument will always be nil. VerifyPeerCertificate func(rawCerts [][]byte, verifiedChains [][]*x509.Certificate) error // SessionTicketsDisabled may be set to true to disable session ticket and // PSK (resumption) support. Note that on clients, session ticket support is // also disabled if ClientSessionCache is nil. SessionTicketsDisabled bool // ClientSessionCache is a cache of ClientSessionState entries for TLS // session resumption. It is only used by clients. ClientSessionCache tls.ClientSessionCache // contains filtered or unexported fields }
TLSClientOptions to configure client authentication with mutual TLS