func (c *Client) SetRetryAttempts(retryAttempts int) {
	c.Transport.SetRetryAttempts(retryAttempts)
}
SetRetryAttempts sets how many times to attempt to retry sending an item if the http transport
experiences temporary error conditions. By default this is equal to DefaultRetryAttempts.
Temporary errors include timeouts and rate limit responses.
package rollbar
import (
	"context"
	"errors"
	"fmt"
	"io"
	"net/http"
	"os"
	"reflect"
	"regexp"
	"runtime"
	"time"
)
type Client struct {
	io.Closer
	Transport     Transport
	Telemetry     *Telemetry
	configuration configuration
	diagnostic    diagnostic
}
func New(token, environment, codeVersion, serverHost, serverRoot string) *Client {
	return NewAsync(token, environment, codeVersion, serverHost, serverRoot)
}
func NewAsync(token, environment, codeVersion, serverHost, serverRoot string) *Client {
	configuration := createConfiguration(token, environment, codeVersion, serverHost, serverRoot)
	transport := NewTransport(token, configuration.endpoint)
	diagnostic := createDiagnostic()
	return &Client{
		Transport:     transport,
		Telemetry:     NewTelemetry(nil),
		configuration: configuration,
		diagnostic:    diagnostic,
	}
}
func NewSync(token, environment, codeVersion, serverHost, serverRoot string) *Client {
	configuration := createConfiguration(token, environment, codeVersion, serverHost, serverRoot)
	transport := NewSyncTransport(token, configuration.endpoint)
	diagnostic := createDiagnostic()
	return &Client{
		Transport:     transport,
		Telemetry:     NewTelemetry(nil),
		configuration: configuration,
		diagnostic:    diagnostic,
	}
}
func (c *Client) CaptureTelemetryEvent(eventType, eventlevel string, eventData map[string]interface{}) {
	data := map[string]interface{}{}
	data["body"] = eventData
	data["type"] = eventType
	data["level"] = eventlevel
	data["source"] = "client"
	data["timestamp_ms"] = time.Now().UnixNano() / int64(time.Millisecond)
	c.Telemetry.Queue.Push(data)
}
func (c *Client) SetTelemetry(options ...OptionFunc) {
	c.Telemetry = NewTelemetry(c.configuration.scrubHeaders, options...)
}
func (c *Client) SetEnabled(enabled bool) {
	c.configuration.enabled = enabled
}
func (c *Client) SetToken(token string) {
	c.configuration.token = token
	c.Transport.SetToken(token)
}
func (c *Client) SetEnvironment(environment string) {
	c.configuration.environment = environment
}
func (c *Client) SetEndpoint(endpoint string) {
	c.configuration.endpoint = endpoint
	c.Transport.SetEndpoint(endpoint)
}
func (c *Client) SetPlatform(platform string) {
	c.configuration.platform = platform
}
func (c *Client) SetCodeVersion(codeVersion string) {
	c.configuration.codeVersion = codeVersion
}
func (c *Client) SetServerHost(serverHost string) {
	c.configuration.serverHost = serverHost
}
func (c *Client) SetServerRoot(serverRoot string) {
	c.configuration.serverRoot = serverRoot
}
func (c *Client) SetCustom(custom map[string]interface{}) {
	c.configuration.custom = custom
}
func (c *Client) SetPerson(id, username, email string) {
	person := Person{
		Id:       id,
		Username: username,
		Email:    email,
	}
	c.configuration.person = person
}
func (c *Client) ClearPerson() {
	person := Person{}
	c.configuration.person = person
}
func (c *Client) SetFingerprint(fingerprint bool) {
	c.configuration.fingerprint = fingerprint
}
func (c *Client) SetLogger(logger ClientLogger) {
	c.Transport.SetLogger(logger)
}
func (c *Client) SetScrubHeaders(headers *regexp.Regexp) {
	c.configuration.scrubHeaders = headers
	c.Telemetry.Network.ScrubHeaders = headers
}
func (c *Client) SetScrubFields(fields *regexp.Regexp) {
	c.configuration.scrubFields = fields
}
func (c *Client) SetTransform(transform func(map[string]interface{})) {
	c.configuration.transform = transform
}
func (c *Client) SetUnwrapper(unwrapper UnwrapperFunc) {
	c.configuration.unwrapper = unwrapper
}
func (c *Client) SetStackTracer(stackTracer StackTracerFunc) {
	c.configuration.stackTracer = stackTracer
}
func (c *Client) SetCheckIgnore(checkIgnore func(string) bool) {
	c.configuration.checkIgnore = checkIgnore
}
func (c *Client) SetCaptureIp(captureIp captureIp) {
	c.configuration.captureIp = captureIp
}