github.com/muxinc/mux-go@v1.1.1/configuration.go (about) 1 // Mux Go - Copyright 2019 Mux Inc. 2 // NOTE: This file is auto generated. Do not edit this file manually. 3 4 package muxgo 5 6 import ( 7 "time" 8 ) 9 10 type Configuration struct { 11 basePath string `json:"basePath,omitempty"` 12 host string `json:"host,omitempty"` 13 userAgent string `json:"userAgent,omitempty"` 14 username string 15 password string 16 timeout time.Duration 17 } 18 19 // ConfigurationOption configures the Mux API Client. 20 type ConfigurationOption func(*Configuration) 21 22 func NewConfiguration(opts ...ConfigurationOption) *Configuration { 23 cfg := &Configuration{ 24 basePath: "https://api.mux.com", 25 userAgent: "Mux Go | 1.1.0", 26 } 27 for _, opt := range opts { 28 opt(cfg) 29 } 30 return cfg 31 } 32 33 func WithBasicAuth(username, password string) ConfigurationOption { 34 return func(c *Configuration) { 35 c.username = username 36 c.password = password 37 } 38 } 39 40 func WithTimeout(t time.Duration) ConfigurationOption { 41 return func(c *Configuration) { 42 c.timeout = t 43 } 44 } 45 46 func WithHost(host string) ConfigurationOption { 47 return func(c *Configuration) { 48 c.host = host 49 } 50 }