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  }