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  }