package api import "time" type ServiceRouterConfigEntry struct { Kind string Name string Routes []ServiceRoute CreateIndex uint64 ModifyIndex uint64 } func (e *ServiceRouterConfigEntry) GetKind() string { return e.Kind } func (e *ServiceRouterConfigEntry) GetName() string { return e.Name } func (e *ServiceRouterConfigEntry) GetCreateIndex() uint64 { return e.CreateIndex } func (e *ServiceRouterConfigEntry) GetModifyIndex() uint64 { return e.ModifyIndex } type ServiceRoute struct { Match *ServiceRouteMatch `json:",omitempty"` Destination *ServiceRouteDestination `json:",omitempty"` } type ServiceRouteMatch struct { HTTP *ServiceRouteHTTPMatch `json:",omitempty"` } type ServiceRouteHTTPMatch struct { PathExact string `json:",omitempty"` PathPrefix string `json:",omitempty"` PathRegex string `json:",omitempty"` Header []ServiceRouteHTTPMatchHeader `json:",omitempty"` QueryParam []ServiceRouteHTTPMatchQueryParam `json:",omitempty"` // TODO(rb): reenable Methods // Methods []string `json:",omitempty"` } type ServiceRouteHTTPMatchHeader struct { Name string Present bool `json:",omitempty"` Exact string `json:",omitempty"` Prefix string `json:",omitempty"` Suffix string `json:",omitempty"` Regex string `json:",omitempty"` Invert bool `json:",omitempty"` } type ServiceRouteHTTPMatchQueryParam struct { Name string Present bool `json:",omitempty"` Exact string `json:",omitempty"` Regex string `json:",omitempty"` } type ServiceRouteDestination struct { Service string `json:",omitempty"` ServiceSubset string `json:",omitempty"` Namespace string `json:",omitempty"` PrefixRewrite string `json:",omitempty"` RequestTimeout time.Duration `json:",omitempty"` NumRetries uint32 `json:",omitempty"` RetryOnConnectFailure bool `json:",omitempty"` RetryOnStatusCodes []uint32 `json:",omitempty"` } type ServiceSplitterConfigEntry struct { Kind string Name string Splits []ServiceSplit CreateIndex uint64 ModifyIndex uint64 } func (e *ServiceSplitterConfigEntry) GetKind() string { return e.Kind } func (e *ServiceSplitterConfigEntry) GetName() string { return e.Name } func (e *ServiceSplitterConfigEntry) GetCreateIndex() uint64 { return e.CreateIndex } func (e *ServiceSplitterConfigEntry) GetModifyIndex() uint64 { return e.ModifyIndex } type ServiceSplit struct { Weight float32 Service string `json:",omitempty"` ServiceSubset string `json:",omitempty"` Namespace string `json:",omitempty"` } type ServiceResolverConfigEntry struct { Kind string Name string DefaultSubset string `json:",omitempty"` Subsets map[string]ServiceResolverSubset `json:",omitempty"` Redirect *ServiceResolverRedirect `json:",omitempty"` Failover map[string]ServiceResolverFailover `json:",omitempty"` ConnectTimeout time.Duration `json:",omitempty"` CreateIndex uint64 ModifyIndex uint64 } func (e *ServiceResolverConfigEntry) GetKind() string { return e.Kind } func (e *ServiceResolverConfigEntry) GetName() string { return e.Name } func (e *ServiceResolverConfigEntry) GetCreateIndex() uint64 { return e.CreateIndex } func (e *ServiceResolverConfigEntry) GetModifyIndex() uint64 { return e.ModifyIndex } type ServiceResolverSubset struct { Filter string `json:",omitempty"` OnlyPassing bool `json:",omitempty"` } type ServiceResolverRedirect struct { Service string `json:",omitempty"` ServiceSubset string `json:",omitempty"` Namespace string `json:",omitempty"` Datacenter string `json:",omitempty"` } type ServiceResolverFailover struct { Service string `json:",omitempty"` ServiceSubset string `json:",omitempty"` Namespace string `json:",omitempty"` Datacenters []string `json:",omitempty"` OverprovisioningFactor int `json:",omitempty"` // TODO(rb): bring this back after normal DC failover works // NearestN int `json:",omitempty"` }