terraform/vendor/github.com/CenturyLinkCloud/clc-sdk/README.md

90 lines
1.8 KiB
Markdown

CLC SDK (for go!) [![Build Status](https://travis-ci.org/CenturyLinkCloud/clc-sdk.svg?branch=master)](https://travis-ci.org/CenturyLinkCloud/clc-sdk) [![Coverage Status](https://coveralls.io/repos/mikebeyer/clc-sdk/badge.svg?branch=master&service=github)](https://coveralls.io/github/mikebeyer/clc-sdk?branch=master)
======
Installation
---------------------
```sh
$ 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
```go
config, _ := api.EnvConfig()
```
Reading from a file
```go
config, _ := api.FileConfig("./config.json")
```
Direct configuration
```go
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
```go
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
```go
resp, _ := client.Server.Create(server)
status, _ := client.Status.Get(resp.GetStatusID())
```
Async polling for complection
```go
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](http://www.apache.org/licenses/LICENSE-2.0.html).