kong

package module
v0.6.1 Latest Latest
Warning

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

Go to latest
Published: Apr 19, 2020 License: MIT Imports: 5 Imported by: 0

README

Library to manage KongAPI admin easily

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type APICreateBody

type APICreateBody struct {
	Name        string `json:"name,omitempty"`
	RequestPath string `json:"request_path,omitempty"`
	Upstream    string `json:"upstream_url,omitempty"`
	Preserve    bool   `json:"preserve_host,omitempty"`
	StripPath   bool   `json:"strip_request_path,omitempty"`
}

APICreateBody Holds data for Create API requests

type APIListResponse

type APIListResponse struct {
	Data  []APIResponse `json:"data,omitempty"`
	Next  string        `json:"next,omitempty"`
	Total int           `json:"total,omitempty"`
}

APIListResponse holds ...

type APIRequestVX

type APIRequestVX struct {
	ID   string `json:"id,omitempty"`
	Name string `json:"name,omitempty"`
}

APIRequestVX holds Kong < 0.14.x API Request data

type APIResponse

type APIResponse struct {
	ID          string `json:"id,omitempty"`
	Name        string `json:"name,omitempty"`
	RequestPath string `json:"request_path,omitempty"`
	Upstream    string `json:"upstream_url,omitempty"`
	Preserve    bool   `json:"preserve_host,omitempty"`
	Created     int64  `json:"created_at,omitempty"`
	StripPath   bool   `json:"strip_request_path,omitempty"`
}

APIResponse Holds Kong < v0.14 API Response

type BasicKeyAuth

type BasicKeyAuth struct {
	Data  []KeyAuthData `json:"data,omitempty"`
	Total int           `json:"total,omitempty"`
}

BasicKeyAuth holds ...

type Client

type Client struct {
	KongVersion int
	// contains filtered or unexported fields
}

Client Abstraction, implements all base operations against a Kong's server via a Requist instance

func NewClient

func NewClient(base string) *Client

NewClient

func NewClientFromElements

func NewClientFromElements(_scheme, _host, _port, _user, _pass string) *Client

NewClientFromElements ...

func NewClientFromURL

func NewClientFromURL(base *url.URL) *Client

NewClientFromURL ...

func (*Client) CheckConnection

func (k *Client) CheckConnection() error

CheckConnection ...

func (*Client) CheckStatus

func (k *Client) CheckStatus() (map[string]int, error)

CheckStatus returns some metrics from KongAPI server

func (*Client) CreateAPI

func (k *Client) CreateAPI(payload APICreateBody) (APIResponse, error)

CreateAPI ...

func (*Client) CreateConsumer

func (k *Client) CreateConsumer(payload ConsumersCreateBody) (ConsumersResponse, error)

func (*Client) CreatePluginOnApi

func (k *Client) CreatePluginOnApi(apiId string, payload PluginsCreateBody) error

CreatePluginOnApi

func (*Client) CreatePluginOnService

func (k *Client) CreatePluginOnService(serviceId string, payload PluginsCreateBody) error

CreatePluginOnService

func (*Client) CreateRouteOnService

func (k *Client) CreateRouteOnService(serviceId string, payload RouteCreateBody) (RouteResponse, error)

CreateRoute

func (*Client) CreateService

func (k *Client) CreateService(payload ServiceCreateBody) (ServiceResponse, error)

CreateService

func (*Client) DeleteAPI

func (k *Client) DeleteAPI(payload APICreateBody) error

DeleteAPI ...

func (*Client) DeleteConsumer

func (k *Client) DeleteConsumer(payload ConsumersCreateBody) error

func (*Client) DeleteRoute

func (k *Client) DeleteRoute(payload RouteCreateBody, serviceId string) error

DeleteRoute

func (*Client) DeleteService

func (k *Client) DeleteService(payload ServiceCreateBody) error

DeleteService

func (*Client) ExistAPI

func (k *Client) ExistAPI(apiId string) bool

ExistAPI ...

func (*Client) ExistConsumer

func (k *Client) ExistConsumer(consumer string) bool

ExistConsumer ...

func (*Client) GetApiPlugins

func (k *Client) GetApiPlugins(apiId string) (map[string]PluginsResponse, error)

GetApiPlugins

func (*Client) GetConsumerKeyAuth

func (k *Client) GetConsumerKeyAuth(consumer string) (map[string]KeyAuthData, error)

GetConsumerKeyAuth ...

func (*Client) GetServicePlugins

func (k *Client) GetServicePlugins(serviceId string) (map[string]PluginsResponse, error)

GetServicePlugins

func (*Client) ListAPIs

func (k *Client) ListAPIs(param string) (map[string]APIResponse, error)

ShowAPI ...

func (*Client) ListConsumer

func (k *Client) ListConsumer(param string) (map[string]ConsumersResponse, error)

ShowConsumer ...

func (*Client) ListServiceRoutes

func (k *Client) ListServiceRoutes(serviceId, routeId string) (map[string]RouteResponse, error)

ShowRoute

func (*Client) ListServices

func (k *Client) ListServices(param string) (map[string]ServiceResponse, error)

ShowService

func (*Client) NewFromURL

func (k *Client) NewFromURL(base *url.URL) *Client

NewFromURL ...

func (*Client) SetBasicAuth

func (k *Client) SetBasicAuth(username, password string)

SetBasicAuth update user and pass

func (*Client) SetConsumerAcl

func (k *Client) SetConsumerAcl(consumer, group string) error

SetConsumerKeyAuth ...

func (*Client) SetConsumerKeyAuth

func (k *Client) SetConsumerKeyAuth(consumer, apikey string) error

SetConsumerKeyAuth ...

func (*Client) StatusCode

func (k *Client) StatusCode() int

StatusCode returns resultcode from last request

func (*Client) UpdateAPI

func (k *Client) UpdateAPI(payload APICreateBody) (APIResponse, error)

UpdateAPI ...

func (*Client) UpdateConsumer

func (k *Client) UpdateConsumer(payload ConsumersCreateBody) (ConsumersResponse, error)

func (*Client) UpdateRoute

func (k *Client) UpdateRoute(payload RouteCreateBody, serviceId string) (RouteResponse, error)

UpdateRoute

func (*Client) UpdateService

func (k *Client) UpdateService(payload ServiceCreateBody) (ServiceResponse, error)

UpdateService

type ClientCertificate

type ClientCertificate struct {
	ID string `json:"id"`
}

ClientCertificate ..

type ClusterResponse

type ClusterResponse struct {
	Hostname      string `json:"hostname,omitempty"`
	LuaVersion    string `json:"lua_version,omitempty"`
	Configuration struct {
		AdminIP                string      `json:"admin_ip,omitempty"`
		AdminListen            interface{} `json:"admin_listen,omitempty"`
		AdminPort              int         `json:"admin_port,omitempty"`
		AnonymousReports       bool        `json:"anonymous_reports,omitempty"`
		CassandraConsistency   string      `json:"cassandra_consistency,omitempty"`
		CassandraContactPoints []string    `json:"cassandra_contact_points,omitempty"`
		CassandraDataCenters   []string    `json:"cassandra_data_centers,omitempty"`
		CassandraKeyspace      string      `json:"cassandra_keyspace,omitempty"`
		CassandraPort          int         `json:"cassandra_port,omitempty"`
		CassandraReplFactor    int         `json:"cassandra_repl_factor,omitempty"`
		CassandraReplStrategy  string      `json:"cassandra_repl_strategy,omitempty"`
		CassandraSsl           bool        `json:"cassandra_ssl,omitempty"`
		CassandraSslVerify     bool        `json:"cassandra_ssl_verify,omitempty"`
		CassandraTimeout       int         `json:"cassandra_timeout,omitempty"`
		CassandraUsername      string      `json:"cassandra_username,omitempty"`
		ClusterListen          interface{} `json:"cluster_listen,omitempty"`
		ClusterListenRPC       string      `json:"cluster_listen_rpc,omitempty"`
		ClusterProfile         string      `json:"cluster_profile,omitempty"`
		ClusterTTLOnFailure    int         `json:"cluster_ttl_on_failure,omitempty"`
		Database               string      `json:"database,omitempty"`
		Dnsmasq                bool        `json:"dnsmasq,omitempty"`
		DnsmasqPid             string      `json:"dnsmasq_pid,omitempty"`
		DnsmasqPort            int         `json:"dnsmasq_port,omitempty"`
		KongConf               string      `json:"kong_conf,omitempty"`
		LogLevel               string      `json:"log_level,omitempty"`
		LuaCodeCache           string      `json:"lua_code_cache,omitempty"`
		LuaPackageCpath        string      `json:"lua_package_cpath,omitempty"`
		LuaPackagePath         string      `json:"lua_package_path,omitempty"`
		LuaSslVerifyDepth      int         `json:"lua_ssl_verify_depth,omitempty"`
		MemCacheSize           string      `json:"mem_cache_size,omitempty"`
		NginxAccLogs           string      `json:"nginx_acc_logs,omitempty"`
		NginxConf              string      `json:"nginx_conf,omitempty"`
		NginxDaemon            string      `json:"nginx_daemon,omitempty"`
		NginxErrLogs           string      `json:"nginx_err_logs,omitempty"`
		NginxKongConf          string      `json:"nginx_kong_conf,omitempty"`
		NginxOptimizations     bool        `json:"nginx_optimizations,omitempty"`
		NginxPid               string      `json:"nginx_pid,omitempty"`
		NginxWorkerProcesses   string      `json:"nginx_worker_processes,omitempty"`
		PgDatabase             string      `json:"pg_database,omitempty"`
		PgHost                 string      `json:"pg_host,omitempty"`
		PgPassword             string      `json:"pg_password,omitempty"`
		PgPort                 int         `json:"pg_port,omitempty"`
		PgSsl                  bool        `json:"pg_ssl,omitempty"`
		PgSslVerify            bool        `json:"pg_ssl_verify,omitempty"`
		PgUser                 string      `json:"pg_user,omitempty"`
		Plugins                interface{} `json:"plugins,omitempty"`
		Prefix                 string      `json:"prefix,omitempty"`
		ProxyIP                string      `json:"proxy_ip,omitempty"`
		ProxyListen            interface{} `json:"proxy_listen,omitempty"`
		ProxyListenSsl         interface{} `json:"proxy_listen_ssl,omitempty"`
		ProxyPort              int         `json:"proxy_port,omitempty"`
		ProxySslIP             string      `json:"proxy_ssl_ip,omitempty"`
		ProxySslPort           int         `json:"proxy_ssl_port,omitempty"`
		SerfEvent              string      `json:"serf_event,omitempty"`
		SerfLog                string      `json:"serf_log,omitempty"`
		SerfNodeID             string      `json:"serf_node_id,omitempty"`
		SerfPath               string      `json:"serf_path,omitempty"`
		SerfPid                string      `json:"serf_pid,omitempty"`
		Ssl                    bool        `json:"ssl,omitempty"`
		SslCert                string      `json:"ssl_cert,omitempty"`
		SslCertCsrDefault      string      `json:"ssl_cert_csr_default,omitempty"`
		SslCertDefault         string      `json:"ssl_cert_default,omitempty"`
		SslCertKey             string      `json:"ssl_cert_key,omitempty"`
		SslCertKeyDefault      string      `json:"ssl_cert_key_default,omitempty"`
	} `json:"configuration,omitempty"`
	Plugins struct {
		AvailableOnServer interface{} `json:"available_on_server,omitempty"`
		EnabledInCluster  []string    `json:"enabled_in_cluster,omitempty"`
	} `json:"plugins,omitempty"`
	Tagline string `json:"tagline,omitempty"`
	Timers  struct {
		Pending int `json:"pending,omitempty"`
		Running int `json:"running,omitempty"`
	} `json:"timers,omitempty"`
	Version string `json:"version,omitempty"`
}

ClusterResponse holds ...

type ClusterStatusNew

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

type ClusterStatusOld

type ClusterStatusOld struct {
	Server struct {
		ConnectionsHandled  int `json:"connections_handled"`
		ConnectionsReading  int `json:"connections_reading"`
		ConnectionsActive   int `json:"connections_active"`
		TotalRequests       int `json:"total_requests"`
		ConnectionsAccepted int `json:"connections_accepted"`
		ConnectionsWriting  int `json:"connections_writing"`
		ConnectionsWaiting  int `json:"connections_waiting"`
	} `json:"server"`
	Database struct {
		Oauth2Credentials           int `json:"oauth2_credentials"`
		JwtSecrets                  int `json:"jwt_secrets"`
		ResponseRatelimitingMetrics int `json:"response_ratelimiting_metrics"`
		KeyauthCredentials          int `json:"keyauth_credentials"`
		Oauth2AuthorizationCodes    int `json:"oauth2_authorization_codes"`
		Acls                        int `json:"acls"`
		Apis                        int `json:"apis"`
		BasicauthCredentials        int `json:"basicauth_credentials"`
		Consumers                   int `json:"consumers"`
		RatelimitingMetrics         int `json:"ratelimiting_metrics"`
		Oauth2Tokens                int `json:"oauth2_tokens"`
		Nodes                       int `json:"nodes"`
		HmacauthCredentials         int `json:"hmacauth_credentials"`
		Plugins                     int `json:"plugins"`
	} `json:"database"`
}

type ConsumerAclBody

type ConsumerAclBody struct {
	Group string `json:"group,omitempty"`
}

ConsumerAclBody

type ConsumerAclResponse

type ConsumerAclResponse struct {
	ID         string `json:"id,omitempty"`
	Group      string `json:"group,omitempty"`
	Created    int64  `json:"created_at,omitempty"`
	ConsumerId int64  `json:"consumer_id,omitempty"`
}

ConsumerAclResponse

type ConsumerRequestVX

type ConsumerRequestVX struct {
	ID       string `json:"id,omitempty"`
	Username string `json:"username,omitempty"`
}

ConsumerRequestVX holds Kong < 0.14.x Consumer Request data

type ConsumersCreateBody

type ConsumersCreateBody struct {
	Username string   `json:"username,omitempty"`
	CustomID string   `json:"custom_id,omitempty"`
	Tags     []string `json:"tags,omitempty"`
}

ConsumersCreateBody holds ...

type ConsumersListResponse

type ConsumersListResponse struct {
	Data  []ConsumersResponse `json:"data,omitempty"`
	Next  string              `json:"next,omitempty"`
	Total int                 `json:"total,omitempty"`
}

ConsumersListResponse holds ...

type ConsumersResponse

type ConsumersResponse struct {
	ID        string   `json:"id,omitempty"`
	Username  string   `json:"username,omitempty"`
	CreatedAt int64    `json:"created_at,omitempty"`
	CustomID  string   `json:"custom_id"`
	Tags      []string `json:"tags"`
}

ConsumersResponse holds ...

type EnabledPluginsResponse

type EnabledPluginsResponse struct {
	EnabledPlugins []string `json:"enabled_plugins"`
}

EnabledPluginsResponse holds ...

type FailureMessage

type FailureMessage struct {
	Message string `json:"message,omitempty"`
}

FailureMessage ...

type Headers

type Headers struct {
	XAnotherHeader []string `json:"x-another-header,omitempty"`
	XMyHeader      []string `json:"x-my-header,omitempty"`
}

type KeyAuthData

type KeyAuthData struct {
	CreatedAt  int64  `json:"created_at,omitempty"`
	ConsumerID string `json:"consumer_id,omitempty"`
	Key        string `json:"key,omitempty"`
	ID         string `json:"id,omitempty"`
}

KeyAuthData

type PluginsCreateBody

type PluginsCreateBody struct {
	Name    string      `json:"name,omitempty"`
	Config  interface{} `json:"config,omitempty"`
	Enabled bool        `json:"preserve_host,omitempty"`
}

PluginsResponse holds ...

type PluginsListResponse

type PluginsListResponse struct {
	Data  []PluginsResponse `json:"data,omitempty"`
	Next  string            `json:"next,omitempty"`
	Total int               `json:"total,omitempty"`
}

PluginsListResponse holds ...

type PluginsResponse

type PluginsResponse struct {
	ID         string      `json:"id"`
	APIID      string      `json:"api_id,omitempty"`
	ConsumerID string      `json:"consumer_id,omitempty"`
	Name       string      `json:"name,omitempty"`
	Config     interface{} `json:"config,omitempty"`
	Enabled    bool        `json:"preserve_host,omitempty"`
	Created    int64       `json:"created_at,omitempty"`
}

PluginsResponse holds ...

type RouteCreateBody

type RouteCreateBody struct {
	Name                    string   `json:"name,omitempty"`
	Protocols               []string `json:"protocols,omitempty"`
	Methods                 []string `json:"methods,omitempty"`
	Hosts                   []string `json:"hosts,omitempty"`
	Paths                   []string `json:"paths,omitempty"`
	HTTPSRedirectStatusCode int      `json:"https_redirect_status_code,omitempty"`
	RegexPriority           int      `json:"regex_priority,omitempty"`
	StripPath               bool     `json:"strip_path,omitempty"`
	PreserveHost            bool     `json:"preserve_host,omitempty"`
	Tags                    []string `json:"tags,omitempty"`
}

RouteCreateBody ...

type RouteListResponse

type RouteListResponse struct {
	Data  []RouteResponse `json:"data"`
	Next  string          `json:"next"`
	Total int             `json:"total"`
}

RouteListResponse ...

type RouteResponse

type RouteResponse struct {
	ID                      string   `json:"id,omitempty"`
	CreatedAt               int      `json:"created_at,omitempty"`
	UpdatedAt               int      `json:"updated_at,omitempty"`
	Name                    string   `json:"name,omitempty"`
	Protocols               []string `json:"protocols,omitempty"`
	Methods                 []string `json:"methods,omitempty"`
	Hosts                   []string `json:"hosts,omitempty"`
	Paths                   []string `json:"paths,omitempty"`
	Headers                 Headers  `json:"headers,omitempty"`
	HTTPSRedirectStatusCode int      `json:"https_redirect_status_code,omitempty"`
	RegexPriority           int      `json:"regex_priority,omitempty"`
	StripPath               bool     `json:"strip_path,omitempty"`
	PreserveHost            bool     `json:"preserve_host,omitempty"`
	Tags                    []string `json:"tags,omitempty"`
	Service                 Service  `json:"service,omitempty"`
}

RouteResponse ...

type Service

type Service struct {
	ID string `json:"id,omitempty"`
}

type ServiceCreateBody

type ServiceCreateBody struct {
	Name           string      `json:"name,omitempty"`
	Url            string      `json:"url,omitempty"`
	Retries        int         `json:"retries,omitempty"`
	Protocol       string      `json:"protocol,omitempty"`
	Host           string      `json:"host,omitempty"`
	Port           int         `json:"port,omitempty"`
	Path           string      `json:"path,omitempty"`
	ConnectTimeout int         `json:"connect_timeout,omitempty"`
	WriteTimeout   int         `json:"write_timeout,omitempty"`
	ReadTimeout    int         `json:"read_timeout,omitempty"`
	Tags           interface{} `json:"tags,omitempty"`
}

ServiceCreateBody

type ServiceListResponse

type ServiceListResponse struct {
	Data  []ServiceResponse `json:"data"`
	Next  string            `json:"next"`
	Total int               `json:"total"`
}

ServiceResponse

type ServiceResponse

type ServiceResponse struct {
	ID                string            `json:"id,omitempty"`
	Name              string            `json:"name,omitempty"`
	CreatedAt         int               `json:"created_at,omitempty"`
	UpdatedAt         int               `json:"updated_at,omitempty"`
	Retries           int               `json:"retries,omitempty"`
	Protocol          string            `json:"protocol,omitempty"`
	Host              string            `json:"host,omitempty"`
	Port              int               `json:"port,omitempty"`
	Path              string            `json:"path,omitempty"`
	ConnectTimeout    int               `json:"connect_timeout"`
	WriteTimeout      int               `json:"write_timeout,omitempty"`
	ReadTimeout       int               `json:"read_timeout,omitempty"`
	Tags              []string          `json:"tags,omitempty"`
	ClientCertificate ClientCertificate `json:"client_certificate,omitempty"`
}

ServiceResponse

type TimeStamp

type TimeStamp int

TimeStamp ...

Jump to

Keyboard shortcuts

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