90 lines
1.8 KiB
Markdown
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).
|