config

package
v0.0.0-...-d48b924 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2024 License: Apache-2.0 Imports: 7 Imported by: 14

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ClientTLSConfig

type ClientTLSConfig struct {
	Enabled  bool
	CertPath string
	KeyPath  string
	CAPath   string
}

type ClientTLSConfigSchema

type ClientTLSConfigSchema struct {
	Enabled  bool   `json:"enabled"`
	CertPath string `json:"cert_path"`
	KeyPath  string `json:"key_path"`
	CAPath   string `json:"ca_path"`
}

type Config

type Config struct {
	MessageBusServers []MessageBusServer
	RoutingAPI        RoutingAPI
	Routes            []Route
	NATSmTLSConfig    ClientTLSConfig
	Host              string
	AvailabilityZone  string `json:"availability_zone"`
}

type ConfigSchema

type ConfigSchema struct {
	MessageBusServers []MessageBusServerSchema `json:"message_bus_servers"`
	RoutingAPI        RoutingAPISchema         `json:"routing_api"`
	Routes            []RouteSchema            `json:"routes"`
	NATSmTLSConfig    ClientTLSConfigSchema    `json:"nats_mtls_config"`
	Host              string                   `json:"host"`
	AvailabilityZone  string                   `json:"availability_zone"`
}

func NewConfigSchemaFromFile

func NewConfigSchemaFromFile(configFile string) (ConfigSchema, error)

func (ConfigSchema) ToConfig

func (c ConfigSchema) ToConfig() (*Config, error)

type HealthCheck

type HealthCheck struct {
	Name       string
	ScriptPath string
	Timeout    time.Duration
}

type HealthCheckSchema

type HealthCheckSchema struct {
	Name       string `json:"name"`
	ScriptPath string `json:"script_path"`
	Timeout    string `json:"timeout"`
}

type MessageBusServer

type MessageBusServer struct {
	Host     string
	User     string
	Password string
}

type MessageBusServerSchema

type MessageBusServerSchema struct {
	Host     string `json:"host"`
	User     string `json:"user"`
	Password string `json:"password"`
}

type Route

type Route struct {
	Type                 string
	Name                 string
	Port                 *int
	Protocol             string
	TLSPort              *int
	Tags                 map[string]string
	URIs                 []string
	RouterGroup          string
	Host                 string
	ExternalPort         *int
	RouteServiceUrl      string
	RegistrationInterval time.Duration
	HealthCheck          *HealthCheck
	ServerCertDomainSAN  string
}

type RouteSchema

type RouteSchema struct {
	Type                 string             `json:"type"`
	Name                 string             `json:"name"`
	Port                 *int               `json:"port"`
	Protocol             string             `json:"protocol"`
	SniPort              *int               `json:"sni_port"`
	TLSPort              *int               `json:"tls_port"`
	Tags                 map[string]string  `json:"tags"`
	URIs                 []string           `json:"uris"`
	RouterGroup          string             `json:"router_group"`
	ExternalPort         *int               `json:"external_port,omitempty"`
	RouteServiceUrl      string             `json:"route_service_url"`
	RegistrationInterval string             `json:"registration_interval,omitempty"`
	HealthCheck          *HealthCheckSchema `json:"health_check,omitempty"`
	ServerCertDomainSAN  string             `json:"server_cert_domain_san,omitempty"`
	SniRoutableSan       string             `json:"sni_routable_san,omitempty"`
}

type RoutingAPI

type RoutingAPI struct {
	APIURL            string
	OAuthURL          string
	ClientID          string
	ClientSecret      string
	CACerts           string
	SkipSSLValidation bool

	ClientCertificatePath   string
	ClientPrivateKeyPath    string
	ServerCACertificatePath string

	MaxTTL time.Duration
}

type RoutingAPISchema

type RoutingAPISchema struct {
	APIURL            string `json:"api_url"`
	OAuthURL          string `json:"oauth_url"`
	ClientID          string `json:"client_id"`
	ClientSecret      string `json:"client_secret"`
	CACerts           string `json:"ca_certs"`
	SkipSSLValidation bool   `json:"skip_ssl_validation"`

	ClientCertificatePath   string `json:"client_cert_path"`
	ClientPrivateKeyPath    string `json:"client_private_key_path"`
	ServerCACertificatePath string `json:"server_ca_cert_path"`
	MaxTTL                  string `json:"max_ttl,omitempty"`
}

Jump to

Keyboard shortcuts

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