func (c *Client) SetItemsPerMinute(itemsPerMinute int) {
	c.configuration.itemsPerMinute = itemsPerMinute
	c.Transport.SetItemsPerMinute(itemsPerMinute)
}
SetItemsPerMinute sets the max number of items to send in a given minute
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
}
func (c *Client) SetRetryAttempts(retryAttempts int) {
	c.Transport.SetRetryAttempts(retryAttempts)
}