gong

package module
v0.0.0-...-d42d362 Latest Latest
Warning

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

Go to latest
Published: Sep 14, 2017 License: BSD-3-Clause Imports: 4 Imported by: 0

README

gong

kong admin api client in golang.

usage

everything starts from gong.ConnectNode, read kong's admin api document for how to use this pkg.

license

all code is under BSD 3-Clause license.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ApiAdmin

type ApiAdmin interface {
	Add(*ApiDefinition) (*ApiObject, error)
	Retrieve(name_or_id string) (*ApiObject, error)
	List(filters ...string) ([]*ApiObject, error)
	Update(name_or_id string, definition *ApiDefinition) (*ApiObject, error)
	Replace(*ApiDefinition) (*ApiObject, error)
	Delete(name_or_id string) error
}

type ApiDefinition

type ApiDefinition struct {

	// required
	Name        string   `json:"name"`
	Hosts       []string `json:"hosts"`
	Uris        []string `json:"uris"`
	Methods     []string `json:"methods"`
	UpstreamUrl string   `json:"upstream_url"`

	// optional
	StripUri               bool `json:"strip_uri"`
	PreserveHost           bool `json:"preserve_host"`
	Retries                int  `json:"retries"`
	UpstreamConnectTimeout int  `json:"upstream_connect_timeout"`
	UpstreamSendTimeout    int  `json:"upstream_send_timeout"`
	UpstreamReadTimeout    int  `json:"upstream_read_timeout"`
	HttpsOnly              bool `json:"https_only"`
	HttpIfTerminated       bool `json:"http_if_terminated"`
}

func NewApiDefinition

func NewApiDefinition(
	name string, upstream string, uris ...string) *ApiDefinition

NewApiDefinition generate ApiDefinition with some default values

type ApiObject

type ApiObject struct {
	CreatedAt              int64    `json:"created_at"`
	Hosts                  []string `json:"hosts"`
	HttpIfTerminated       bool     `json:"http_if_terminated"`
	HttpsOnly              bool     `json:"https_only"`
	Id                     string   `json:"id"`
	Name                   string   `json:"name"`
	PreserveHost           bool     `json:"preserve_host"`
	Retries                int      `json:"retries"`
	StripUri               bool     `json:"strip_uri"`
	UpstreamConnectTimeout int      `json:"upstream_connect_timeout"`
	UpstreamReadTimeout    int      `json:"upstream_read_timeout"`
	UpstreamSendTimeout    int      `json:"upstream_send_timeout"`
	UpstreamUrl            string   `json:"upstream_url"`
}

type Node

type Node interface {
	Information() (*NodeInfo, error)
	Status() (*NodeStatus, error)

	NewApiAdmin() ApiAdmin
}

func ConnectNode

func ConnectNode(url string) Node

type NodeInfo

type NodeInfo struct {
	Hostname   string `json:"hostname"`
	LuaVersion string `json:"lua_version"`
	Plugins    struct {
		AvailableOnServer []string `json:"available_on_server"`
		EnableInCluster   []string `json:"enable_in_cluster"`
	} `json:"plugins"`
	Configuration map[string]interface{} `json:"configuration"`
	Tagline       string                 `json:"tagline"`
	Version       string                 `json:"version"`
}

type NodeStatus

type NodeStatus struct {
	Server struct {
		TotalRequests       int `json:"total_requests"`
		ConnectionsActive   int `json:"connections_active"`
		ConnectionsAccepted int `json:"connections_accepted"`
		ConnectionsHandled  int `json:"connections_handled"`
		ConnectionsReading  int `json:"connections_reading"`
		ConnectionsWriting  int `json:"connections_writing"`
		ConnectionsWaiting  int `json:"connections_waiting"`
	} `json:"server"`
	Database struct {
		Reachable bool `json:"reachable"`
	} `json:"database"`
}

Jump to

Keyboard shortcuts

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