github.com/mmcquillan/packer@v1.1.1-0.20171009221028-c85cf0483a5d/builder/oracle/oci/client/client.go (about) 1 package oci 2 3 import ( 4 "net/http" 5 ) 6 7 const ( 8 apiVersion = "20160918" 9 userAgent = "go-oci/" + apiVersion 10 baseURLPattern = "https://%s.%s.oraclecloud.com/%s/" 11 ) 12 13 // Client is the main interface through which consumers interact with the OCI 14 // API. 15 type Client struct { 16 UserAgent string 17 Compute *ComputeClient 18 Config *Config 19 } 20 21 // NewClient creates a new Client for communicating with the OCI API. 22 func NewClient(config *Config) (*Client, error) { 23 transport := NewTransport(http.DefaultTransport, config) 24 base := newBaseClient().Client(&http.Client{Transport: transport}) 25 26 return &Client{ 27 UserAgent: userAgent, 28 Compute: NewComputeClient(base.New().Base(config.getBaseURL("iaas"))), 29 Config: config, 30 }, nil 31 }