Gosh is a Go client library for accessing the SiteHost v1.3 API.
go get -u https://github.com/sitehostnz/gosh
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/sitehostnz/gosh/pkg/api"
"github.com/sitehostnz/gosh/pkg/api/server"
)
func main() {
apiKey := os.Getenv("SH_API_KEY")
clientId := os.Getenv("SH_CLIENT_ID")
client := api.NewClient(apiKey, clientId)
ctx := context.Background()
instance := server.New(client)
opts := server.CreateRequest{
Label: "goshserver",
Location: "AKLCITY",
ProductCode: "XENLIT",
Image: "ubuntu-jammy-pvh.amd64",
Params: server.ParamsOptions{
SSHKeys: []string{"ssh-rsa ..."},
},
}
server, err := instance.Create(ctx, opts)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%v", server)
}
The structure of this library closely mirrors that of our API, so the API documentation should be your first point of reference.
If you're interested in contributing to our project:
- Start by reading our style guide and contributing guide.
- Explore our issues.
- Or send us feature PRs.
Gosh is distributed under the terms of the MIT licence.