cloudcontroller

package
v0.0.6-complete-api Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 29, 2020 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

Package cloudcontroller contains shared utilies between the V2 and V3 clients.

These sets of packages are still under development/pre-pre-pre...alpha. Use at your own risk! Functionality and design may change without warning.

Where are the clients?

These clients live in ccv2 and ccv3 packages. Each of them only works with the V2 and V3 api respectively.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DecodeJSON

func DecodeJSON(raw []byte, v interface{}) error

DecodeJSON unmarshals JSON into the given object with the appropriate settings.

func MinimumAPIVersionCheck

func MinimumAPIVersionCheck(current string, minimum string) error

MinimumAPIVersionCheck compares `current` to `minimum`. If `current` is older than `minimum` then an error is returned; otherwise, nil is returned.

Types

type CloudControllerConnection

type CloudControllerConnection struct {
	HTTPClient *http.Client
	UserAgent  string
}

CloudControllerConnection represents a connection to the Cloud Controller server.

func NewConnection

func NewConnection(config Config) *CloudControllerConnection

NewConnection returns a new CloudControllerConnection with provided configuration.

func (*CloudControllerConnection) Make

func (connection *CloudControllerConnection) Make(request *Request, passedResponse *Response) error

Make performs the request and parses the response.

type Config

type Config struct {
	DialTimeout       time.Duration
	SkipSSLValidation bool
}

Config is for configuring a CloudControllerConnection.

type Connection

type Connection interface {
	Make(request *Request, passedResponse *Response) error
}

Connection creates and executes http requests

type Pipebomb

type Pipebomb struct {
	io.ReadCloser
}

Pipebomb is a wrapper around an io.Pipe's io.ReadCloser that turns it into a ReadSeeker that errors on Seek calls. This is designed to prevent the caller from rereading the body multiple times.

func NewPipeBomb

func NewPipeBomb() (*Pipebomb, io.WriteCloser)

NewPipeBomb returns an io.WriteCloser that can be used to stream data to a the Pipebomb.

func (*Pipebomb) Seek

func (*Pipebomb) Seek(offset int64, whence int) (int64, error)

Seek returns a PipeSeekError; allowing the top level calling function to handle the retry instead of seeking back to the beginning of the Reader.

type Request

type Request struct {
	*http.Request
	// contains filtered or unexported fields
}

Request represents the request of the cloud controller.

func NewRequest

func NewRequest(request *http.Request, body io.ReadSeeker) *Request

func (*Request) ResetBody

func (r *Request) ResetBody() error

type Response

type Response struct {
	// DecodeJSONResponseInto represents the resource entity type that is
	// expected in the response JSON.
	DecodeJSONResponseInto interface{}

	// RawResponse represents the response body.
	RawResponse []byte

	// Warnings represents warnings parsed from the custom warnings headers of a
	// Cloud Controller response.
	Warnings []string

	// HTTPResponse represents the HTTP response object.
	HTTPResponse *http.Response

	// ResourceLocationURL represents the Location header value
	ResourceLocationURL string
}

Response represents a Cloud Controller response object.

Directories

Path Synopsis
Package ccv2 represents a Cloud Controller V2 client.
Package ccv2 represents a Cloud Controller V2 client.
ccv2fakes
Code generated by counterfeiter.
Code generated by counterfeiter.
constant
Package constant contains types and constants used by the ccv2 package.
Package constant contains types and constants used by the ccv2 package.
Package ccv3 represents a Cloud Controller V3 client.
Package ccv3 represents a Cloud Controller V3 client.
ccv3fakes
Code generated by counterfeiter.
Code generated by counterfeiter.
constant
Package constant contains types and constants used by the ccv3 package.
Package constant contains types and constants used by the ccv3 package.
Code generated by counterfeiter.
Code generated by counterfeiter.
wrapperfakes
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL