terraform/vendor/github.com/CenturyLinkCloud/clc-sdk
Albert Choi c93bc5ccb5 [clc] pull latest sdk 2016-05-10 10:36:52 -07:00
..
aa provider/clc: vendor deps, update to match latest SDK API 2016-03-21 08:58:46 -07:00
alert provider/clc: vendor deps, update to match latest SDK API 2016-03-21 08:58:46 -07:00
api [clc] pull latest sdk 2016-05-10 10:36:52 -07:00
dc [clc] pull latest sdk 2016-05-10 10:36:52 -07:00
group [clc] pull latest sdk 2016-05-10 10:36:52 -07:00
lb provider/clc: vendor deps, update to match latest SDK API 2016-03-21 08:58:46 -07:00
server [clc] pull latest sdk 2016-05-10 10:36:52 -07:00
status [clc] pull latest sdk 2016-05-10 10:36:52 -07:00
.coveralls.yml provider/clc: vendor deps, update to match latest SDK API 2016-03-21 08:58:46 -07:00
.gitignore provider/clc: vendor deps, update to match latest SDK API 2016-03-21 08:58:46 -07:00
.travis.yml provider/clc: vendor deps, update to match latest SDK API 2016-03-21 08:58:46 -07:00
LICENSE provider/clc: vendor deps, update to match latest SDK API 2016-03-21 08:58:46 -07:00
Makefile provider/clc: vendor deps, update to match latest SDK API 2016-03-21 08:58:46 -07:00
README.md provider/clc: vendor deps, update to match latest SDK API 2016-03-21 08:58:46 -07:00
client.go provider/clc: vendor deps, update to match latest SDK API 2016-03-21 08:58:46 -07:00
cover.sh provider/clc: vendor deps, update to match latest SDK API 2016-03-21 08:58:46 -07:00

README.md

CLC SDK (for go!) Build Status Coverage Status

Installation

$ go get github.com/CenturyLinkCloud/clc-sdk
$ make deps
$ make test

Configuration

The SDK supports the following helpers for creating your configuration

Reading from the environment

config, _ := api.EnvConfig()

Reading from a file

config, _ := api.FileConfig("./config.json")

Direct configuration

config, _ := api.NewConfig(un, pwd)
// defaults:
config.Alias = "" // resolved on Authentication
config.UserAgent = "CenturyLinkCloud/clc-sdk"
config.BaseURI = "https://api.ctl.io/v2"

Enable http wire tracing with env var DEBUG=on.

Additionally, callers of the SDK should set config.UserAgent to identify to platform appropriately.

Examples

To create a new server

client := clc.New(api.EnvConfig())

server := server.Server{
		Name:           "server",
		CPU:            1,
		MemoryGB:       1,
		GroupID:        "GROUP-ID",
		SourceServerID: "UBUNTU-14-64-TEMPLATE",
		Type:           "standard",
	}

resp, _ := client.Server.Create(server)

Check status of a server build

resp, _ := client.Server.Create(server)

status, _ := client.Status.Get(resp.GetStatusID())

Async polling for complection

resp, _ := client.Server.Create(server)

poll := make(chan *status.Response, 1)
service.Status.Poll(resp.GetStatusID(), poll)

status := <- poll

License

This project is licensed under the Apache License v2.0.