Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BigQueryConfig ¶
type BigQueryConfig struct {
Table string `json:"table"`
ServiceAccountSecret string `json:"service_account_secret"`
}
BigQueryConfig defines the configs for logging to BQ
type BuildEnsemblerImageRequest ¶
type BuildEnsemblerImageRequest struct {
RunnerType models.EnsemblerRunnerType `json:"runner_type" validate:"required"`
}
type CreateOrUpdateEnsemblerRequest ¶
type CreateOrUpdateEnsemblerRequest struct {
models.EnsemblerLike
}
CreateOrUpdateEnsemblerRequest is the request to update or create an ensembler
func (*CreateOrUpdateEnsemblerRequest) UnmarshalJSON ¶
func (r *CreateOrUpdateEnsemblerRequest) UnmarshalJSON(data []byte) error
UnmarshalJSON is a function to unmarshal the json into a go object
type CreateOrUpdateRouterRequest ¶
type CreateOrUpdateRouterRequest struct {
Environment string `json:"environment_name" validate:"required"`
Name string `json:"name" validate:"required"`
Config *RouterConfig `json:"config" validate:"required,dive"`
}
CreateOrUpdateRouterRequest structure defines the format of the request payload when creating or updating routers
func (CreateOrUpdateRouterRequest) BuildRouter ¶
func (r CreateOrUpdateRouterRequest) BuildRouter(projectID models.ID) *models.Router
BuildRouter builds the router model from the entire request payload
type EnricherEnsemblerConfig ¶
type EnricherEnsemblerConfig struct {
// Fully qualified docker image string used by the enricher, in the
// format registry/repository:version.
Image string `json:"image" validate:"required"`
// Resource requests for the deployment of the enricher.
ResourceRequest *models.ResourceRequest `json:"resource_request" validate:"required"`
// Autoscaling policy for the enricher / ensembler.
AutoscalingPolicy *models.AutoscalingPolicy `json:"autoscaling_policy" validate:"omitempty,dive"`
// Endpoint to query.
Endpoint string `json:"endpoint" validate:"required"`
// Request timeout as a valid quantity string.
Timeout string `json:"timeout" validate:"required"`
// Port to query.
Port int `json:"port" validate:"required"`
// Environment variables to inject into the pod.
Env models.EnvVars `json:"env" validate:"required"`
// MLP secrets to inject into the pod.
Secrets models.Secrets `json:"secrets" validate:"required"`
// ServiceAccount specifies the name of the secret registered in the MLP project containing the service account.
// The service account will be mounted into the user-container and the environment variable
// GOOGLE_APPLICATION_CREDENTIALS will reference the service account file.
ServiceAccount string `json:"service_account"`
}
EnricherEnsemblerConfig defines the configs for the enricher / ensembler, used by the specific router config
func (EnricherEnsemblerConfig) BuildEnricher ¶
func (cfg EnricherEnsemblerConfig) BuildEnricher() *models.Enricher
BuildEnricher builds the enricher model from the enricher config
type ExperimentEngineConfig ¶
type ExperimentEngineConfig struct {
Type string `json:"type" validate:"required"`
Config json.RawMessage `json:"config,omitempty" validate:"-"` // Skip validate to invoke custom validation
}
ExperimentEngineConfig defines the experiment engine config
type KafkaConfig ¶
type KafkaConfig struct {
Brokers string `json:"brokers"`
Topic string `json:"topic"`
SerializationFormat models.SerializationFormat `json:"serialization_format"`
}
KafkaConfig defines the configs for logging to Kafka
type LogConfig ¶
type LogConfig struct {
ResultLoggerType models.ResultLogger `json:"result_logger_type"`
BigQueryConfig *BigQueryConfig `json:"bigquery_config,omitempty"`
KafkaConfig *KafkaConfig `json:"kafka_config,omitempty"`
}
LogConfig defines the logging configs
type RouterConfig ¶
type RouterConfig struct {
Routes models.Routes `json:"routes" validate:"required"`
DefaultRouteID *string `json:"default_route_id"`
DefaultTrafficRule *models.DefaultTrafficRule `json:"default_traffic_rule,omitempty"`
TrafficRules models.TrafficRules `json:"rules" validate:"unique=Name,dive"`
ExperimentEngine *ExperimentEngineConfig `json:"experiment_engine" validate:"required,dive"`
ResourceRequest *models.ResourceRequest `json:"resource_request"`
AutoscalingPolicy *models.AutoscalingPolicy `json:"autoscaling_policy" validate:"omitempty,dive"`
Timeout string `json:"timeout" validate:"required"`
Protocol *routerConfig.Protocol `json:"protocol"`
LogConfig *LogConfig `json:"log_config" validate:"required"`
Enricher *EnricherEnsemblerConfig `json:"enricher,omitempty" validate:"omitempty,dive"`
Ensembler *models.Ensembler `json:"ensembler,omitempty" validate:"omitempty,dive"`
}
RouterConfig defines the properties of the specific router version
func (RouterConfig) BuildExperimentEngineConfig ¶
func (r RouterConfig) BuildExperimentEngineConfig( router *models.Router, cryptoSvc service.CryptoService, expSvc service.ExperimentsService, ) (json.RawMessage, error)
BuildExperimentEngineConfig creates the Experiment config from the given input properties
func (RouterConfig) BuildRouterVersion ¶
func (r RouterConfig) BuildRouterVersion( projectName string, router *models.Router, defaults *config.RouterDefaults, cryptoSvc service.CryptoService, expSvc service.ExperimentsService, ensemblersSvc service.EnsemblersService, ) (rv *models.RouterVersion, err error)
BuildRouterVersion builds the router version model from the entire request payload